 15f2d0c6d9
			
		
	
	15f2d0c6d9
	
	
	
		
			
			- 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>
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # 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 |