Files
meldestelle/docs/04_Agents/Roadmaps/Frontend_Roadmap.md
T
stefan 236876a043 docs: restructure and streamline sprint execution order
- Consolidated and removed redundant steps in `SPRINT_EXECUTION_ORDER.md`.
- Simplified descriptions and roadmap formatting for improved clarity.
- Updated progress and dependencies to align with Phase 8 objectives.
- Adjusted role-specific roadmaps to reflect the latest sprint updates.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-04-03 09:43:11 +02:00

5.5 KiB
Raw Blame History

🎨 [Frontend Expert] — Zwischenstand & Roadmap

Stand: 3. April 2026 Rolle: KMP, Compose Desktop, State-Management, Navigation, Backend-Anbindung


Erledigte Sprints

Sprint A — Abgeschlossen

  • A-1 | ViewModel-Architektur definieren & Referenz-Implementierung

    • MVVM mit UDF als verbindliches Muster festgelegt
    • Intent/State-Struktur definiert (Sealed Classes)
    • VeranstalterViewModel als vollständige Referenz-Implementierung
    • Muster-Dokument in docs/06_Frontend/ abgelegt
  • A-2 | Abteilungs-Logik im Bewerb-Dialog

    • CSN-C-NEU: Automatischer Vorschlag der Pflicht-Teilung mit 4 Abteilungen
    • AssistChip „Pflicht-Teilung vorgeschlagen" bei erkanntem Typ
    • Abteilungs-Typen SEPARATE_SIEGEREHRUNG / ORGANISATORISCH in UI

Sprint B (Teilweise) — Abgeschlossene Punkte

  • B-1 | ViewModels für alle V3-Screens
    • TurnierViewModel, BewerbViewModel, PferdProfilViewModel
    • ReiterProfilViewModel, VereinsViewModel, FunktionaerViewModel
    • AbteilungViewModel (Startliste, Ergebnisse)

Zusätzlich erledigt (Session 02.04.2026)

  • Navigation V2 / Back-Stack-System implementiert
  • Profil-Cards mit Edit-Dialog (Veranstalter, Pferd, Reiter, Verein, Funktionär)
  • Onboarding: State-Lift via rememberSaveable (Gerätename, Sicherheitsschlüssel)
  • Veranstaltungs-Wizard: Bestätigungs-Dialog mit Daten-Vorschau vor finalem Anlegen
  • Breadcrumbs und Zurück-Navigation korrigiert

🔴 Sprint B — Offen (höchste Priorität)

  • B-2 | Ktor-Clients & Repositories für Backend-Anbindung

    • HttpClient-Factory zentral konfiguriert (Auth, Timeout, JSON, Logging, Retry)
    • VeranstalterRepository (Interface + Default-Impl mit Ktor) vollständig
    • TurnierRepository Interface in commonMain vorbereitet
    • Fehler-Mapping HTTP → Domain-Errors einheitlich
    • BewerbRepository und AbteilungRepository anlegen
    • Koin Feature-Module: Repository-Interfaces auf Default-Impl binden
    • AuthApiClient-Integration: Token-Provider injizierbar
    • Turnier/Bewerb/Abteilung Backend-Endpunkte verdrahten
    • StoreV2 schrittweise ablösen (Feature-für-Feature, Toggle useRealBackend)
    • Akzeptanz-Tests per Fake-Server (Mock Engine, happy + error paths)
    • Dokumentation docs/06_Frontend/Networking.md
  • B-3 | Validierungs-Live-Feedback in Edit-Dialogen

    • MsValidationWrapper: Error.short inline, Error.long als Tooltip
    • isValid im ViewModel für Speichern-Button-State nutzen
    • OEPS-Nummer: Inline-Validierung beim Tippen
    • FEI-ID: Inline-Validierung beim Tippen
    • Lizenzklasse × Bewerbs-Klasse: Warnung wenn nicht erlaubt
    • Altersklasse Pferd: Warnung wenn nicht kompatibel
    • Basis: OetoValidatorsTest.kt-Grenzfälle als Akzeptanzkriterien
  • B-4 | Kassa-Screen: Veranstaltungs-Kassa

    • Gesamt-Saldo-Ansicht (Salden aus allen Turnieren der Veranstaltung)
    • Turnier-übergreifender Zahlvorgang (eine Zahlung, mehrere Rechnungen)
    • Rechnungsvorschau je Turnier

🟠 Sprint C — Priorität 2 (nächste Woche)

  • C-1 | StoreV2 vollständig ablösen

    • Alle verbleibenden StoreV2-Referenzen durch echte Repositories ersetzen
    • StoreV2 entfernen nach vollständiger Migration
  • C-2 | VeranstalterNeu: Vereinssuche & Daten-Übernahme

    • Vereins-Suche implementieren (Suche, Auswahl, Mapping)
    • Validierung und Fehleranzeigen
  • C-3 | LAN-Sync-UI vorbereiten (ADR-0022 freigegeben)

    • SyncEvent-Datenmodell aus core-Modul einbinden (KMP-shared)
    • originNodeId-Generierung und -Persistierung beim App-Start
    • WebSocket-Client auf Richter-Turm-Desk (Ktor-Client/KMP): HELLO/SYNC_PUSH/SYNC_ACK
    • Geräte-Discovery-UI (gefundene Geräte im LAN via mDNS anzeigen)
    • Sync-Status-Indicator in der Hauptnavigation (verbunden / getrennt / ausstehende Events)
    • Offline-Indikator: ausstehende lokale Events sichtbar machen
    • Domänen-Mastership beachten: Richter-Turm schreibt nur Bewertungen/Ergebnisse
  • C-4 | Lint-Bereinigung & Code-Qualität

    • Ungenutzte Imports/Parameter entfernen
    • Long → Duration-Konvertierungen modernisieren
    • Redundante Not-null-Calls vereinfachen

⏸️ USB-Stick Fallback (Export/Import UI) — Separate Besprechung (Sprint B/C)


📌 Abhängigkeiten

Warte auf Von wem Betrifft
Reiter/Pferde/Vereine/Funktionäre APIs 👷 Backend B-1 B-2 Repository-Verdrahtung
Rulebook Validierungs-Spezifikation 📜 Rulebook B-2 B-3 Live-Validierung
Kassa-Service API 👷 Backend B-2 B-4 Kassa-Screen
ADR-0022 LAN-Sync Erledigt C-3 Sync-UI freigegeben
Wireframes Edit-Dialoge / Kassa 🖌️ UI/UX B-1/B-3 B-3, B-4 Implementierung

💡 Empfehlungen (nach Priorität)

  1. B-2 Repository-Verdrahtung — Bewerb/Abteilung-Repos und StoreV2-Ablösung sind der kritische Pfad für echte Daten im Frontend.
  2. B-3 Live-Validierung — Rulebook hat Spezifikation übergeben (Sprint B-1 ); Frontend kann sofort mit OetoValidators loslegen.
  3. C-2 VeranstalterNeu — Offener Punkt aus Session 02.04; Vereinssuche fehlt noch für vollständigen Onboarding-Flow.