managarten/apps/calendar/README.md
Till-JS 00176a25e0 feat(calendar): add complete calendar app with backend, web, and landing
- NestJS backend with Drizzle ORM (port 3014)
  - Calendar, Event, Reminder, Share, Sync modules
  - Full CRUD API endpoints
  - PostgreSQL database schema (5 tables)

- SvelteKit web app with Svelte 5 runes (port 5179)
  - Week, Day, Month views
  - Agenda list view
  - Event management (create, edit, delete)
  - Calendar management
  - Auth integration with Mana Core Auth
  - i18n support (DE, EN, FR, ES, IT)

- Astro landing page (port 4322)
  - Hero, Features, Pricing sections
  - Responsive dark theme design

- @calendar/shared package
  - TypeScript types for Calendar, Event, Reminder, Share
  - RFC 5545 RRULE support for recurring events

- Full documentation (CLAUDE.md, README.md)
2025-12-02 13:15:04 +01:00

79 lines
2.3 KiB
Markdown

# Kalender
> Smart Calendar Management - Organisiere deine Zeit intelligent
Eine vollständige Kalender-Anwendung mit persönlichen und geteilten Kalendern, wiederkehrenden Terminen, CalDAV/iCal-Synchronisation und Erinnerungen.
## Features
- **Mehrere Kalender** - Verwalte verschiedene Kalender für Arbeit, Privates, Familie
- **Kalenderansichten** - Tag, Woche, Monat, Agenda
- **Wiederkehrende Termine** - Flexible Wiederholungsregeln (RFC 5545)
- **Kalender teilen** - Mit Familie, Freunden oder Kollegen
- **CalDAV/iCal Sync** - Google Calendar, Apple, Outlook
- **Smarte Erinnerungen** - Push & E-Mail Benachrichtigungen
- **Multi-Sprache** - Deutsch, English, Français, Español, Italiano
## Quick Start
```bash
# 1. PostgreSQL starten (falls nicht läuft)
docker compose -f docker-compose.dev.yml up -d postgres
# 2. Datenbank erstellen
PGPASSWORD=devpassword psql -h localhost -U manacore -d postgres -c "CREATE DATABASE calendar;"
# 3. Schema pushen
pnpm calendar:db:push
# 4. Backend + Web starten
pnpm dev:calendar:app
```
## Apps
| App | Port | Beschreibung |
|-----|------|--------------|
| [Backend](apps/backend) | 3014 | NestJS REST API |
| [Web](apps/web) | 5179 | SvelteKit Web-App |
| [Landing](apps/landing) | 4322 | Astro Marketing-Seite |
| Mobile | - | Expo App (TODO) |
## Tech Stack
- **Backend**: NestJS, Drizzle ORM, PostgreSQL
- **Web**: SvelteKit, Svelte 5, Tailwind CSS
- **Landing**: Astro, Tailwind CSS
- **Auth**: Mana Core Auth (JWT)
## Dokumentation
Siehe [CLAUDE.md](CLAUDE.md) für die vollständige technische Dokumentation.
## Entwicklung
```bash
# Einzelne Apps starten
pnpm dev:calendar:backend # Backend
pnpm dev:calendar:web # Web-App
pnpm dev:calendar:landing # Landing Page
# Datenbank
pnpm calendar:db:push # Schema pushen
pnpm calendar:db:studio # Drizzle Studio öffnen
```
## API Endpunkte
| Modul | Endpunkt | Beschreibung |
|-------|----------|--------------|
| Health | `GET /api/v1/health` | Health Check |
| Calendars | `GET/POST /api/v1/calendars` | Kalender CRUD |
| Events | `GET/POST /api/v1/events` | Termine CRUD |
| Reminders | `POST /api/v1/events/:id/reminders` | Erinnerungen |
| Shares | `POST /api/v1/calendars/:id/shares` | Freigaben |
| Sync | `POST /api/v1/sync/caldav/discover` | CalDAV |
## Lizenz
Proprietär - Manacore