- **Domain Enhancements:** - Introduced `PausenKonfiguration` and `BesichtigungsBlock` entities to handle automatic breaks and inspection scheduling. - Added `BesichtigungsTypE` enum for inspection types (`ZU_FUSS`, `ZU_PFERD`). - Updated `Bewerb` and `Abteilung` models to include pause and inspection type fields. - **Service Updates:** - Enhanced `StartlistenService` to calculate start times, accounting for breaks and inspection buffers. - Extended `BewerbService` to support patchable time scheduling via new `updateZeitplan` API. - **Persistence Changes:** - Updated tables (`BewerbTable`, `AbteilungTable`) to persist break configurations and inspection types. - Implemented repository mappings to include these new fields. - **Testing:** - Introduced `BewerbeZeitplanIntegrationTest` to validate new scheduling behaviors, including automatic pauses and inspection handling. - **Documentation:** - Added rulebook and conceptual documents for inspection and scheduling logic in `docs/01_Architecture/`.
77 lines
3.0 KiB
Markdown
77 lines
3.0 KiB
Markdown
# 🏗️ [Lead Architect] — Zwischenstand & Roadmap
|
|
|
|
> **Stand:** 3. April 2026
|
|
> **Rolle:** Strategie, Architektur-Entscheidungen (ADRs), Domänen-Modell, Master-Roadmap
|
|
|
|
---
|
|
|
|
## ✅ Erledigte Sprints
|
|
|
|
### Sprint A — Abgeschlossen
|
|
|
|
- [x] **A-1** | ADR-0021 Tenant-Resolution-Strategie
|
|
- [x] Schema-per-Tenant vs. Tenant-ID analysiert → Entscheidung: Eine Veranstaltung = eine Datenbank
|
|
- [x] ADR-0021 in `docs/01_Architecture/adr/0021-tenant-resolution-strategy-de.md` abgelegt
|
|
- [x] Backend Developer informiert (Backend A-1 gestartet)
|
|
|
|
- [x] **A-2** | Domänen-Modell formal präzisiert
|
|
- [x] Hierarchie `Veranstaltung → Turnier → Bewerb → Abteilung` festgeschrieben
|
|
- [x] `TeilnehmerKonto` auf Veranstaltungsebene (Multi-Turnier) ins Modell aufgenommen
|
|
- [x] Veranstaltungs-Kassa mit Turnier-übergreifendem Saldo modelliert
|
|
- [x] Abteilungs-Typen `SEPARATE_SIEGEREHRUNG` und `ORGANISATORISCH` definiert
|
|
- [x] Curator beauftragt: `Ubiquitous_Language.md` aktualisiert
|
|
|
|
---
|
|
|
|
## ✅ Sprint B — Abgeschlossen
|
|
|
|
- [x] **B-1** | ADR für LAN-Sync-Protokoll schreiben
|
|
- [x] Optionen analysieren: Event-Sourcing vs. CRDT vs. Timestamp-Sync
|
|
- [x] Entscheidung für Meldestelle ↔ Richter-Turm Sync getroffen: **Event-Sourcing Light mit Lamport-Uhren** (Option
|
|
D)
|
|
- [x] ADR-0022 in `docs/01_Architecture/adr/0022-lan-sync-protocol-de.md` abgelegt
|
|
- [x] Backend Developer und Frontend Expert über Entscheidung informiert (siehe jeweilige Roadmaps)
|
|
|
|
> ⏸️ **USB-Stick Fallback** — Separate Besprechung zu einem späteren Zeitpunkt (Sprint B/C)
|
|
|
|
---
|
|
|
|
## 🟠 Sprint C — In Arbeit
|
|
|
|
- [x] **C-1** | Zeitplan-Optimierung Konzept
|
|
- [x] Fachliche Anforderungen (Use Cases) definiert
|
|
- [x] Zeitberechnungs-Algorithmus spezifiziert
|
|
- [x] Drag & Drop Logik für Kalender-Ansicht entworfen
|
|
- [x] Konzept-Dokument in `docs/01_Architecture/` abgelegt → `docs/01_Architecture/konzept-zeitplan-optimierung-de.md`
|
|
|
|
- [ ] **C-2** | MASTER_ROADMAP aktualisieren
|
|
- [x] Phase 9 Fortschritt reflektieren
|
|
- [x] Link zum Zeitplan-Konzept ergänzt
|
|
- [ ] Weitere Sprints (D, E) grob skizzieren
|
|
|
|
---
|
|
|
|
## 🔵 Sprint D — Geplant
|
|
|
|
- [ ] **D-1** | USB-Stick Fallback (Sync)
|
|
- [ ] Technische Machbarkeit (File-Storage vs. SQLite-Export) prüfen
|
|
- [ ] ADR für Offline-Transfer erstellen
|
|
|
|
---
|
|
|
|
## 📌 Abhängigkeiten
|
|
|
|
| Meine Aufgabe | Blockiert wen |
|
|
|--------------------|----------------------------------------------------------|
|
|
| ADR-0021 ✅ | 👷 Backend: Tenant-Isolation (Backend Sprint A) |
|
|
| Domänen-Modell ✅ | 👷 Backend: Schema-Design; 🎨 Frontend: ViewModel-Design |
|
|
| LAN-Sync ADR (B-1) | 🎨 Frontend: Sync-UI; 👷 Backend: Sync-Endpunkte |
|
|
| Sync-Konzept (C-1) | 🐧 DevOps: mDNS/WebSocket-Infrastruktur |
|
|
|
|
---
|
|
|
|
## 💡 Empfehlung
|
|
|
|
**Sofort starten:** B-1 (LAN-Sync ADR) — Phase 8 der MASTER_ROADMAP wartet auf mDNS/WebSocket-Discovery; ohne ADR können
|
|
Backend und Frontend nicht parallel implementieren.
|