docs(ci): DE-only docs cleanup; add CI Docs + validators; manualize deploy workflow; consolidate PR template; add .gitignore (MP-7)

This commit is contained in:
2025-10-22 13:06:37 +02:00
parent 1bdd5c38aa
commit 51c5635bd3
120 changed files with 3154 additions and 843 deletions
-26
View File
@@ -1,26 +0,0 @@
@startuml C4_Context
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml
title System Context diagram for Meldestelle
Person(eventOrganizer, "Event Organizer", "Organizes and manages equestrian events")
Person(administrator, "Administrator", "Manages system configuration and master data")
Person(member, "Member", "Registers for events and manages personal information")
Person(horseOwner, "Horse Owner", "Registers and manages horse information")
System(meldestelle, "Meldestelle", "Modular system for managing equestrian sports events, including registration of horses, members, and events")
System_Ext(paymentProvider, "Payment Provider", "Processes payments for event registrations")
System_Ext(emailSystem, "Email System", "Sends notifications and confirmations")
System_Ext(federationSystem, "Equestrian Federation System", "Provides validation of memberships and horses")
Rel(eventOrganizer, meldestelle, "Creates and manages events using")
Rel(administrator, meldestelle, "Configures and administers")
Rel(member, meldestelle, "Registers for events and updates personal information using")
Rel(horseOwner, meldestelle, "Registers and manages horses using")
Rel(meldestelle, paymentProvider, "Processes payments through")
Rel(meldestelle, emailSystem, "Sends notifications via")
Rel(meldestelle, federationSystem, "Validates memberships and horses with")
@enduml
-75
View File
@@ -1,75 +0,0 @@
@startuml C4_Container
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml
title Container diagram for Meldestelle
Person(eventOrganizer, "Event Organizer", "Organizes and manages equestrian events")
Person(administrator, "Administrator", "Manages system configuration and master data")
Person(member, "Member", "Registers for events and manages personal information")
Person(horseOwner, "Horse Owner", "Registers and manages horse information")
System_Boundary(meldestelle, "Meldestelle") {
Container(desktopApp, "Desktop Application", "Kotlin, Compose Multiplatform", "Provides a rich UI for administrators and event organizers")
Container(webApp, "Web Application", "Kotlin, Compose Multiplatform", "Provides a web interface for members and horse owners")
Container(apiGateway, "API Gateway", "Kotlin, Ktor", "Routes requests to appropriate services, handles authentication and authorization")
Container(masterdataService, "Masterdata Service", "Kotlin, Spring Boot", "Manages master data such as locations, disciplines, etc.")
Container(membersService, "Members Service", "Kotlin, Spring Boot", "Manages member registration and profiles")
Container(horsesService, "Horses Service", "Kotlin, Spring Boot", "Manages horse registration and information")
Container(eventsService, "Events Service", "Kotlin, Spring Boot", "Manages event creation, scheduling, and registrations")
ContainerDb(postgresql, "PostgreSQL", "Database", "Stores all persistent data")
ContainerDb(redis, "Redis", "Cache", "Provides caching for frequently accessed data")
Container(kafka, "Kafka", "Message Broker", "Handles event-driven communication between services")
Container(keycloak, "Keycloak", "Authentication Server", "Manages user authentication and authorization")
Container(monitoring, "Monitoring", "Prometheus, Grafana, Zipkin", "Provides monitoring, metrics, and distributed tracing")
}
System_Ext(paymentProvider, "Payment Provider", "Processes payments for event registrations")
System_Ext(emailSystem, "Email System", "Sends notifications and confirmations")
System_Ext(federationSystem, "Equestrian Federation System", "Provides validation of memberships and horses")
Rel(eventOrganizer, desktopApp, "Uses")
Rel(administrator, desktopApp, "Uses")
Rel(member, webApp, "Uses")
Rel(horseOwner, webApp, "Uses")
Rel(desktopApp, apiGateway, "Makes API calls to", "HTTPS/JSON")
Rel(webApp, apiGateway, "Makes API calls to", "HTTPS/JSON")
Rel(apiGateway, masterdataService, "Routes requests to", "HTTPS/JSON")
Rel(apiGateway, membersService, "Routes requests to", "HTTPS/JSON")
Rel(apiGateway, horsesService, "Routes requests to", "HTTPS/JSON")
Rel(apiGateway, eventsService, "Routes requests to", "HTTPS/JSON")
Rel(apiGateway, keycloak, "Authenticates with", "HTTPS/JSON")
Rel(masterdataService, postgresql, "Reads from and writes to")
Rel(membersService, postgresql, "Reads from and writes to")
Rel(horsesService, postgresql, "Reads from and writes to")
Rel(eventsService, postgresql, "Reads from and writes to")
Rel(masterdataService, redis, "Caches data in")
Rel(membersService, redis, "Caches data in")
Rel(horsesService, redis, "Caches data in")
Rel(eventsService, redis, "Caches data in")
Rel(masterdataService, kafka, "Publishes and subscribes to events")
Rel(membersService, kafka, "Publishes and subscribes to events")
Rel(horsesService, kafka, "Publishes and subscribes to events")
Rel(eventsService, kafka, "Publishes and subscribes to events")
Rel(masterdataService, monitoring, "Sends metrics and traces to")
Rel(membersService, monitoring, "Sends metrics and traces to")
Rel(horsesService, monitoring, "Sends metrics and traces to")
Rel(eventsService, monitoring, "Sends metrics and traces to")
Rel(apiGateway, monitoring, "Sends metrics and traces to")
Rel(eventsService, paymentProvider, "Processes payments through", "HTTPS/JSON")
Rel(membersService, emailSystem, "Sends notifications via", "SMTP")
Rel(eventsService, emailSystem, "Sends notifications via", "SMTP")
Rel(membersService, federationSystem, "Validates memberships with", "HTTPS/JSON")
Rel(horsesService, federationSystem, "Validates horses with", "HTTPS/JSON")
@enduml
@@ -1,63 +0,0 @@
@startuml C4_Component
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Component.puml
title Component diagram for Events Service
Container_Boundary(apiGateway, "API Gateway") {
Component(apiGatewayRouting, "Routing Component", "Ktor Routing", "Routes requests to appropriate services")
Component(apiGatewayAuth, "Authentication Component", "Ktor Auth", "Handles authentication and authorization")
}
Container_Boundary(eventsService, "Events Service") {
Component(eventsApi, "Events API", "Kotlin, Spring Web", "Defines the REST API endpoints for event management")
Component(eventsApplication, "Events Application", "Kotlin, Spring", "Contains application services and use cases")
Component(eventCommandHandlers, "Event Command Handlers", "Kotlin", "Handles commands for creating and modifying events")
Component(eventQueryHandlers, "Event Query Handlers", "Kotlin", "Handles queries for retrieving event information")
Component(eventsDomain, "Events Domain", "Kotlin", "Contains domain models and business logic")
Component(eventAggregate, "Event Aggregate", "Kotlin", "Core domain entity representing an event")
Component(participantAggregate, "Participant Aggregate", "Kotlin", "Core domain entity representing a participant")
Component(eventDomainServices, "Event Domain Services", "Kotlin", "Domain services for complex business logic")
Component(eventsInfrastructure, "Events Infrastructure", "Kotlin, Spring Data", "Contains infrastructure implementations")
Component(eventRepository, "Event Repository", "Kotlin, Spring Data JPA", "Persists and retrieves event data")
Component(eventMessagePublisher, "Event Message Publisher", "Kotlin, Spring Kafka", "Publishes domain events to Kafka")
Component(externalServiceClients, "External Service Clients", "Kotlin, WebClient", "Clients for external services")
}
ContainerDb(postgresql, "PostgreSQL", "Database", "Stores all persistent data")
Container(kafka, "Kafka", "Message Broker", "Handles event-driven communication between services")
Container(redis, "Redis", "Cache", "Provides caching for frequently accessed data")
System_Ext(paymentProvider, "Payment Provider", "Processes payments for event registrations")
System_Ext(emailSystem, "Email System", "Sends notifications and confirmations")
Rel(apiGatewayRouting, eventsApi, "Routes requests to", "HTTPS/JSON")
Rel(apiGatewayAuth, eventsApi, "Provides authentication context to")
Rel(eventsApi, eventsApplication, "Uses")
Rel(eventsApplication, eventCommandHandlers, "Uses")
Rel(eventsApplication, eventQueryHandlers, "Uses")
Rel(eventCommandHandlers, eventsDomain, "Uses")
Rel(eventQueryHandlers, eventsDomain, "Uses")
Rel(eventCommandHandlers, eventsInfrastructure, "Uses")
Rel(eventQueryHandlers, eventsInfrastructure, "Uses")
Rel(eventsDomain, eventAggregate, "Contains")
Rel(eventsDomain, participantAggregate, "Contains")
Rel(eventsDomain, eventDomainServices, "Contains")
Rel(eventsInfrastructure, eventRepository, "Contains")
Rel(eventsInfrastructure, eventMessagePublisher, "Contains")
Rel(eventsInfrastructure, externalServiceClients, "Contains")
Rel(eventRepository, postgresql, "Reads from and writes to")
Rel(eventMessagePublisher, kafka, "Publishes messages to")
Rel(eventQueryHandlers, redis, "Caches results in")
Rel(externalServiceClients, paymentProvider, "Makes API calls to", "HTTPS/JSON")
Rel(externalServiceClients, emailSystem, "Sends emails via", "SMTP")
@enduml