Go to file
stefan f8eade8091 (fix) Umbau zu SCS
### API-Gateway erweitern
- Bestehenden API-Gateway-Service mit zusätzlichen Funktionen ausstatten:
    - Rate Limiting implementieren
    - Request/Response Logging verbessern
    - Cross-Service Tracing mit eindeutigen Request-IDs einführen
2025-07-21 17:17:40 +02:00
.fleet Project initialized 2025-04-17 13:06:25 +02:00
.github/workflows (fix) Umbau zu SCS 2025-07-21 13:45:58 +02:00
api-gateway (fix) Umbau zu SCS 2025-07-21 17:17:40 +02:00
composeApp (fix) Umbau zu SCS 2025-07-21 16:25:12 +02:00
config (fix) Konfiguration-Setup Umbau zu SCS 2025-07-19 14:13:51 +02:00
docs (fix) Umbau zu SCS 2025-07-21 17:17:40 +02:00
event-management (fix) Umbau zu SCS 2025-07-19 18:31:32 +02:00
gradle (fix) Umbau zu SCS 2025-07-21 16:25:12 +02:00
horse-registry (fix) Umbau zu SCS 2025-07-21 12:08:20 +02:00
kotlin-js-store (fix) Umbau zu SCS 2025-07-19 11:26:09 +02:00
master-data (fix) Umbau zu SCS 2025-07-21 12:08:20 +02:00
member-management (fix) Umbau zu SCS 2025-07-21 16:25:12 +02:00
shared-kernel (fix) Umbau zu SCS 2025-07-21 17:17:40 +02:00
.editorconfig fix(compose): Change server host port mapping to 8081 to avoid local conflict 2025-04-20 16:19:17 +02:00
.gitignore fix(server): Read database config directly from environment variables 2025-04-18 22:01:20 +02:00
API_VALIDATION_IMPLEMENTATION.md (fix) Umbau zu SCS 2025-07-19 18:31:32 +02:00
api-gateway-consolidation-plan.md (fix) Umbau zu SCS 2025-07-21 12:08:20 +02:00
AUTHENTICATION_AUTHORIZATION_IMPLEMENTATION_SUMMARY.md (fix) Umbau zu SCS 2025-07-19 17:54:25 +02:00
AUTHENTICATION_AUTHORIZATION_SUMMARY.md (vision) SCS/DDD 2025-07-18 23:07:05 +02:00
build.gradle.kts (fix) Swagger/OpenAPI-Dokumentation implementieren 2025-06-30 23:38:48 +02:00
CLEANUP_IMPLEMENTATION_PLAN.md (fix) Umbau zu SCS 2025-07-21 12:08:20 +02:00
cleanup-summary.md (fix) Umbau zu SCS 2025-07-21 12:08:20 +02:00
CLIENT_VALIDATION_IMPLEMENTATION.md (fix) Umbau zu SCS 2025-07-21 12:08:20 +02:00
DATABASE_INSTALLATION_COMPLETED.md (fix) Umbau zu SCS 2025-07-21 12:08:20 +02:00
DATABASE_SETUP_FIXES.md (fix) Datenbank-Setup Umbau zu SCS 2025-07-19 13:33:07 +02:00
docker-compose.yml (fix) Umbau zu SCS 2025-07-21 12:08:20 +02:00
Dockerfile fix(server): Read database config directly from environment variables 2025-04-18 22:01:20 +02:00
documentation-consolidation-plan.md (fix) Umbau zu SCS 2025-07-21 12:08:20 +02:00
fixes_implemented.md (vision) SCS/DDD 2025-07-18 23:07:05 +02:00
gradle.properties (fix) Umbau zu SCS 2025-07-19 11:26:09 +02:00
gradlew (fix) cleanup Gradle-Build 2025-06-30 11:18:53 +02:00
gradlew.bat (fix) cleanup Gradle-Build 2025-06-30 11:18:53 +02:00
issues_found.md (vision) SCS/DDD 2025-07-18 23:07:05 +02:00
LICENSE Create LICENSE 2025-04-17 13:19:13 +02:00
README_API_Implementation.md (fix) Umbau zu SCS 2025-07-21 12:08:20 +02:00
README_CODE_ORGANIZATION.md (fix) Umbau zu SCS 2025-07-21 12:10:55 +02:00
README_CONFIG.md (fix) Umbau zu SCS 2025-07-21 12:08:20 +02:00
README_DATABASE_SETUP.md (fix) Umbau zu SCS 2025-07-21 12:08:20 +02:00
README.md (fix) Umbau zu SCS 2025-07-21 13:45:58 +02:00
settings.gradle.kts (vision) SCS/DDD 2025-07-18 23:21:03 +02:00
TEST_CLEANUP_SUMMARY.md (fix) Umbau zu SCS 2025-07-21 16:25:12 +02:00
test-scripts-conversion-plan.md (fix) Umbau zu SCS 2025-07-21 12:10:55 +02:00

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 DTOs
  • master-data - Master data management (countries, regions, age classes, venues)
  • member-management - Person and club/association management
  • horse-registry - Horse registration and management
  • event-management - Event and tournament management
  • api-gateway - Central API gateway aggregating all services

Module Dependencies

api-gateway
├── shared-kernel
├── master-data
├── member-management
├── horse-registry
└── event-management

event-management
├── shared-kernel
└── 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.

API Documentation

The project includes comprehensive API documentation for all endpoints:

  • Central API Documentation: Access the central API documentation page at /docs (or /api which redirects to /docs)
  • Swagger UI: Access the interactive API documentation at /swagger when the application is running
  • OpenAPI Specification: The OpenAPI specification is available at /openapi
  • JSON API Overview: A JSON representation of the API structure is available at /api/json
  • Developer Guidelines: Guidelines for documenting APIs are available in docs/API_DOCUMENTATION_GUIDELINES.md

The API documentation covers all bounded contexts:

  • Authentication API
  • Master Data API
  • Member Management API
  • Horse Registry API
  • Event Management API

How to Use the API Documentation

  1. Start the application with ./gradlew :api-gateway:run
  2. For a comprehensive documentation portal, navigate to http://localhost:8080/docs
  3. For detailed interactive documentation, navigate to http://localhost:8080/swagger
  4. For the raw OpenAPI specification, navigate to http://localhost:8080/openapi
  5. Explore the available endpoints, request/response models, and authentication requirements
  6. Test API calls directly from the Swagger UI interface

The central documentation page provides:

  • Overview of the API architecture
  • Details about all API contexts and their endpoints
  • Links to additional documentation resources
  • Authentication instructions
  • Response format examples

For Developers

When adding or modifying API endpoints, please follow the API Documentation Guidelines. These guidelines ensure consistency across all API documentation and make it easier for developers, testers, and API consumers to understand and use our APIs.

Last Updated

2025-07-21