managarten/apps/calendar
Wuesteon e32e4b1b3a 🐛 fix(build): remove recursive build scripts from parent packages
Parent workspace packages (apps/*/package.json, games/*/package.json) had
build scripts that called 'turbo run build' or 'pnpm run --recursive build',
creating infinite recursion when root turbo orchestrates builds.

When root turbo runs 'build', it finds packages with build scripts and
executes them. If those scripts also call 'turbo run build', it spawns
another turbo process → infinite loop.

Changes:
- Removed 'build' script from 7 parent packages (calendar, contacts, zitare, picture, presi, mana-games, voxel-lava)
- Also removed redundant 'clean', 'lint', 'type-check' scripts where they had recursive calls
- Root turbo.json already handles orchestration of these tasks

This follows the guideline in CLAUDE.md:
> Parent workspace packages must NEVER have scripts that call turbo run
> for tasks that turbo orchestrates from the root.

Fixes CI build timeout (was running for 10+ minutes with infinite task spawning).
2025-12-04 01:59:53 +01:00
..
apps 🎨 style: fix Prettier formatting issues 2025-12-04 01:05:10 +01:00
packages/shared fixes 2025-12-04 00:51:40 +01:00
CLAUDE.md feat(calendar): add complete calendar app with backend, web, and landing 2025-12-02 13:15:04 +01:00
package.json 🐛 fix(build): remove recursive build scripts from parent packages 2025-12-04 01:59:53 +01:00
README.md feat(calendar): add complete calendar app with backend, web, and landing 2025-12-02 13:15:04 +01:00

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

# 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 3014 NestJS REST API
Web 5179 SvelteKit Web-App
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 für die vollständige technische Dokumentation.

Entwicklung

# 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