- 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 |