48 lines
2.1 KiB
Markdown
48 lines
2.1 KiB
Markdown
# 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. |