shinkan-jinkendo/docs/architecture/UMSETZUNGSPLAN_ROADMAP.md
Lars 7043addd15
All checks were successful
Deploy Development / deploy (push) Successful in 42s
Test Suite / pytest-backend (push) Successful in 35s
Test Suite / lint-backend (push) Successful in 0s
Test Suite / build-frontend (push) Successful in 12s
Test Suite / playwright-tests (push) Successful in 57s
feat(docs): update architecture documentation references and enhance handover details
- Added references to the architecture target image, refactor roadmap, and binding Shinkan rules in CLAUDE.md and HANDOVER.md for better project clarity.
- Updated the Dashboard component to improve user authentication handling and optimize data loading, enhancing overall performance and user experience.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 06:42:13 +02:00

4.9 KiB
Raw Blame History

Umsetzungsplan und Roadmap Refaktorierung Shinkan Jinkendo

Aktueller Stand (laufend): Phase 1 begonnen Dashboard: kein zweites getCurrentProfile, eine listTrainingUnits-Abfrage für „Nächste Termine“ und Notiz-Pool statt zweier identischer Calls.

Ziel: Nach MVP eine nachhaltige Architektur für Wachstum, Performance (Server + schwache Clients) und sichere Feature-Erweiterung.
Leitdokumente: ZIELBILD_ARCHITEKTUR.md, SCHULDEN_UND_REMEDIATION.md, VERBINDLICHE_REGELN_SHINKAN.md.


Leitplanken (vereinbart)

  • Kein Breaking der Zugriffsschicht: neue und geänderte Endpoints folgen get_tenant_context / Audit wie bisher.
  • Inkrementell: Jede Phase liefert nutzbaren Stand (kein Big-Bang-Stillstand).
  • Neue Features während der Roadmap: S8 Checkliste und S1/S3 strikt; wo möglich gleich im neuen API-Modul-Pfad.

Phase 0 Baseline (kurz, Pflicht)

Dauer: 0,51 Sprint (je nach Teamgrösse).

Task Output
API p95 der Top-5-Routen messen (z.B. profiles/me, exercises list, training-units list, media-assets list) Notiz in docs/architecture/ oder Verweis in HANDOVER
Ein Lasttestszenario (Login → Dashboard → Übungen → Planung) Skript/Notiz + Ergebnis
Bundle: Grösse Einstieg + schwerste Route Screenshot oder vite build-Logablage

Abnahme: Zahlen dokumentiert; wiederholbar.


Phase 1 Quick Wins Netzwerk (hoher ROI, geringes Risiko)

Fokus: Weniger redundante Requests, bessere Mobile-UX, kaum strukturelle Risiken.

Task Bezug Remediation
Dashboard: Doppel-getCurrentProfile auflösen; kanonisches Profil klären A3
Dashboard: listTrainingUnits/listExercises-Reduktion oder erster Summary-Call A3, B1
Org-Inbox: Ladestrategie festlegen (Technik-Kurzkonzept 1 Seite); Umsetzung mindestens Teil 1 (z.B. lazy oder TTL) A3

Abnahme: Kein funktionales Leck; Netzwerk-Tab zeigt messbar weniger parallele gleiche Muster beim ersten Dashboard-Load.


Phase 2 Backend Lesepfade (Skalierung „viele Nutzer“)

Fokus: DB und API stabil unter parallelen Lesern.

Task Bezug
EXPLAIN + Index-Tuning für list_exercises und nächste schwere Listen B2
Summary-API finalisieren/erweitern falls in P1 nur Teilbereich B1
Optional: erste Keyset-Pagination für eine Liste mit bekanntem Sort-Key B3

Abnahme: p95 der optimierten Routen verbessert ggü. Phase 0 oder dokumentierte Obergrenze eingehalten.


Phase 3 Frontend-Struktur (Wartbarkeit + Client-Performance)

Fokus: God-Pages abbauen, Virtualisierung wo nötig.

Task Bezug
Eine Page komplett zerteilen als Referenz (z.B. TrainingPlanningPage oder ExerciseFormPage) Rest priorisiert nach Nutzung A1
Virtualisierung für die längste produktive Liste A1, S2
Schwere Imports auf import() umziehen (gezielt) A4

Abnahme: Referenz-Page unter Soft-Limit; Regel S1 für neue Änderungen durchsetzbar.


Phase 4 API-Client Modularisierung

Fokus: Wartbarkeit für viele neue Features.

Task Bezug
frontend/src/api/ anlegen, request/client zentral A2
Facade: bestehende Importe von utils/api nicht sofort alle brechen; Migration in Wellen A2
Neue Endpoints nur noch in Domänen-Dateien S3

Abnahme: Anteil neuer Module > X% der neuen Zeilen (Team-Ziel); Monolith wächst nicht weiter.


Phase 5 Vertiefung DB & Pagination

Fokus: Wachstum Datenbestand.

Task Bezug
Keyset für weitere Listen B3
Weitere Query-Refactorings nach Monitoring B2

Abnahme: Dokumentierte Paginierungs-API; keine Regression in der Zugriffsschicht.


Meilensteine (empfohlen)

Meilenstein Inhalt
M1 Phase 0 + 1 abgeschlossen, HANDOVER aktualisiert
M2 Phase 2 abgeschlossen, Lasttest wiederholt
M3 Phase 3 Referenz-Page + Virtualisierung live
M4 Phase 4 migrationsbereit für alle neuen Features
M5 Phase 5 für Top-Listen abgeschlossen

Parallel: neue Features


Risiken und Mitigation

Risiko Mitigation
Summary-Endpoint falsch gefiltert Code-Review + Abgleich mit Einzel-Endpoint-Logik; Tests mit mehreren Rollen
Refaktor bricht PWA/Offline Smoke-Test nach grossen Frontend-Phasen
Keyset bricht alte Clients Versionierte Query-Parameter oder Übergangsfenster

Pflege

Nach jeder Phase: README dieses Bündels prüfen; Roadmap Checkboxen/Status; HANDOVER nächste Phase nennen.