236876a043
- 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>
4.9 KiB
4.9 KiB
👷 [Backend Developer] — Zwischenstand & Roadmap
Stand: 3. April 2026 Rolle: Spring Boot / Ktor, Kotlin, SQL, API-Design, Datenbankschema, Services
✅ Erledigte Sprints
Sprint A (Teilweise) — Abgeschlossene Punkte
- A-2 | Datenbankschema: Domänen-Hierarchie umgesetzt
- Tabellen
veranstaltungen,turniere,bewerbe,abteilungenmit FK-Ketten teilnehmer_konten(Veranstaltungsebene),turnier_kassa(Turnierebene)- Flyway-Migrationen V1–V3 (inkl. Turnier-Status
DRAFT/PUBLISHED) DomainHierarchyMigrationTestgrün
- Tabellen
🔴 Sprint A — Offen (höchste Priorität)
-
A-1 | Tenant-Isolation vollständig ausrollen ⚠️ BLOCKER
- ADR-0021 übernommen;
TenantWebFilter,TenantRegistry(JDBC) implementiert - Entries Service:
JdbcTenantRegistry,TenantMigrationsRunner, MDC-Logging - Flyway pro Tenant-Schema; Unit-Tests (
JdbcTenantRegistryTest) grün - Rollout auf weitere Services (aktuell nur Entries Service migriert)
- E2E-Isolationstest re-enablen (
@Disabledwegen Jackson/Spring-Web-Autokonfiguration)
- ADR-0021 übernommen;
-
A-3 | Validierungs-Grundlage: Turnierkategorie-Limits
- Entkoppelte Policy-Schnittstelle + Bewerb-Descriptor implementiert
- Konkrete ÖTO-Regeln/Limits umgesetzt (eigene Policy-Implementierung)
- Sonderregeln aus 📜 Rulebook B-2 Spezifikation einarbeiten (wartet auf Übergabe)
🟠 Sprint B — Priorität 2 (diese Woche)
-
B-1 | CRUD-Endpunkte vervollständigen
Veranstaltung: GET, PUTTurniere: POST, GET, GET{id}, PUT, DELETE, PATCH /statusBewerbe: POST, GET, GET{id}, PUT, DELETEAbteilungen: POST, GET, GET{id}, PUT, DELETE- Konsistentes Error-Format (
problem+json); Service-Guardrails fürPUBLISHED-Lock Reiter: POST/GET/GET{id}/PUT/DELETE (Sucheq, FilterlizenzKlasse,vereinId)Pferde: POST/GET/GET{id}/PUT/DELETE (Sucheq, Filterjahrgang,besitzerId)Vereine: POST/GET/GET{id}/PUT/DELETE (Sucheq, Filterverband)Funktionäre: POST/GET/GET{id}/PUT/DELETE (Sucheq, Filterrolle)- OpenAPI-Dokumentation (Springdoc) veröffentlichen
- E2E-Tests: CRUD-Flows Turnier → Bewerb → Abteilung inkl. FK-Constraints
-
B-2 | Kassa-Service implementieren
TeilnehmerKonto-Service: Saldo aus mehreren Turnieren aggregierenZahlvorgang-Service: Zahlung auf Veranstaltungs-Ebene buchen- Rechnungs-Generierung: Separate Rechnung je Turnier aus einem Zahlvorgang
- Endpunkte:
GET /veranstaltungen/{id}/kassa/saldo,POST /veranstaltungen/{id}/zahlvorgaenge
-
B-3 | ÖTO-Validierung serverseitig absichern
- Spezifikation von 📜 Rulebook B-2 umsetzen (wartet auf Übergabe)
- OEPS-Nummern-Format, FEI-ID-Format validieren
- Lizenzklassen-Validierung (R1–R4, LZF)
- Altersklassen-Kompatibilität Pferd × Bewerb
- Abteilungs-Zwangsteilung CSN-C-NEU (≤95cm: ohne/mit Lizenz; ≥100cm: R1/R2+)
🟡 Sprint C — Priorität 3 (nächste Woche)
-
C-1 | Nennungs-Service (Grundstruktur)
- Tabelle
nennungenanlegen (FK →abteilung_id, Status-Automat) NennungsService: Erstellen, Prüfen, Bestätigen, Ablehnen- Nennungs-Workflow-Endpunkte
- Tabelle
-
C-2 | Stammdaten-Seeder
- Initiale Testdaten (Reiter, Pferde, Vereine) für Entwicklungsumgebung
- Seed-Skript in
config/scripts/ablegen
-
C-3 | LAN-Sync-Endpunkte (ADR-0022 ✅ freigegeben)
SyncEvent-Datenmodell incore-Modul definieren (KMP-shared, Phase 1)- SQLDelight-Tabellen
sync_events,sync_snapshotsanlegen LamportClock-Implementierung (thread-safe, persistent)- WebSocket-Server auf Meldestelle-Desk (Ktor): HELLO/HELLO_ACK/SYNC_DELTA/SYNC_PUSH
- mDNS-Discovery-Service integrieren (gemäß ADR-0020)
- Domänen-Mastership-Validierung im Event-Handler
- Reconnect-Logik mit Delta-Sync (
lastKnownSeq)
📌 Abhängigkeiten
| Warte auf | Von wem | Betrifft |
|---|---|---|
| Rulebook B-2 Spezifikation | 📜 Rulebook | A-3, B-3 |
| ✅ Erledigt | C-3 freigegeben | |
| QA: E2E-Test-Umgebung Port-Binding Fix | 🧐 QA | A-1 @Disabled |
💡 Empfehlungen (nach Priorität)
- A-1 Rollout — Tenant-Isolation auf alle verbleibenden Services ausweiten;
@DisabledE2E-Test re-enablen sobald Jackson-Fix vorliegt. - B-1 Reiter/Pferde/Vereine/Funktionäre — Frontend wartet auf diese Endpunkte für ViewModel-Anbindung.
- B-3 ÖTO-Validierung — Erst nach Rulebook-Übergabe starten, aber Grundstruktur (Validator-Interface) schon vorbereiten.