fixing Trace Bullet

This commit is contained in:
2025-09-15 21:23:33 +02:00
parent ea560fc221
commit f81e52388c
17 changed files with 331 additions and 25 deletions
+44 -5
View File
@@ -159,14 +159,25 @@ docker-compose logs [service-name]
### Client-Anwendungen starten
```bash
# Desktop-Anwendung starten
./gradlew :client:desktop-app:run
Die Client-Anwendungen sind als ein gemeinsames Kotlin Multiplatform (KMP) Modul `:client` organisiert und liefern:
- Desktop (JVM) über Compose Desktop
- Web (WASM im Browser) über Compose HTML/WASM
# Web-Anwendung bauen
./gradlew :client:web-app:build
```bash
# Desktop (JVM) starten
./gradlew :client:run
# Web (WASM) Development-Server mit Live-Reload
./gradlew :client:wasmJsBrowserDevelopmentRun
# Web (WASM) Production-Build (mit optionaler Bundle-Analyse)
ANALYZE_BUNDLE=true ./gradlew :client:wasmJsBrowserProductionWebpack
```
Ausgabeorte (Build-Artefakte):
- Desktop-Distributionen: client/build/compose/binaries
- WASM Production Build: client/build/dist/wasmJs/productionExecutable
## Entwicklung
### Aktuelle Migrationshinweise
@@ -183,6 +194,34 @@ Das Projekt wurde kürzlich von einer monolithischen Struktur zu einer modularen
Es gibt noch einige offene Probleme, insbesondere bei den Client-Modulen, die Kotlin Multiplatform und Compose Multiplatform verwenden.
#### Status der Client-Module (nach Migration)
- Build-Status: :client baut erfolgreich für JVM, JS und WASM (Chrome/Karma-Tests sind bewusst deaktiviert, siehe unten)
- Desktop: Compose Desktop App startet über :client:run; API-Basisadresse via Umgebungsvariable API_BASE_URL (Default: http://localhost:8081)
- Web/WASM: Development-Server (:client:wasmJsBrowserDevelopmentRun) und Production-Build (:client:wasmJsBrowserProductionWebpack) funktionieren; API-Aufruf erfolgt same-origin über /api/ping (hinter dem Gateway)
- HTTP-Client: Minimaler Ktor-Client (ohne überflüssige Plugins) zur Reduzierung der Bundle-Größe
- UI: Platzhalter-/Demo-Features (Ping, Platform-Info, Conditional Panels) vorhanden; Domänenseiten für masterdata/members/horses/events noch ausständig
Bekannte Einschränkungen & offene Punkte:
- End-to-End-Navigation zu allen Domänen (masterdata, members, horses, events) fehlt noch
- Authentifizierung/Session-Handling im Client noch nicht integriert (Gateway/Keycloak folgt)
- Browser-basierte Unit-Tests (Karma/ChromeHeadless) sind abgeschaltet, um lokale Sandbox-Probleme zu vermeiden; JS-Tests laufen unter Node/Mocha
#### WASM-Bundle-Analyse & Optimierung
- Aktivieren über Umgebungsvariable ANALYZE_BUNDLE=true beim Production-WebBuild:
ANALYZE_BUNDLE=true ./gradlew :client:wasmJsBrowserProductionWebpack
- Die Datei client/webpack.config.d/bundle-analyzer.js protokolliert die Asset-Größen und gibt Optimierungshinweise aus
- client/webpack.config.d/wasm-optimization.js aktiviert Tree-Shaking, Chunk-Splitting und Produktionsoptimierungen
- Weitere Tipps: Reduktion schwerer UI-Komponenten, Lazy Loading, Entfernen ungenutzter Abhängigkeiten
#### Integrationstests und E2E-Hinweise
- Vorhandene Modul-Integrationstests können per ./gradlew test ausgeführt werden
- Für manuelles E2E:
1) docker compose up -d (Gateway + Services)
2) Desktop-Client starten oder WASM-Dev-Server starten
3) Ping im Client ausführen; Erwartung: Status OK vom Gateway-Endpunkt /api/ping
### Entwicklungsrichtlinien
- Verwenden Sie die in der Projektstruktur definierten Module