| .fleet | ||
| .github/workflows | ||
| api-gateway | ||
| composeApp | ||
| config | ||
| docs | ||
| event-management | ||
| gradle | ||
| horse-registry | ||
| kotlin-js-store | ||
| master-data | ||
| member-management | ||
| shared-kernel | ||
| .editorconfig | ||
| .gitignore | ||
| AUTHENTICATION_AUTHORIZATION_SUMMARY.md | ||
| build.gradle.kts | ||
| DATABASE_SETUP_FIXES.md | ||
| database-integration-test.kt | ||
| docker-compose.yml | ||
| Dockerfile | ||
| fixes_implemented.md | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| issues_found.md | ||
| LICENSE | ||
| README_API_Implementation.md | ||
| README_CODE_ORGANIZATION.md | ||
| README_CONFIG.md | ||
| README_DATABASE_SETUP.md | ||
| README.md | ||
| settings.gradle.kts | ||
| test_authentication.kt | ||
Meldestelle - Self-Contained Systems Architecture
This is a Kotlin JVM backend project implementing a Self-Contained Systems (SCS) architecture for an equestrian sport management system.
Architecture Overview
The project follows Domain-Driven Design (DDD) principles with clearly separated bounded contexts:
Implemented Modules
shared-kernel- Common domain types, enums, serializers, validation utilities, and base DTOsmaster-data- Master data management (countries, regions, age classes, venues)member-management- Person and club/association managementhorse-registry- Horse registration and managementapi-gateway- Central API gateway aggregating all services
Module Dependencies
api-gateway
├── shared-kernel
├── master-data
├── member-management
└── horse-registry
horse-registry
├── shared-kernel
└── member-management
member-management
├── shared-kernel
└── master-data
master-data
└── shared-kernel
Technology Stack
- Kotlin JVM - Primary programming language
- Ktor - Web framework for REST APIs
- Exposed - Database ORM
- PostgreSQL - Database
- Kotlinx Serialization - JSON serialization
- Gradle - Build system
Getting Started
Prerequisites
- JDK 17 or higher
- PostgreSQL database
Building the Project
./gradlew build
Running the API Gateway
./gradlew :api-gateway:run
Documentation
See the docs/ directory for detailed architecture documentation and diagrams.