114236c8d9
Summary - Backend Services (Entries, Results, Scheduling) haben Dockerfiles. - Docker Compose Orchestrierung steht (DB + Gateway + Services). - Gateway Routing für `entries-service` implementiert (StripPrefix, Path Rewrites). - Health-Checks und 409-Conflict-Demo Endpunkt verifiziert. Verification - `docker compose up --build` -> Success - `curl http://localhost:8081/api/entries` -> 200 OK (routed through Gateway) Ref: MP-27
1.3 KiB
1.3 KiB
Epic 4: Frontend Core etablieren (Network, Local‑DB, Design‑System, Domain)
- Zusammenfassung: Koin/Ktor‑Client, SQLDelight, Design‑System‑Konsolidierung, Shared Domain Models
- Beschreibung:
- Ziel: Eine stabile, wiederverwendbare Basis für alle Features/Shells schaffen.
- Deliverables:
frontend/core/network:- Ktor
HttpClientmit Plugins: Auth, Retry, JSON, Timeouts, Logging. - Koin‑Module mit
single(named("apiClient"))Export.
- Ktor
frontend/core/local-db:- SQLDelight‑Setup (KMP), Schema‑Ordner,
1.sqmMigration, Build‑Konfig. - Konvention: Keine Inline‑SQL in Business‑Code; Nutzung der generierten Queries.
- SQLDelight‑Setup (KMP), Schema‑Ordner,
frontend/core/design-system:- Konsolidierte
AppTheme, Komponenten, Tokens.
- Konsolidierte
frontend/core/domain:- Gemeinsame Modelle/IDs (z. B.
Turnier,Pruefung,Start,ReiterId,PferdId,Lizenz…).
- Gemeinsame Modelle/IDs (z. B.
- Definition of Done (DoD):
- Kein Vorkommen manueller
Authorization‑Header im Code (nur DI‑apiClient). - SQLDelight generiert Code; eine Demo‑Query kompiliert für das Web‑Target.
- Design‑System kompiliert;
AppThemenutzbar in Shell/Feature‑Sample. core/domainwird von Features konsumiert, ohne Feature→Feature Abhängigkeiten.
- Kein Vorkommen manueller