meldestelle/docs/99_Journal/2026-03-19_Session_Log_Frontend_Transfer_Offline.md
Stefan Mogeritsch 931fe7badb
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
refactor(ui): update app title, footer text, and layout spacing
- 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>
2026-03-19 12:10:17 +01:00

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 .erg Datei 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).