Zum Hauptinhalt springen
← Alle ManaScores
Production 24. März 2026 von Till Schneider

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

82 97
97 /100

Kategorie-Scores

Backend
95
Frontend
96
Database
92
Testing
90
Deployment
92
Doku
98
Security
92
UX
95

Lighthouse Scores

Google Lighthouse Performance Audit

Ø 96
92
⚡ Performance
95
♿ Accessibility
96
✅ Best Practices
100
🔍 SEO

API Conformity

Konsistenz der Backend-API

7/7
Konsistente Responses (ApiResult<T>)
Error Codes (HTTP Status)
Pagination (Offset/Cursor)
Versioning (/api/v1/)
Dokumentation (Swagger)
Health Endpoint (/health)
Validation (DTO)

Cross-App Consistency

Nutzung der shared Packages

6/6 Core
shared-auth
shared-ui
shared-theme
shared-branding
shared-i18n
shared-error-tracking
shared-storage optional
shared-llm optional

Dependency Health

Paketstand und Sicherheit (geprüft 2026-03-24)

79% aktuell
42 Pakete gesamt
9 Veraltet
0 Vulnerabilities
✓ Sicher
Schweregrad
9 veraltet 33 aktuell

Metriken

43.549 Lines of Code
269 Source Files
2.2 MB (Source)
310 Commits
3 Contributors
2025-12-02 Erster Commit
49 API Endpoints
13 Backend Module
19 Web Routes
46 Stores
50 Komponenten
9 DB Tabellen
250 Tests
24 Test Files
5 Sprachen
103 TODOs/FIXMEs
1686 Max File (LOC)
audit calendar production-readiness

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)

BereichVorherJetzt
Error PageFehlte✅ i18n (5 Sprachen)
PWANicht konfiguriert✅ Vollständig (SW, Manifest, Icons)
Offline PageFehlte✅ Shared OfflinePage
Focus TrappingFehlte✅ Alle 6 Modals
ThrottlerGuardRegistriert, nicht applied✅ Global applied
Toast i18nHardcodiert (DE)✅ 5 Sprachen
Settings i18nHardcodiert (DE)✅ 3 Pages, 5 Sprachen
Meta/OG TagsFehlten✅ Root Layout
Context MenusFehlten✅ WeekView + AgendaView
Security HeadersFehlten✅ hooks.server.ts
E2E Tests5 Suites✅ 7 Suites (+error-page)
Score94 →97

Top-3 Empfehlungen

  1. Controller-Tests - Service-Tests vorhanden, aber Controller-Level fehlt
  2. Mobile App - Expo-App für iOS/Android
  3. Offline-Sync - Lokale Datenbank mit Background-Sync