Update roadmaps to reflect completion of billing, entries integration, and ZNS importer tasks.
This commit is contained in:
parent
02c6da146e
commit
a7e1872d10
|
|
@ -228,6 +228,9 @@ und über definierte Schnittstellen kommunizieren.
|
|||
|
||||
*Ziel: Dynamische Zeitplan-Anpassungen, Protokollierung von Änderungen und Export-Funktionen.*
|
||||
|
||||
* [x] **Billing-Service:** Initialisierung, Teilnehmer-Konten & Buchungs-Logik (v1). ✓
|
||||
* [x] **Entries-Integration:** Automatische Buchung von Nenngeldern bei Nennungs-Abgabe. ✓
|
||||
* [x] **ZNS-Importer:** Hardening & Integrationstests für Funktionärs-Updates. ✓
|
||||
* [ ] **Zeitplan:** Dynamische Verschiebung von Bewerben (Drag & Drop im Kalender).
|
||||
* [ ] **Protokoll:** Implementierung eines Event-Logs für manuelle Eingriffe in Startlisten.
|
||||
* [ ] **Export:** Startlisten-Export für ZNS (XML-B-Satz).
|
||||
|
|
|
|||
|
|
@ -1,72 +1,27 @@
|
|||
# 👷 [Backend Developer] — Zwischenstand & Roadmap
|
||||
|
||||
> **Stand:** 3. April 2026
|
||||
> **Stand:** 10. April 2026
|
||||
> **Rolle:** Spring Boot / Ktor, Kotlin, SQL, API-Design, Datenbankschema, Services
|
||||
|
||||
---
|
||||
|
||||
## ✅ Erledigte Sprints
|
||||
|
||||
### Sprint A (Teilweise) — Abgeschlossene Punkte
|
||||
### Sprint A — Abgeschlossene Punkte
|
||||
|
||||
- [x] **A-1** | Tenant-Isolation vollständig ausrollen
|
||||
- [x] **A-2** | Datenbankschema: Domänen-Hierarchie umgesetzt
|
||||
- [x] Tabellen `veranstaltungen`, `turniere`, `bewerbe`, `abteilungen` mit FK-Ketten
|
||||
- [x] `teilnehmer_konten` (Veranstaltungsebene), `turnier_kassa` (Turnierebene)
|
||||
- [x] Flyway-Migrationen V1–V3 (inkl. Turnier-Status `DRAFT`/`PUBLISHED`)
|
||||
- [x] `DomainHierarchyMigrationTest` grün
|
||||
- [x] **A-3** | Validierungs-Grundlage: Turnierkategorie-Limits
|
||||
|
||||
### Sprint B — Abgeschlossene Punkte
|
||||
|
||||
- [x] **B-1** | CRUD-Endpunkte (Reiter, Pferde, Vereine, Funktionäre)
|
||||
- [x] **B-2** | Kassa-Service (Teilnehmer-Konten & Buchungen v1)
|
||||
- [x] **B-3** | ÖTO-Validierung (OEPS/FEI-ID, Lizenzen)
|
||||
|
||||
---
|
||||
|
||||
## 🔴 Sprint A — Offen (höchste Priorität)
|
||||
|
||||
- [x] **A-1** | Tenant-Isolation vollständig ausrollen ⚠️ BLOCKER
|
||||
- [x] ADR-0021 übernommen; `TenantWebFilter`, `TenantRegistry` (JDBC) implementiert
|
||||
- [x] Entries Service: `JdbcTenantRegistry`, `TenantMigrationsRunner`, MDC-Logging
|
||||
- [x] Flyway pro Tenant-Schema; Unit-Tests (`JdbcTenantRegistryTest`) grün
|
||||
- [x] **Rollout auf weitere Services** — masterdata/events/zns-import nutzen kein eigenes Tenant-Schema (
|
||||
Single-Tenant-Architektur per ADR-0021 korrekt; nur Entries-Service ist Multi-Tenant)
|
||||
- [x] E2E-Isolationstest re-enabled (`@Disabled` entfernt; `EntriesIsolationIntegrationTest` aktiv)
|
||||
- [x] E2E-Test-Bugfix: `springdoc` von `3.0.0` → `2.8.9` (ClassNotFoundException behoben); `@ActiveProfiles("test")` +
|
||||
`TestExposedConfiguration` ergänzt (Exposed DB-Connect im Test-Profil); alle Tests grün ✅
|
||||
|
||||
- [ ] **A-3** | Validierungs-Grundlage: Turnierkategorie-Limits
|
||||
- [x] Entkoppelte Policy-Schnittstelle + Bewerb-Descriptor implementiert
|
||||
- [x] 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)
|
||||
|
||||
- [x] **B-1** | CRUD-Endpunkte vervollständigen
|
||||
- [x] `Veranstaltung`: GET, PUT
|
||||
- [x] `Turniere`: POST, GET, GET{id}, PUT, DELETE, PATCH /status
|
||||
- [x] `Bewerbe`: POST, GET, GET{id}, PUT, DELETE
|
||||
- [x] `Abteilungen`: POST, GET, GET{id}, PUT, DELETE
|
||||
- [x] Konsistentes Error-Format (`problem+json`); Service-Guardrails für `PUBLISHED`-Lock
|
||||
- [x] **`Reiter`**: GET (Liste/Suche/Einzeln/Satznummer), POST, PUT, DELETE — Filter: `lizenzKlasse`, `vereinId`
|
||||
- [x] **`Pferde`**: GET (Liste/Suche/Einzeln/Lebensnummer), POST, PUT, DELETE — Filter: `jahrgang`, `besitzerId`
|
||||
- [x] **`Vereine`**: GET (Liste/Suche/Einzeln/Nummer), POST, PUT, DELETE — Filter: `verband` (Bundesland)
|
||||
- [x] **`Funktionäre`**: GET (Liste/Suche/Einzeln/Richternummer), POST, PUT, DELETE — Filter: `rolle`
|
||||
- [ ] 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 aggregieren
|
||||
- [ ] `Zahlvorgang`-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)
|
||||
## 🔴 Sprint C — Offen (höchste Priorität)
|
||||
|
||||
- [ ] **C-1** | Nennungs-Service (Grundstruktur)
|
||||
- [ ] Tabelle `nennungen` anlegen (FK → `abteilung_id`, Status-Automat)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# 🗂️ Sprint Execution Order — Meldestelle-Biest
|
||||
|
||||
> **Stand:** 3. April 2026 | **Phase:** 8 — Bewerbe-Management & Startlisten
|
||||
> **Stand:** 10. April 2026 | **Phase:** 9 — Zeitplan & Protokollierung
|
||||
> **Erstellt von:** 🏗️ Lead Architect
|
||||
> **Strategisches Ziel:** Desktop-MVP mit Event-First-Workflow, Offline-First, ÖTO-Konformität
|
||||
|
||||
|
|
@ -10,14 +10,14 @@
|
|||
|
||||
| Agent | Sprint A | Sprint B | Sprint C | Nächste Aktion |
|
||||
|---------------|------------------|------------------------------------------|-------------------|-------------------------------------------------------|
|
||||
| 🏗️ Architect | ✅ Abgeschlossen | 🔴 B-1 offen | ⬜ Nicht gestartet | ADR-0022 LAN-Sync schreiben |
|
||||
| 👷 Backend | ⚠️ A-1/A-3 offen | 🔴 B-1 teilweise | ⬜ Nicht gestartet | A-1 Rollout + Reiter/Pferde-APIs |
|
||||
| 🎨 Frontend | ✅ Abgeschlossen | 🟡 B-2 teilweise/B-3 teilweise/B-4 offen | ⬜ Nicht gestartet | B-2 StoreV2-Ablösung + B-3 Bewerb-Kontext-Validierung |
|
||||
| 📜 Rulebook | ✅ Abgeschlossen | 🔴 B-2 offen | ⬜ Nicht gestartet | B-2 Spec an Backend übergeben |
|
||||
| 🏗️ Architect | ✅ Abgeschlossen | ✅ Abgeschlossen | ⬜ Nicht gestartet | Zeitplan-Optimierung Konzept |
|
||||
| 👷 Backend | ✅ Abgeschlossen | ✅ B-1/B-2 fertig | ⬜ Nicht gestartet | C-1 Nennungs-Service Erweiterung |
|
||||
| 🎨 Frontend | ✅ Abgeschlossen | 🟡 B-2/B-3 teilweise / B-4 offen | ⬜ Nicht gestartet | B-4 Kassa-Screen & StoreV2-Ablösung |
|
||||
| 📜 Rulebook | ✅ Abgeschlossen | ✅ B-2 abgeschlossen | ⬜ Nicht gestartet | C-1 AltersklasseRechner |
|
||||
| 🐧 DevOps | ✅ Abgeschlossen | ✅ Abgeschlossen | ✅ C-1/C-2 fertig | C-3 Produktions-Deployment |
|
||||
| 🧐 QA | ✅ Abgeschlossen | 🔴 B-1..B-4 offen | ⬜ Nicht gestartet | B-2 Onboarding-Tests + B-3 Abteilungs-Tests |
|
||||
| 🖌️ UI/UX | ✅ Abgeschlossen | 🔴 B-1/B-4 offen | ⬜ Nicht gestartet | B-1 Finale Entscheidung Editier-Formulare |
|
||||
| 🧹 Curator | ✅ Abgeschlossen | 🔴 B-1..B-3 offen | ⬜ Nicht gestartet | B-1 Roadmaps pflegen ← *diese Session* |
|
||||
| 🧐 QA | ✅ Abgeschlossen | ✅ B-1/B-3 fertig | ⬜ Nicht gestartet | B-2 Onboarding-Tests |
|
||||
| 🖌️ UI/UX | ✅ Abgeschlossen | 🔴 B-1/B-4 offen | ⬜ Nicht gestartet | B-4 Wireframes für Kassa-Screen |
|
||||
| 🧹 Curator | ✅ Abgeschlossen | ✅ B-1/B-2 fertig | ⬜ Nicht gestartet | Session-Dokumentation & Changelog |
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -27,65 +27,59 @@ Diese Aufgaben blockieren andere Agenten und müssen zuerst erledigt werden:
|
|||
|
||||
| Priorität | Agent | Aufgabe | Blockiert |
|
||||
|-----------|---------------|-----------------------------------------------|---------------------------------------------------|
|
||||
| 🔴 P1 | 👷 Backend | A-1: Tenant-Isolation Rollout (alle Services) | 🧐 QA: C-1 Isolations-Tests |
|
||||
| 🔴 P1 | 👷 Backend | B-1: Reiter/Pferde/Vereine/Funktionäre APIs | 🎨 Frontend: B-2 Repository-Verdrahtung |
|
||||
| 🔴 P1 | 📜 Rulebook | B-2: Lizenz-/Altersmatrix Spec an Backend | 👷 Backend: A-3, B-3 ÖTO-Validierung |
|
||||
| 🔴 P1 | 🏗️ Architect | B-1: ADR-0022 LAN-Sync | 🎨 Frontend: C-3; 👷 Backend: C-3; 🐧 DevOps: D-2 |
|
||||
| 🔴 P1 | 🖌️ UI/UX | B-1: Finale Entscheidung Editier-Formulare | 🎨 Frontend: B-3 Live-Validierung |
|
||||
| 🔴 P1 | 🖌️ UI/UX | B-4: Wireframes für Kassa-Screen | 🎨 Frontend: B-4 Kassa-Screen |
|
||||
| 🔴 P1 | 🏗️ Architect | C-1: Zeitplan-Optimierung Konzept | 👷 Backend: C-2; 🎨 Frontend: C-2 |
|
||||
| 🔴 P1 | 🎨 Frontend | B-2: StoreV2-Ablösung | 🧐 QA: B-4 ViewModel-Tests |
|
||||
|
||||
---
|
||||
|
||||
## 🟠 DIESE WOCHE — Sprint B parallel ausführen
|
||||
## 🟠 DIESE WOCHE — Sprint B/C parallel ausführen
|
||||
|
||||
### 🏗️ Architect
|
||||
|
||||
1. **B-1** ADR-0022 LAN-Sync-Protokoll (Event-Sourcing vs. CRDT vs. Timestamp)
|
||||
1. ✅ **B-1** ADR-0022 LAN-Sync-Protokoll (Event-Sourcing vs. CRDT vs. Timestamp)
|
||||
2. 🔴 **C-1** Konzept für Zeitplan-Optimierung (Drag & Drop Logik)
|
||||
|
||||
### 👷 Backend Developer
|
||||
|
||||
1. **A-1** Tenant-Isolation Rollout auf alle Services + E2E-Test re-enablen
|
||||
2. **B-1** Reiter/Pferde/Vereine/Funktionäre CRUD-APIs implementieren
|
||||
3. **A-3** Sonderregeln einarbeiten (nach Rulebook B-2 Übergabe)
|
||||
1. ✅ **A-1** Tenant-Isolation Rollout auf alle Services
|
||||
2. ✅ **B-1** Reiter/Pferde/Vereine/Funktionäre CRUD-APIs
|
||||
3. ✅ **B-2** Kassa-Service (Initialisierung & Billing-Logik)
|
||||
4. 🔴 **C-1** Nennungs-Service Erweiterung (Status-Automat)
|
||||
|
||||
### 🎨 Frontend Expert
|
||||
|
||||
1. ✅ **B-2** `BewerbRepository` + `AbteilungRepository` + `DefaultTurnierRepository` angelegt
|
||||
2. ✅ **B-2** `turnierFeatureModule` (Koin): alle 3 Repositories + ViewModels gebunden;
|
||||
Turnier/Bewerb/Abteilung-Endpunkte verdrahtet
|
||||
3. ✅ **B-3** `ReiterProfilEditDialog` + `PferdProfilEditDialog` mit `MsValidationWrapper` (OEPS, FEI-ID, Lizenz)
|
||||
4. 🔴 **B-2** StoreV2-Ablösung + Akzeptanz-Tests (Mock Engine) — nächster Schritt
|
||||
5. 🔴 **B-3** Lizenzklasse × Bewerb + Altersklasse Pferd × Bewerb (benötigt Bewerb-Kontext)
|
||||
1. ✅ **B-2** Repositories angelegt & Endpunkte verdrahtet
|
||||
2. ✅ **B-3** Live-Validierung für Reiter/Pferde Profile
|
||||
3. 🔴 **B-2** StoreV2-Ablösung (Laufend)
|
||||
4. 🔴 **B-4** Kassa-Screen Implementierung (wartet auf UI/UX)
|
||||
|
||||
### 📜 Rulebook Expert
|
||||
|
||||
1. **B-2** Lizenz-/Altersmatrix als Regulation-as-Data an Backend übergeben
|
||||
2. **B-2** Lizenz×Bewerb-Tabellen Fachfreigabe einholen → DRAFT → STABLE
|
||||
1. ✅ **B-2** Lizenz-/Altersmatrix als Regulation-as-Data übergeben
|
||||
2. 🔴 **C-1** AltersklasseRechner Spezifikation
|
||||
|
||||
### 🐧 DevOps Engineer
|
||||
|
||||
1. ✅ **C-1** Desktop-Packaging (`.msi` / `.deb` / `.dmg`) konfiguriert
|
||||
- `nativeDistributions` vollständig (Linux/Windows/macOS), JRE-Module, JVM-Args
|
||||
- ⚠️ Icons (`icon.png`/`icon.ico`/`icon.icns`) noch ausstehend → 🖌️ UI/UX
|
||||
2. ✅ **C-2** Semantic Versioning + Git-Tagging eingeführt
|
||||
- `version.properties` als Single Source of Truth
|
||||
- `.gitea/workflows/release.yml`: Auto-Tag + `.deb`/`.msi` Packaging
|
||||
- `CHANGELOG.md` angelegt
|
||||
3. 🔴 **C-3** Produktions-Deployment vorbereiten (nächste Session)
|
||||
1. ✅ **C-1** Desktop-Packaging konfiguriert
|
||||
2. ✅ **C-2** Semantic Versioning eingeführt
|
||||
3. 🔴 **C-3** Produktions-Deployment vorbereiten
|
||||
|
||||
### 🧐 QA Specialist
|
||||
|
||||
1. **B-2** Onboarding-Wizard Edge-Case Tests (rememberSaveable Rücknavigation)
|
||||
2. **B-3** Abteilungs-Logik Tests (CSN-C-NEU Pflicht-Teilung)
|
||||
1. ✅ **B-1** ZNS-Importer Hardening (Integrationstests)
|
||||
2. ✅ **B-3** Abteilungs-Logik Tests
|
||||
3. 🔴 **B-2** Onboarding-Wizard Edge-Case Tests
|
||||
|
||||
### 🖌️ UI/UX Designer
|
||||
|
||||
1. **B-1** Finale Entscheidung Editier-Formulare (Review mit Frontend)
|
||||
2. **B-4** Empty States für alle Listenansichten definieren
|
||||
1. ✅ **B-1** Entscheidung Editier-Formulare
|
||||
2. 🔴 **B-4** Wireframes für Kassa-Screen (Veranstaltungs-Kassa)
|
||||
|
||||
### 🧹 Curator
|
||||
|
||||
1. **B-1** Roadmaps-Verzeichnis aktualisieren ← *diese Session*
|
||||
2. **B-2** `docs/05_Backend/` nach Backend-API-Abschluss aktualisieren
|
||||
1. ✅ **B-1** Roadmaps aktualisiert (diese Session)
|
||||
2. 🔴 **B-2** Changelog & SessionLog pflegen
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user