- Restructure project into domain-specific modules (core, masterdata, members, horses, events, infrastructure) - Create shared client components in common-ui module - Implement CI/CD workflows with GitHub Actions - Consolidate documentation in docs directory - Remove deprecated modules and documentation files - Add cleanup and migration scripts for transition - Update README with new project structure and setup instructions |
||
|---|---|---|
| .fleet | ||
| .github/workflows | ||
| client | ||
| config | ||
| core | ||
| docker | ||
| docs | ||
| events | ||
| gradle | ||
| horses | ||
| infrastructure | ||
| kotlin-js-store | ||
| masterdata | ||
| members | ||
| platform | ||
| .editorconfig | ||
| .gitignore | ||
| build.gradle.kts | ||
| cleanup_old_modules.sh | ||
| commit_message.txt | ||
| docker-compose.yml | ||
| Dockerfile | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| LICENSE | ||
| README.md | ||
| settings.gradle.kts | ||
| update_imports.sh | ||
Meldestelle
Überblick
Meldestelle ist ein modulares System zur Verwaltung von Pferdesportveranstaltungen. Das System ermöglicht die Registrierung von Pferden, Mitgliedern und Veranstaltungen sowie die Verwaltung von Stammdaten.
Das Projekt wurde kürzlich auf eine modulare Architektur migriert, um die Wartbarkeit und Erweiterbarkeit zu verbessern.
Systemanforderungen
- Java 21
- Kotlin 2.1.20
- Gradle 8.14
- Docker und Docker Compose
Infrastruktur
Das System nutzt folgende Dienste:
- PostgreSQL 16: Primäre Datenbank
- Redis 7: Caching
- Keycloak 23.0: Authentifizierung und Autorisierung
- Kafka 7.5.0: Messaging und Event-Streaming
- Zipkin: Distributed Tracing
- Prometheus & Grafana: Monitoring (optional)
Projektstruktur
Das Projekt ist in folgende Hauptmodule unterteilt:
-
core: Gemeinsame Kernkomponenten
- core-domain: Domänenmodelle und Geschäftslogik
- core-utils: Allgemeine Hilfsfunktionen
-
masterdata: Verwaltung von Stammdaten
- masterdata-api: API-Definitionen
- masterdata-application: Anwendungslogik
- masterdata-domain: Domänenmodelle
- masterdata-infrastructure: Infrastrukturkomponenten
- masterdata-service: Service-Implementierung
-
members: Mitgliederverwaltung
- members-api: API-Definitionen
- members-application: Anwendungslogik
- members-domain: Domänenmodelle
- members-infrastructure: Infrastrukturkomponenten
- members-service: Service-Implementierung
-
horses: Pferderegistrierung
- horses-api: API-Definitionen
- horses-application: Anwendungslogik
- horses-domain: Domänenmodelle
- horses-infrastructure: Infrastrukturkomponenten
- horses-service: Service-Implementierung
-
events: Veranstaltungsverwaltung
- events-api: API-Definitionen
- events-application: Anwendungslogik
- events-domain: Domänenmodelle
- events-infrastructure: Infrastrukturkomponenten
- events-service: Service-Implementierung
-
infrastructure: Gemeinsame Infrastrukturkomponenten
- auth: Authentifizierung
- cache: Caching
- event-store: Event-Speicher
- gateway: API-Gateway
- messaging: Messaging-Infrastruktur
- monitoring: Monitoring-Komponenten
-
client: Client-Anwendungen
- common-ui: Gemeinsame UI-Komponenten
- desktop-app: Desktop-Anwendung
- web-app: Web-Anwendung
Installation und Setup
Voraussetzungen
Stellen Sie sicher, dass Java 21, Docker und Docker Compose installiert sind.
Infrastruktur starten
docker-compose up -d
Dies startet alle erforderlichen Dienste wie PostgreSQL, Redis, Keycloak, Kafka, Zipkin und optional Prometheus und Grafana.
Projekt bauen
./gradlew build
Dienste starten
# Gateway starten
./gradlew :infrastructure:gateway:bootRun
# Masterdata-Service starten
./gradlew :masterdata:masterdata-service:bootRun
# Members-Service starten
./gradlew :members:members-service:bootRun
# Horses-Service starten
./gradlew :horses:horses-service:bootRun
# Events-Service starten
./gradlew :events:events-service:bootRun
Client-Anwendungen starten
# Desktop-Anwendung starten
./gradlew :client:desktop-app:run
# Web-Anwendung bauen
./gradlew :client:web-app:build
Entwicklung
Aktuelle Migrationshinweise
Das Projekt wurde kürzlich von einer monolithischen Struktur zu einer modularen Architektur migriert. Die Migration umfasste:
- Umzug von
:shared-kernelzucore-Modulen - Umzug von
:master-datazumasterdata-Modulen - Umzug von
:member-managementzumembers-Modulen - Umzug von
:horse-registryzuhorses-Modulen - Umzug von
:event-managementzuevents-Modulen - Umzug von
:api-gatewayzuinfrastructure/gateway - Umzug von
:composeAppzuclient-Modulen
Es gibt noch einige offene Probleme, insbesondere bei den Client-Modulen, die Kotlin Multiplatform und Compose Multiplatform verwenden.
Entwicklungsrichtlinien
- Verwenden Sie die in der Projektstruktur definierten Module
- Folgen Sie den Architekturentscheidungen (ADRs) im Verzeichnis
docs/architecture/adr - Verwenden Sie die Datenmodelle aus
docs/architecture/data-model
Tests ausführen
./gradlew test
Dokumentation
Weitere Dokumentation finden Sie im docs-Verzeichnis:
- API-Dokumentation:
docs/api - Architektur:
docs/architecture - Entwicklungsrichtlinien:
docs/development - Diagramme:
docs/diagrams - Betriebsanleitung:
docs/operations - Postman-Sammlungen:
docs/postman
Lizenz
Siehe LICENSE Datei.
Stand
Letzte Aktualisierung: 22. Juli 2025