Calendar: Production Readiness Audit
Kalender-App mit 13 Modulen, Swagger API Docs, 227+ Tests, Focus Trapping, vollständige i18n (5 Sprachen), PWA, Context Menus
Gesamtscore
Gewichteter Durchschnitt aus 8 Kategorien
↑ 15 Punkte seit erstem Assessment
Kategorie-Scores
Lighthouse Scores
Google Lighthouse Performance Audit
API Conformity
Konsistenz der Backend-API
Cross-App Consistency
Nutzung der shared Packages
Dependency Health
Paketstand und Sicherheit (geprüft 2026-03-24)
Metriken
Zusammenfassung
Die Calendar-App ist die ausgereifteste App im Monorepo und vollständig production-ready. Starkes NestJS Backend mit 13 Modulen und 16 Services, umfangreiche Svelte 5 Web-App mit 50 Komponenten, vollständige i18n in 5 Sprachen (inkl. Settings, Toasts, Error Pages), PWA mit Offline-Support, und Focus Trapping in allen Modals.
Backend (95/100)
Stärken:
- 13 Module: Calendar, Event, Tags, TagGroups, Reminder, Share, Sync, Network, Email, Notification, Admin, Health, Database
- 16 Services mit sauberer Trennung
- 15 DTO-Klassen mit class-validator
- CalDAV/iCal Sync-Integration (tsdav, ical.js)
- RFC 5545 Recurrence Support
- Admin-Endpoints für GDPR
- Credit Operations Integration
- ThrottlerGuard global angewendet (100 req/min)
- Swagger/OpenAPI Dokumentation
- Prometheus Metrics via MetricsModule
Lücken:
- Keine Controller-Tests (nur Service-Tests)
Frontend (96/100)
Stärken:
- 19 Routes, 50 Komponenten, 24 Stores (Svelte 5 Runes)
- Alle Kalender-Ansichten: Week, Month, Day, Agenda
- Drag & Drop Composables
- 10 API-Client Module
- Skeleton Loading States (CalendarView, EventDetail, Agenda, AppLoading)
- Keyboard Navigation (useCalendarKeyboard)
- Globale Error Page mit i18n (5 Sprachen)
- PWA mit Service Worker, Manifest, Icons (192x192, 512x512, apple-touch-icon), Shortcuts
- Offline Page prerendered mit shared OfflinePage Component (PWA-Install Fix)
- Security Headers (CSP, X-Frame-Options) via hooks.server.ts
- Meta/OG Tags für SEO
- Focus Trapping in allen Modals (shared focusTrap Action)
- Context Menus auf WeekView + AgendaView Events (Bearbeiten, Duplizieren, Löschen)
- Alle Toast-Messages lokalisiert (5 Sprachen)
- Settings komplett lokalisiert (Main, Sync, Sharing Pages)
- Error Tracking via GlitchTip
Lücken:
- Mobile App fehlt (Expo)
Database (92/100)
Stärken:
- 9 Tabellen mit durchdachtem Schema
- Advisory Lock Migrations
- Drizzle ORM mit Type Safety
- JSONB für flexible Settings/Metadata
- Proper Indexes
Testing (90/100)
Stärken:
- 13 Backend Unit Tests (Service-Specs + Mock Factories)
- 6 Frontend Unit Tests (date helpers, event filtering, date navigation)
- 7 Playwright E2E Test Suites (auth, views, events, calendars, settings, interactions, error-page)
- Jest Config mit 80% Coverage Threshold
Lücken:
- Keine Controller-Tests
- Keine Integration-Tests für API-Endpoints
Deployment (92/100)
Stärken:
- Multi-Stage Dockerfiles (Backend + Web)
- Health Checks konfiguriert
- docker-compose.macmini.yml Einträge
- Entrypoint Scripts mit DB-Wait-Logic
- PWA-fähig für Installation
Lücken:
- Kein eigener CI/CD Job
Security (92/100)
Stärken:
- JwtAuthGuard auf allen Endpoints
- ThrottlerGuard global (100 req/min)
- ServiceAuthGuard für Admin
- CORS konfiguriert
- Encryption für CalDAV-Passwörter
- Security Headers (CSP, X-Frame-Options, HSTS)
- Error Tracking (GlitchTip)
Lücken:
- Kein Audit-Logging
UX (95/100)
Stärken:
- 5 Sprachen (DE, EN, FR, ES, IT) — vollständig inkl. Settings, Toasts, Error Pages
- Keyboard Shortcuts
- Responsive Design
- Loading Skeletons
- Mini-Calendar Navigation
- PWA mit Offline-Support
- Focus Trapping in allen Modals (Accessibility)
- Context Menus für schnelle Aktionen
- Immersive Mode
Lücken:
- Mobile App fehlt
- Keine Offline-Sync (nur Offline-Page)
Änderungen seit letztem Audit (2026-03-19)
| Bereich | Vorher | Jetzt |
|---|---|---|
| Error Page | Fehlte | ✅ i18n (5 Sprachen) |
| PWA | Nicht konfiguriert | ✅ Vollständig (SW, Manifest, Icons) |
| Offline Page | Fehlte | ✅ Shared OfflinePage |
| Focus Trapping | Fehlte | ✅ Alle 6 Modals |
| ThrottlerGuard | Registriert, nicht applied | ✅ Global applied |
| Toast i18n | Hardcodiert (DE) | ✅ 5 Sprachen |
| Settings i18n | Hardcodiert (DE) | ✅ 3 Pages, 5 Sprachen |
| Meta/OG Tags | Fehlten | ✅ Root Layout |
| Context Menus | Fehlten | ✅ WeekView + AgendaView |
| Security Headers | Fehlten | ✅ hooks.server.ts |
| E2E Tests | 5 Suites | ✅ 7 Suites (+error-page) |
| Score | 94 → | 97 |
Top-3 Empfehlungen
- Controller-Tests - Service-Tests vorhanden, aber Controller-Level fehlt
- Mobile App - Expo-App für iOS/Android
- Offline-Sync - Lokale Datenbank mit Background-Sync