Files
calendar/README.md
Connor Johnstone 15f2d0c6d9 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>
2025-08-30 11:45:58 -04:00

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