All checks were successful
Build and Publish Docker Images / build-and-push (., backend/infrastructure/gateway/Dockerfile, api-gateway, api-gateway) (push) Successful in 7m39s
Build and Publish Docker Images / build-and-push (., backend/services/ping/Dockerfile, ping-service, ping-service) (push) Successful in 7m21s
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Successful in 3m15s
Build and Publish Docker Images / build-and-push (., config/docker/keycloak/Dockerfile, keycloak, keycloak) (push) Successful in 1m45s
- Changed the app title to "Equest-Events Master Desktop" in `main.kt`. - Updated footer text with new phrasing: "© Mocode-Software · Developed with love for equestrian sports". - Improved code formatting for consistent alignment and indentation across files. Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
4.0 KiB
4.0 KiB
Session Log: 19.03.2026 - Frontend "Turnier anlegen" & Offline-Architektur
Teilnehmer: Owner, 🏗️ [Lead Architect], 📜 [ÖTO/FEI Rulebook Expert], 👷 [Backend Developer], 🎨 [Frontend Expert], 🧹 [Curator]
Ziel der Session
Erweiterung des Frontend-Konzepts für den Turnieranlage-Wizard (Setup) mit besonderem Fokus auf harte Offline-Szenarien, Datenbank-Trennung pro Turnier, Synchronisation via USB-Stick und der architektonischen Trennung zwischen Web-App und Master-Desktop-App.
Ergebnisse & Beschlüsse
1. Trennung: Web-App vs. "Equest-Events Master Desktop"
Es wurde eine klare architektonische Trennung der Clients beschlossen, die auf den Fähigkeiten von Compose Multiplatform (KMP) basiert:
- Web-App (mo-code.at): Dient als zentrale Anlaufstelle. Für die Öffentlichkeit (Ausschreibungen, Nennungen durch Reiter) und als leichtgewichtiges "Meldestellen Dashboard" zur Übersicht. Sie benötigt keine komplexen lokalen Datenbanken (Service Worker) für die Startseite.
- Desktop-App ("Equest-Events Master Desktop"): Eine herunterladbare, native Anwendung (.exe / .app). Dies ist das "
Profi-Werkzeug" für die Meldestelle vor Ort.
- Nur die Desktop-App hat volle Rechte auf das Dateisystem (OS-Ebene), um z.B. direkt auf USB-Sticks zuzugreifen.
- Sie beinhaltet exklusiv die "Admin-Features": Turnieranlage, ZNS-Import, OEPS-Export und die Initialisierung der lokalen Offline-Datenbank (SQLite).
- Der Download-Link für diese Master-App ist direkt im Web-Dashboard für authentifizierte Meldestellen-Admins integriert.
2. Hardcore Offline-First & Turnier-Datenbanken
- Isolierte Datenbanken: Um extreme Offline-Szenarien (kein Internet, kein lokales Netzwerk, "Plumpsklo"-Setup) abzusichern, wird bei der Turnieranlage pro Turnier eine eigenständige, isolierte Datenbank (Turnier-Instanz) initialisiert.
- USB-Stick Synchronisation: Die Master-Desktop-App muss in der Lage sein, diese Turnier-Datenbank komplett über das Dateisystem zu exportieren und auf einem anderen Gerät (z.B. Desktop-App am Richterturm) wieder zu importieren. Es gibt einen manuellen Sync-Prozess (Im-/Export) von Start- und Ergebnislisten via USB-Stick, falls WLAN/LAN ausfallen.
- Spezifizierung Dateipfade im UI: Der "Transfer"-Schritt im UI wurde verfeinert. Statt abstrakter Buttons gibt es
nun klare Eingabefelder für Datei- und Ordnerpfade inkl. File-Picker-Buttons (
...), um den Desktop-Charakter der Anwendung zu unterstreichen.
3. Fremddaten, Y- & Z-Nummern
- Regelwerks-Bestätigung: Der Rulebook Expert bestätigte, dass die Vergabe von Y-Nummern (junge nationale Pferde ohne Registrierung) und Z-Nummern (ausländische Pferde) für alle nationalen Turniere gilt, nicht nur für C-NEU.
- Manuelle Anlage: Das System unterstützt zwingend die nahtlose manuelle Anlage dieser Pferde und Reiter, die nicht im ZNS existieren (z.B. Gäste aus CZ). Diese manuellen Anlagen erfolgen auf Basis der isolierten Turnier-Datenbank.
4. UI-Erweiterung: Der neue "Transfer"-Schritt im Wizard
Der geführte Wizard zum Anlegen eines Turniers in der Desktop-App (MainApp.kt) wurde um den essenziellen ersten
Schritt erweitert: "Transfer & Initialisierung".
Dieser Schritt fungiert als technische Schaltzentrale und beinhaltet:
- Initialisierung der Turnier-Datenbank (OEPS Nummer).
- ZNS-Daten Import (OEPS) & Import von externen Zucht-Daten (z.B. AWÖ) via Dateiauswahl.
- OEPS-Ergebnis-Export (Generierung der
.ergDatei nach Turnierende) via Dateiauswahl. - Manuelle Up-/Downloads für den USB-Stick Sync (Turnier Export / Import) via Verzeichnisauswahl.
Aktualisierte Dokumente
frontend/shells/meldestelle-portal/src/commonMain/kotlin/MainApp.kt(Fünfstufiger Wizard mit detailliertem " Transfer"-Schritt und File-Picker Mockups implementiert. Dashboard-Hinweis auf Desktop-App Download hinzugefügt).frontend/shells/meldestelle-portal/src/jvmMain/kotlin/main.kt(Titel der Desktop-Anwendung auf "Equest-Events Master Desktop" geändert).