diff --git a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-calendar.md b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-calendar.md index 0327052c8..f9b5a0958 100644 --- a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-calendar.md +++ b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-calendar.md @@ -95,8 +95,8 @@ Die Calendar-App ist die **ausgereifteste App im Monorepo** und **vollständig p - Skeleton Loading States (CalendarView, EventDetail, Agenda, AppLoading) - Keyboard Navigation (useCalendarKeyboard) - Globale Error Page mit i18n (5 Sprachen) -- PWA mit Service Worker, Manifest, Icons, Shortcuts -- Offline Page mit shared OfflinePage Component +- 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) diff --git a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-storage.md b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-storage.md index 1d387e8bb..277c07f99 100644 --- a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-storage.md +++ b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-storage.md @@ -1,22 +1,26 @@ --- title: 'Storage: Production Readiness Audit' -description: 'Cloud Drive mit Versionierung, Rate Limiting, Drag & Drop, 205 Tests, PWA Offline, Caddy konfiguriert' -date: 2026-03-21 +description: 'Cloud Drive mit Versionierung, Rate Limiting, Drag & Drop, 205 Tests, PWA Offline, Dockerfile-Fix, Onboarding' +date: 2026-03-24 app: 'storage' author: 'Till Schneider' tags: ['audit', 'storage', 'production-readiness'] -score: 82 +score: 84 +history: + - { date: '2026-03-19', score: 55 } + - { date: '2026-03-21', score: 82 } + - { date: '2026-03-24', score: 84 } scores: backend: 88 - frontend: 82 + frontend: 84 database: 82 testing: 78 - deployment: 58 + deployment: 65 documentation: 78 security: 78 ux: 75 status: 'production' -version: '0.5.0' +version: '0.6.0' stats: backendModules: 10 webRoutes: 17 @@ -31,22 +35,24 @@ stats: Storage hat das **ausgereifteste Backend** (10 Module) mit vollständigem Cloud-Drive. Mit **159+ Tests** (Service, Controller, API-Client, E2E), **Drag & Drop**, **Dateivorschau**, **Caddy-Konfiguration** und **PWA Offline-Support** hat die App den Status **production** erreicht. -## Backend (85/100) +## Backend (88/100) - 10 Module: File, Folder, Share, Storage, Search, Tag, Trash, Admin, Database, Health - 7 Controller, 4 DTOs (beste DTO-Coverage nach Todo) - 22 Auth Guard Usages (höchste nach Contacts) - S3 Storage Integration -## Frontend (78/100) +## Frontend (84/100) - 17 Routes, 11 Komponenten, 5 Stores - FilePreviewModal mit Bildvorschau für Image-MIME-Types - Drag & Drop: Dateien/Ordner auf Ordner ziehen zum Verschieben - Vollständige ARIA-Attribute auf Menüs, Loading-States, Tabellen, Upload-Fortschritt - SEO: Meta-Descriptions, Open Graph Tags, preconnect auf allen Seiten +- Offline-Seite mit Prerender für korrekte PWA-Installation +- App-Onboarding Integration -## Testing (72/100) +## Testing (78/100) - **133 Backend-Tests** (Jest): 6 Service-Suites + 6 Controller-Suites - **26 Web-Tests** (Vitest): API-Client Coverage für alle Endpoints @@ -54,32 +60,35 @@ Storage hat das **ausgereifteste Backend** (10 Module) mit vollständigem Cloud- - Mock-Factories, Guard-Override-Pattern, Response-Mocking - **Lücke:** E2E braucht laufendes Backend für volle Coverage -## Deployment (55/100) +## Deployment (65/100) -- Dockerfiles vorhanden (Backend + Web), Ports korrigiert +- Dockerfiles vorhanden (Backend + Web), alle shared packages korrekt kopiert - docker-compose.macmini.yml konfiguriert (Backend Port 3035, Web Port 5015) - Caddy Reverse Proxy: storage.mana.how + storage-api.mana.how -- **Lücke:** Docker Images noch nicht gebaut, nicht live deployed +- Dockerfile-Fix: shared-app-onboarding Package hinzugefügt (Build-Fehler behoben) +- **Lücke:** Noch nicht live deployed -## UX (72/100) +## UX (75/100) - i18n (DE + EN) - Drag & Drop für Datei/Ordner-Verschiebung mit visuellem Feedback - PWA mit 'full'-Preset: Offline-Caching für API, Images, Fonts - App-Shortcuts: Dateien, Suche, Favoriten -- Offline-Seite mit Links zu cached Seiten +- Offline-Seite prerendered (PWA-Install funktioniert jetzt korrekt) - Vollständige ARIA-Accessibility -## Änderungen seit Original-Audit (2026-03-19 → 2026-03-21) +## Änderungen seit letztem Audit (2026-03-21 → 2026-03-24) -- Testing: 0 → 72 (159+ Tests: Service, Controller, API-Client, E2E) -- Frontend: 70 → 78 (FilePreviewModal, Drag & Drop, ARIA/SEO) -- Deployment: 42 → 55 (Dockerfile-Fix, Caddy-Einträge) -- UX: 55 → 72 (Drag & Drop, PWA full, Shortcuts, Offline, A11y) -- **Gesamtscore: 55 → 82 (+27) — Status: beta → production** +| Bereich | Vorher | Jetzt | +| ---------- | ---------------------------- | ----------------------------------- | +| Dockerfile | shared-app-onboarding fehlte | ✅ Alle shared packages korrekt | +| Offline | Nicht prerendered | ✅ prerender=true (PWA-Install Fix) | +| Frontend | 82 | ✅ 84 (+Onboarding, Offline-Fix) | +| Deployment | 58 | ✅ 65 (+Dockerfile-Fix) | +| Score | 82 → | **84** | ## Top-3 Empfehlungen 1. **Go-Live** - Docker Images bauen, auf Mac Mini deployen 2. **E2E mit echtem Backend** - Playwright mit laufender API für Integration Coverage -3. **Public Share Pages** - Öffentliche Download-Seite für geteilte Dateien +3. **i18n erweitern** - Auf 5 Sprachen (DE/EN/FR/ES/IT) ausbauen diff --git a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-todo.md b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-todo.md index f60223b49..267373a17 100644 --- a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-todo.md +++ b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-todo.md @@ -93,8 +93,8 @@ Todo ist eine **feature-reiche Aufgabenverwaltung** mit Kanban-Boards, Projekten - Drag & Drop für Task-Reordering (Liste + Kanban) - Skeleton Loading States (TaskList, TaskItem, KanbanBoard, Statistics) - Globale Error Page mit i18n (5 Sprachen) -- PWA mit Service Worker, Manifest, Icons, Shortcuts -- Offline Page mit shared OfflinePage Component +- 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)