Zum Hauptinhalt springen
← Alle ManaScores
Production 01. April 2026 von Till Schneider

Calendar: Production Readiness Audit

Kalender-App mit Hono/Bun Backend, 44 Komponenten, 16 Svelte 5 Stores, Multi-Event Splitting, Cmd+K Spotlight, Local-First, PWA, 5 Sprachen

Gesamtscore

Gewichteter Durchschnitt aus 8 Kategorien

↑ 11 Punkte seit erstem Assessment

82 97 93
93 /100

Kategorie-Scores

Backend
90
Frontend
96
Database
88
Testing
85
Deployment
92
Doku
92
Security
90
UX
96

Lighthouse Scores

Google Lighthouse Performance Audit

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

API Conformity

Konsistenz der Backend-API

5/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-04-01)

79% aktuell
38 Pakete gesamt
8 Veraltet
0 Vulnerabilities
✓ Sicher
Schweregrad
8 veraltet 30 aktuell

Metriken

40.000 Lines of Code
250 Source Files
2.1 MB (Source)
350 Commits
3 Contributors
2025-12-02 Erster Commit
3 API Endpoints
3 Backend Module
20 Web Routes
16 Stores
44 Komponenten
3 DB Tabellen
196 Tests
22 Test Files
5 Sprachen
80 TODOs/FIXMEs
1686 Max File (LOC)
audit calendar production-readiness

Zusammenfassung

Die Calendar-App ist eine der ausgereiftesten Apps im Monorepo. Seit dem letzten Audit wurde das Backend von NestJS auf Hono/Bun migriert — CRUD läuft client-seitig über @mana/local-store + mana-sync. Der Server fokussiert sich auf RRULE-Expansion, Google Calendar Sync und ICS-Import. Neue Features: Multi-Event Splitting, Elevation System, Cmd+K Spotlight.

Backend (90/100)

Architektur: Hono 4.7.0 + Bun (migriert von NestJS)

Stärken:

  • 3 fokussierte Server-Routes:
    • /api/v1/events/expand (POST) — RRULE Expansion mit DoS-Schutz
    • /api/v1/sync/google (POST) — Google Calendar OAuth
    • /api/v1/import/ics (POST) — ICS-Datei Parsing und Import
  • @mana/shared-hono Middleware (Auth, Health, Errors, Rate Limiting)
  • Zod-Validation für alle Eingaben
  • GDPR-konform (Daten via mana-sync)

Lücken:

  • Google Calendar Sync noch TODO (Route existiert, Implementation ausstehend)
  • Keine Backend-Unit-Tests
  • Keine Swagger/OpenAPI Dokumentation

Frontend (96/100)

Stärken:

  • 20 Routes, 44 Komponenten, 16 Svelte 5 Runes Stores
  • Alle Kalender-Ansichten: Week, Month, Day, Agenda
  • Multi-Event Splitting mit Duration Estimation und Conflict Detection
  • Cmd+K Spotlight für schnelle Navigation und Aktionen
  • Elevation System für konsistente UI-Tiefe
  • Drag & Drop Composables (useDragToCreate, useEventDragDrop)
  • Voice Recording (VoiceRecordButton, VoiceRecordingModal)
  • Mini-Calendar Navigation
  • Skeleton Loading States (CalendarView, EventDetail, Agenda, AppLoading)
  • Keyboard Navigation (useCalendarKeyboard)
  • Context Menus auf WeekView + AgendaView (Bearbeiten, Duplizieren, Löschen)
  • Focus Trapping in allen Modals
  • Security Headers (CSP, X-Frame-Options) via hooks.server.ts
  • PWA mit Service Worker, Manifest, Icons, Shortcuts
  • Offline Page mit shared OfflinePage Component
  • Error Tracking via GlitchTip
  • 5 Sprachen (DE, EN, FR, ES, IT) — vollständig inkl. Settings, Toasts, Error Pages
  • Local-First via @mana/local-store (IndexedDB + mana-sync)

Lücken:

  • Mobile App fehlt (Expo)

Database (88/100)

Stärken:

  • Server-seitig: 3 Tabellen mit Drizzle ORM
  • Client-seitig: Collections (calendars, events) via local-store
  • JSONB für flexible Settings/Metadata

Lücken:

  • Server-Schema minimal (CRUD client-seitig)

Testing (85/100)

Stärken:

  • 15 Frontend Unit/Integration Tests:
    • API Tests: events, reminders, sync (3)
    • Composables: useDragToCreate, useEventDragDrop (2)
    • Stores: events, external-calendars, view, events-recurrence (4)
    • Utilities: event-parser, event-estimator, dateNavigation, eventFilters, eventDateHelpers (5)
    • Content: help index (1)
  • 7 Playwright E2E Suites (auth, calendar-views, events, calendars, settings, week-view-interactions, error-page)
  • ~196 Test-Assertions insgesamt
  • Vitest + Playwright Konfiguration

Lücken:

  • Keine Backend-Tests (Hono-Routes)
  • Test-Anzahl reduziert (250 → 196 durch Refactoring)

Deployment (92/100)

Stärken:

  • Multi-Stage Dockerfiles (Server + Web)
  • Health Checks konfiguriert
  • docker-compose.macmini.yml Einträge
  • Deployed auf calendar.mana.how
  • PWA-fähig für Installation

Lücken:

  • Kein eigener CI/CD Job

Security (90/100)

Stärken:

  • JWT Auth via @mana/shared-hono authMiddleware
  • Rate Limiting Middleware
  • CORS konfiguriert
  • RRULE DoS-Schutz
  • Security Headers (CSP, X-Frame-Options, HSTS)
  • Error Tracking (GlitchTip)

Lücken:

  • Kein Audit-Logging

UX (96/100)

Stärken:

  • 5 Sprachen (DE, EN, FR, ES, IT) — vollständig inkl. Settings, Toasts, Error Pages
  • Cmd+K Spotlight für schnelle Aktionen
  • Keyboard Shortcuts + Calendar Keyboard Navigation
  • Responsive Design
  • Loading Skeletons
  • Mini-Calendar Navigation
  • PWA mit Offline-Support
  • Focus Trapping (Accessibility)
  • Context Menus für schnelle Aktionen
  • Voice Recording Integration
  • Elevation System für visuelle Konsistenz
  • Multi-Event Splitting mit Conflict Detection

Lücken:

  • Mobile App fehlt
  • Keine Offline-Sync (nur Offline-Page)

Änderungen seit letztem Audit (2026-03-24)

BereichVorherJetzt
BackendNestJS (13 Module, 16 Services, 15 DTOs)Hono/Bun (3 Routes, Zod)
Komponenten5044 (Todo-Integration entfernt)
Stores24 (nicht spezifiziert)16 Svelte 5 Runes Stores
Tests24 Files, 250 Tests22 Files, ~196 Tests
SpotlightFehlteCmd+K Actions
Multi-EventFehlteSplitting + Duration Estimation
ElevationFehlteKonsistentes UI-System
Todo-IntegrationVorhandenEntfernt (Separation of Concerns)
Local-FirstGeplant@mana/local-store aktiv
Score97 →93 (Backend-Tests verloren, Test-Reduktion)

Top-3 Empfehlungen

  1. Backend-Tests — RRULE-Expansion und ICS-Import brauchen Unit-Tests
  2. Google Calendar Sync — Route existiert, Implementation ausstehend
  3. Mobile App — Expo-App für iOS/Android