2.1 KiB
2.1 KiB
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 daysget_anniversary_by_id
- Fetch single anniversary by IDadd_anniversary
- Add new anniversarydelete_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.