# Calendar App A full-stack calendar application built with Rust, featuring a Yew frontend and Axum backend with CalDAV integration. ## Features - Interactive calendar interface - Event creation and management - CalDAV server integration - User authentication with JWT - iCal format support - Weekly recurrence patterns - Responsive web design ## Architecture - **Frontend**: Yew (Rust WebAssembly) - **Backend**: Axum (Rust async web framework) - **Shared Models**: RFC 5545-compliant VEvent structures - **Protocol**: CalDAV for calendar synchronization - **Database**: SQLite (via migrations) - **Build Tool**: Trunk for frontend bundling ## Getting Started ### Prerequisites - Rust (latest stable version) - Trunk (`cargo install trunk`) ### Development 1. Start the backend server: ```bash cd backend cargo run ``` 2. Start the frontend development server: ```bash cd frontend trunk serve ``` 3. Open your browser to `http://localhost:8080` ### Building for Production ```bash cd frontend trunk build --release ``` ## Project Structure This is a Cargo workspace with the following structure: - `frontend/` - Yew frontend application - `src/` - Frontend source code - `index.html` - HTML template - `styles.css` - CSS styles - `Trunk.toml` - Trunk build configuration - `backend/` - Axum backend server - `calendar-models/` - Shared RFC 5545 VEvent models - `migrations/` - Database schema migrations