- Created calendar-models/ shared library with RFC 5545-compliant VEvent structures - Migrated backend to use shared VEvent with proper field mappings (dtstart/dtend, rrule, exdate, etc.) - Converted CalDAV client to parse into VEvent structures with structured types - Updated all CRUD handlers to use VEvent with CalendarUser, Attendee, VAlarm types - Restructured project as Cargo workspace with frontend/, backend/, calendar-models/ - Updated Trunk configuration for new directory structure - Fixed all compilation errors and field references throughout codebase - Updated documentation and build instructions for workspace structure 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1.4 KiB
1.4 KiB
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
-
Start the backend server:
cd backend cargo run -
Start the frontend development server:
cd frontend trunk serve -
Open your browser to
http://localhost:8080
Building for Production
cd frontend
trunk build --release
Project Structure
This is a Cargo workspace with the following structure:
frontend/- Yew frontend applicationsrc/- Frontend source codeindex.html- HTML templatestyles.css- CSS stylesTrunk.toml- Trunk build configuration
backend/- Axum backend servercalendar-models/- Shared RFC 5545 VEvent modelsmigrations/- Database schema migrations