MsTextField component: introduce compact mode, enhance visual styling and error handling, and improve placeholder and keyboard interaction logic. Add Dimens and Colors updates, implement navigation rail and header layout for the desktop shell, and update ROADMAP documentation with planned phases.
Meldestelle
Desktop‑First Meldestelle: Offline‑fähige Compose‑Desktop‑App mit optionalem Backend‑Stack. Domänengetrieben (DDD), Kotlin Multiplatform.
📚 Dokumentation — Single Source of Truth
Die gesamte Projektdokumentation (Architektur, Fachdomäne, Entwickler-Anleitungen) befindet sich im /docs-Verzeichnis.
Starte hier: → docs/README.md
| Bereich | Inhalt |
|---|---|
| 01_Architecture | Master Roadmap, ADRs, C4‑Modelle, Desktop‑Konzept |
| 02_Guides | Setup-Anleitungen, Entwickler-Guidelines |
| 03_Domain | Fachlichkeit, Turnierregeln, Entities |
| 07_Infrastructure | Docker, Keycloak, CI/CD, Zora-Infrastruktur |
Wesentliche Architektur-Referenz: Offline‑First Desktop & Backend (Kurzkonzept)
🖥️ Primärer Fokus: Desktop‑App
- Compose Multiplatform (JVM Desktop) als primäre Zielplattform
- Offline‑First: Lokale SQLDelight‑DB, Synchronisation optional
- Multi‑Tenant‑Backend optional für Sync/Verwaltung (Schema‑per‑Tenant, vgl. ADR‑0021)
🏗️ Tech Stack (aktueller Stand)
| Schicht | Technologie |
|---|---|
| Frontend (primär) | Kotlin Multiplatform (KMP), Compose Multiplatform |
| Backend | Kotlin (Ktor/Spring Boot), Spring Cloud Gateway |
| Datenbank | SQLDelight (lokal), PostgreSQL (Backend) |
| Auth | Keycloak (OAuth2 / OIDC) |
| Cache | Valkey |
| Service Discovery | Consul |
| Tracing | Zipkin |
| CI/CD | Gitea Actions + Gitea Registry |
| Infrastruktur | Proxmox VE, Docker Compose, Pangolin Tunnel |
🚀 Quick Start (lokale Entwicklung)
Empfohlen: Starte die Desktop‑App direkt aus dem Repo. Der Backend‑Stack ist optional und wird nur für Sync/Integration benötigt.
A) Desktop‑App starten (ohne Backend)
Voraussetzungen: JDK 21+, aktuelle Gradle Wrapper verwendet.
# Desktop‑Shell ausführen (Compose Desktop)
./gradlew :frontend:shells:meldestelle-desktop:run
Hinweise:
- Beim ersten Start wird die lokale Datenbank initialisiert (Offline‑First).
- Architektur-Referenz:
docs/06_Frontend/MVVM_UDF_Pattern.md(UDF/MVVM für ViewModels)
B) Optional: Backend‑Stack per Docker starten
# 1. Umgebungsvariablen (nur beim ersten Mal)
cp .env.example .env || true
# 2. Infrastruktur (Postgres, Keycloak, Valkey, Consul, Zipkin)
docker compose -f docker-compose.yaml -f dc-infra.yaml up -d
# 3. Backend‑Services (Gateway, Masterdata, Ping, …)
docker compose -f docker-compose.yaml -f dc-backend.yaml up -d
# 4. Ops‑Stack (Prometheus, Grafana)
docker compose -f docker-compose.yaml -f dc-ops.yaml up -d
# 5. Optional: Web‑Shell
docker compose -f docker-compose.yaml -f dc-gui.yaml up -d
⚠️ Reihenfolge beachten: Infra muss
healthysein, bevor Backend gestartet wird. Keycloak benötigt ~60–90 Sekunden.
🧭 Legacy (V1) Hinweise
- Ältere V1‑Abschnitte/Anleitungen (Web‑First/Microservices‑Only) gelten als DEPRECATED.
- Verwende für lokale Entwicklung primär die Desktop‑App (siehe Quick Start). Docker‑Stacks sind optional für Integration/Sync.
- In der Doku sind V1‑Seiten entsprechend markiert oder werden sukzessive bereinigt (siehe Roadmaps Sprint C‑4).
Wichtige lokale Ports
| Service | URL |
|---|---|
| API-Gateway | http://localhost:8081 |
| Keycloak Admin | http://localhost:8180 |
| Consul UI | http://localhost:8500 |
| Grafana | http://localhost:3000 |
| Zipkin | http://localhost:9411 |
🤝 Beitragen
Beiträge sind willkommen. Bitte lies zunächst die Entwickler-Guides unter docs/02_Guides.
📜 Lizenz
Dieses Projekt steht unter der MIT License.