ManaCore: Production Readiness Audit
Multi-App Ecosystem Dashboard mit 25 Web-Routes, 11 Dashboard-Widgets, 103 Tests, Error Boundary, Onboarding, 5 Sprachen, Mobile App
Gesamtscore
Gewichteter Durchschnitt aus 8 Kategorien
Kategorie-Scores
Metriken
Zusammenfassung
ManaCore ist das Herzstück des Monorepos - das Multi-App Ecosystem Dashboard mit Onboarding-Wizard, 11 konfigurierbaren Dashboard-Widgets, Credit-System und App-Switcher. Als Aggregator-App ohne eigenes Backend designt - nutzt mana-core-auth + API-Middleware zu allen Service-Backends. Starkes Frontend mit 5 Sprachen, deployed auf Mac Mini via Docker.
Hinweis: ManaCore ist eine Aggregator-App. Backend- und Database-Scores bewerten die API-Integration und das Architektur-Pattern, nicht eigene Services.
Backend / API-Integration (55/100)
Stärken:
- Saubere Integration mit mana-core-auth (JWT, SSO, Token-Refresh)
- SvelteKit Server Hooks für Auth Guards (
hooks.server.ts) - API-Middleware-Layer für Proxy zu externen Services
- 21 API-Client-Module (Credits, Gifts, Profile, Subscriptions, API Keys, etc.)
- Health-Check-Endpoint
Lücken:
- Kein dedizierter NestJS Backend-Service (by design)
- Keine Server-Side Validation eigener Business-Logik
- Keine Rate-Limiting auf SvelteKit-Ebene
Frontend (90/100)
Stärken:
- 25 Web-Routes in 2 Route-Groups ((auth) + (app))
- 36 Komponenten, 6 Svelte 5 Rune Stores (690 LOC)
- 11 Dashboard-Widgets (Calendar, Clock, Contacts, Chat, Picture, Tasks, Credits, Storage, Transactions, ManaDeck, Zitare)
- 5-Step Onboarding-Wizard (Welcome → Profile → Credits → Apps → Complete)
- App-Switcher (AppSlider) für Multi-App Navigation
- Skeleton Loading States, Error Boundaries auf Widgets
- Globaler Error Boundary (+error.svelte) mit Indigo-Theme
- Mobile App (Expo 54) mit Drawer + Tabs, 20 Screens, 15 Komponenten
- PWA konfiguriert - Service Worker + Offline Page
Lücken:
- Mobile App hat keine Dashboard-Widgets (nur Web)
Database / Daten-Integration (70/100)
Stärken:
- Sauberes Aggregator-Pattern: Daten über APIs von externen Services
- User-Daten via mana-core-auth API
- Widget-Daten von 11 verschiedenen Service-Backends
- Kein eigener DB-State = keine Sync-Probleme
Lücken:
- Keine eigene Datenbank (by design)
- Kein lokaler Cache/Offline-Speicher
- Widget-Daten nicht persistiert
Testing (72/100)
Stärken:
- Vitest konfiguriert mit Coverage (package.json)
- Playwright für E2E Tests eingerichtet
- @vitest/coverage-v8 und @vitest/ui installiert
- 12 Test-Dateien mit 103 Unit Tests:
- Dashboard Widget Registry Tests (14 Tests)
- Default Dashboard Config Tests (12 Tests)
- Base API Client mit Retry-Logik (15 Tests)
- Credits Service API Tests (7 Tests)
- API Keys Service Tests (4 Tests)
- Profile Service Tests (6 Tests)
- Contacts Widget Service Tests (10 Tests)
- Storage Widget Service Tests (10 Tests)
- Todo Widget Service Tests (7 Tests)
- Calendar Widget Service Tests (6 Tests)
- Chat Widget Service Tests (6 Tests)
- Zitare Widget Service Tests (6 Tests)
Lücken:
- Keine E2E Tests (Playwright Setup vorhanden)
- Keine Store-Tests (Auth, Dashboard State)
Deployment (90/100)
Stärken:
- Multi-Stage Dockerfile (Node 20-alpine)
- docker-compose.macmini.yml Integration
- Health Check konfiguriert (HTTP GET /health, 30s Intervall)
- Entrypoint Scripts mit Runtime-Env-Injection
- Landing Page auf Cloudflare Pages deployed
- SvelteKit adapter-node für SSR
Lücken:
- Kein CI/CD Pipeline (GitHub Actions)
- Kein automatisiertes Deployment
Documentation (88/100)
Stärken:
- 229 Zeilen CLAUDE.md - umfassend
- Landing Page mit Devlogs, Audits, Apps, Legal, Privacy
- Store-Dateien mit JSDoc-Kommentaren
- README.md mit 322 Zeilen
Lücken:
- Keine Komponenten-API-Dokumentation
- Keine Architecture Decision Records
Security (80/100)
Stärken:
- Proper JWT Integration via @manacore/shared-auth
- Token-Manager mit Auto-Refresh
- Cross-Domain SSO via shared Session Cookies (.mana.how)
- Route Guards in hooks.server.ts
- Bearer Tokens auf allen API Calls
- Server-Side Proxies (Backend-URLs nicht exponiert)
Lücken:
- Kein Audit-Logging
- Keine explizite CSRF-Protection (SvelteKit Default)
- Kein Rate-Limiting
UX (92/100)
Stärken:
- 5 Sprachen (DE, EN, FR, ES, IT) via svelte-i18n
- Onboarding-Wizard für neue User (5 Steps)
- 11 konfigurierbare Dashboard-Widgets mit Skeleton Loading
- Theme-System (Light/Dark/System) mit persistenter Präferenz
- App-Switcher für nahtlose Multi-App Navigation
- Profil-Management (Edit, Passwort, 2FA, QR-Export)
- Organizations & Teams Verwaltung
- Credit-System (Saldo, Transfer, Geschenke)
- Responsive Design (Mobile, Tablet, Desktop)
- ARIA Labels, Dialog Roles, semantisches HTML
- Keyboard Navigation
Lücken:
- PWA Offline-Modus nicht verifiziert
- Mobile App simpler als Web (keine Widgets)
Top-3 Empfehlungen
- E2E Tests - Playwright Tests für Login/Onboarding/Dashboard Flow → Testing von 48 auf 70+
- Error Tracking - GlitchTip Integration (wie andere Backends) für Production Monitoring
- PWA verifizieren - Offline-Modus testen, Service Worker prüfen, Manifest validieren