116 lines
4.7 KiB
Markdown
116 lines
4.7 KiB
Markdown
# Meldestelle
|
||
|
||
> 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)
|
||
|
||
---
|
||
|
||
## 📚 Dokumentation — Single Source of Truth
|
||
|
||
Die gesamte Projektdokumentation (Architektur, Fachdomäne, Entwickler-Anleitungen) befindet sich im `/docs`-Verzeichnis.
|
||
|
||
**Starte hier:** [**→ docs/README.md**](./docs/README.md)
|
||
|
||
| Bereich | Inhalt |
|
||
|-----------------------------------------------|---------------------------------------------|
|
||
| [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)
|
||
|
||
---
|
||
|
||
## 🖥️ 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.
|
||
|
||
```bash
|
||
# 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
|
||
|
||
```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 (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 `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
|
||
|
||
| 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`](./docs/02_Guides).
|
||
|
||
---
|
||
|
||
## 📜 Lizenz
|
||
|
||
Dieses Projekt steht unter der [MIT License](LICENSE).
|