# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Development Commands ### Frontend Development - `pnpm dev` - Start the frontend development server (runs Vite on localhost:1420) - `pnpm build` - Build the frontend for production (TypeScript compilation + Vite build) - `pnpm preview` - Preview the production build ### Tauri Development - `pnpm tauri dev` - Start Tauri development mode (builds Rust backend + starts frontend) - `pnpm tauri build` - Build the complete Tauri application for production ### Build Scripts - `./build_desktop.sh` - Build desktop application - `./build_android.sh` - Build Android application ## Architecture Overview This is a **Tauri application** combining a Rust backend with a React/TypeScript frontend for building cross-platform desktop and mobile apps. ### Backend (Rust) - **Database**: SQLite with rusqlite for storing anniversary records - **Location**: Database stored in app data directory (`anniversaries.db`) - **Schema**: `anniversaries` table with id, title, start_date, created_at - **Core Commands**: All database operations exposed as Tauri commands in `src-tauri/src/lib.rs` - `get_anniversaries` - Fetch all anniversaries with calculated days - `get_anniversary_by_id` - Fetch single anniversary by ID - `add_anniversary` - Add new anniversary - `delete_anniversary` - Delete anniversary by ID ### Frontend (React + TypeScript) - **Router**: React Router DOM with three main routes: - `/` - HomePage (list all anniversaries) - `/detail/:id` - DetailPage (view/delete specific anniversary) - `/add` - AddPage (create new anniversary) - **Data Flow**: Frontend calls Tauri commands to interact with Rust backend - **Styling**: Component-specific CSS files for each page ### Key Dependencies - **Frontend**: React 18, React Router DOM, Tauri API - **Backend**: rusqlite (SQLite), chrono (date handling), serde (serialization) - **Build**: Vite, TypeScript, Tauri CLI ### Package Manager This project uses **pnpm** as specified in `tauri.conf.json` build commands.