Implement shared RFC 5545 VEvent library with workspace restructuring

- 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>
This commit is contained in:
Connor Johnstone
2025-08-30 11:45:58 -04:00
parent 6887e0b389
commit 15f2d0c6d9
43 changed files with 1962 additions and 945 deletions

View File

@@ -16,6 +16,7 @@ A full-stack calendar application built with Rust, featuring a Yew frontend and
- **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
@@ -37,6 +38,7 @@ A full-stack calendar application built with Rust, featuring a Yew frontend and
2. Start the frontend development server:
```bash
cd frontend
trunk serve
```
@@ -45,12 +47,19 @@ A full-stack calendar application built with Rust, featuring a Yew frontend and
### Building for Production
```bash
cd frontend
trunk build --release
```
## Project Structure
- `src/` - Frontend Yew application
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
- `migrations/` - Database schema migrations
- `dist/` - Built frontend assets
- `calendar-models/` - Shared RFC 5545 VEvent models
- `migrations/` - Database schema migrations