Update setup guide and README to emphasize desktop-first development. Add detailed instructions for local setup, including prerequisites (JDK 25, Gradle 9.4.0, Docker), and clarify Docker backend stack as optional. Mark Sprint C tasks C-1 and C-2 as complete.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Meldestelle
|
||||
|
||||
> Modulares System für Pferdesportveranstaltungen — gebaut mit Domain-Driven Design, Kotlin Multiplatform und Microservices.
|
||||
> Desktop‑First Meldestelle: Offline‑fähige Compose‑Desktop‑App mit optionalem Backend‑Stack. Domänengetrieben (DDD), Kotlin Multiplatform.
|
||||
|
||||
[](https://git.mo-code.at/mocode-software/meldestelle/actions)
|
||||
[](https://opensource.org/licenses/MIT)
|
||||
@@ -15,20 +15,28 @@ Die gesamte Projektdokumentation (Architektur, Fachdomäne, Entwickler-Anleitung
|
||||
|
||||
| Bereich | Inhalt |
|
||||
|-----------------------------------------------|---------------------------------------------|
|
||||
| [01_Architecture](./docs/01_Architecture) | Master Roadmap, ADRs, C4-Modelle |
|
||||
| [01_Architecture](./docs/01_Architecture) | Master Roadmap, ADRs, C4‑Modelle, Desktop‑Konzept |
|
||||
| [02_Guides](./docs/02_Guides) | Setup-Anleitungen, Entwickler-Guidelines |
|
||||
| [03_Domain](./docs/03_Domain) | Fachlichkeit, Turnierregeln, Entities |
|
||||
| [07_Infrastructure](./docs/07_Infrastructure) | Docker, Keycloak, CI/CD, Zora-Infrastruktur |
|
||||
|
||||
Wesentliche Architektur-Referenz: [Offline‑First Desktop & Backend (Kurzkonzept)](./docs/01_Architecture/konzept-offline-first-desktop-backend-de.md)
|
||||
|
||||
---
|
||||
|
||||
## 🏗️ Tech Stack
|
||||
## 🖥️ 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 |
|
||||
|-----------------------|---------------------------------------------------|
|
||||
| **Backend** | Kotlin, Spring Boot 3.x, Spring Cloud Gateway |
|
||||
| **Frontend** | Kotlin Multiplatform (KMP), Compose Multiplatform |
|
||||
| **Datenbank** | PostgreSQL + Exposed / JPA |
|
||||
| **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 |
|
||||
@@ -38,27 +46,51 @@ Die gesamte Projektdokumentation (Architektur, Fachdomäne, Entwickler-Anleitung
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Quick Start (Lokal)
|
||||
## 🚀 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.
|
||||
|
||||
```bash
|
||||
# 1. Umgebungsvariablen vorbereiten (nur beim ersten Mal)
|
||||
cp .env.example .env
|
||||
# Desktop‑Shell ausführen (Compose Desktop)
|
||||
./gradlew :frontend:shells:meldestelle-desktop:run
|
||||
```
|
||||
|
||||
# 2. Infrastruktur starten (Postgres, Keycloak, Valkey, Consul, Zipkin)
|
||||
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
|
||||
|
||||
```bash
|
||||
# 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 starten (Gateway, Ping-Service)
|
||||
# 3. Backend‑Services (Gateway, Masterdata, Ping, …)
|
||||
docker compose -f docker-compose.yaml -f dc-backend.yaml up -d
|
||||
|
||||
# 4. Ops-Stack starten (Prometheus, Grafana)
|
||||
# 4. Ops‑Stack (Prometheus, Grafana)
|
||||
docker compose -f docker-compose.yaml -f dc-ops.yaml up -d
|
||||
|
||||
# 5. Optional: Web-App starten
|
||||
# 5. Optional: Web‑Shell
|
||||
docker compose -f docker-compose.yaml -f dc-gui.yaml up -d
|
||||
```
|
||||
|
||||
> ⚠️ **Reihenfolge beachten:** Infra muss `healthy` sein, bevor Backend gestartet wird.
|
||||
> Keycloak benötigt ~60–90 Sekunden zum Hochfahren.
|
||||
> ⚠️ Reihenfolge beachten: Infra muss `healthy` sein, 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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user