- Introduced `NennungsEingangScreen` for managing online nomination entries.
- Added `NennungsEingang` to `AppScreen` with corresponding route configuration.
- Updated `DesktopMainLayout` to include navigation and UI components for `NennungsEingang`.
- Adjusted `PreviewMain` for screen integration and testing.
- Removed `AbteilungViewModel`, `BewerbAnlegenViewModel`, `BewerbViewModel`, and `CreateBewerbWizardScreen`.
- Cleaned up related imports and unused domain models.
- **Navigation Updates:**
- Added `AppScreen.Billing` route for participant billing linked to an event and tournament.
- **UI Additions:**
- Introduced `BillingScreen` and `BillingViewModel` for participant account management and manual transactions.
- Updated `TurnierAbrechnungTab` to include `BillingScreen` and enable account interaction.
- **Turnier Enhancements:**
- Enhanced `NennungenTabContent` to support navigation to billing via a new interaction.
- Added billing feature as a dependency to `turnier-feature`.
- **Billing Domain:**
- Extended `Money` to include subtraction operation and improved formatting for negative amounts.
- Added DTOs (`TeilnehmerKontoDto`, `BuchungDto`, `BuchungRequest`) for seamless data exchange with backend.
- **Test Improvements:**
- Updated `PreviewTurnierAbrechnungTab` to include interactive billing placeholder.
- **Misc Updates:**
- Enhanced breadcrumb navigation for billing in `DesktopMainLayout` for better user experience.
- Introduced comprehensive management screens for horses, riders, clubs, and officials.
- Integrated reusable `ManagementTableScreen` component for standardized layouts and operations.
- Added back-navigation support in `DesktopNavigationPort` with a stack-based implementation.
- Refined `DesktopMainLayout` with enhanced routing and dynamic placeholders for in-development screens.
- Updated roadmap to reflect completion of Phase 7: "Zentrale Verwaltung".
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Introduced `verein-feature` module for managing Vereine, including list, detail, and editor views using `MsMasterDetailLayout`.
- Added new domain models (`Verein`, `VereinStatus`) and integrated mock data for development.
- Registered the new feature in `settings.gradle.kts` and `DesktopMainLayout.kt`, including breadcrumb navigation and entry point.
- Updated `VeranstaltungenUebersichtV2` to add Vereine as a quick-access KPI tile.
- Removed unnecessary logout functionality and adjusted the root navigation for consistency.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Deleted unused screens including `AdminUebersichtScreen`, `AktorScreens`, `StammdatenImportScreen`, `TurnierDetailScreen`, and supporting components such as `PlaceholderContent`.
- Cleaned up references and placeholders to streamline module structure.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Deleted obsolete `meldestelle-portal` module, including all associated screens, configurations, tests, and assets.
- Includes removal of Compose multiplatform dependencies in `build.gradle.kts`.
- Cleaned up redundant files such as `AppPreview`, `AuthStatusScreen`, `DashboardScreen`, and associated core implementations.
- Streamlined module references in `settings.gradle.kts`.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added `meldestelle-desktop` module using JVM/Compose Desktop, registered in `settings.gradle.kts`.
- Integrated new screens and desktop navigation into core: `Veranstaltungen`, `TurnierDetail`, etc.
- Expanded backend with `ExposedFunktionaerRepository` in `officials-infrastructure`.
- Completed ADRs for bounded context mapping (`ADR-0014`) and context map (`ADR-0015`).
- Updated and extended project documentation with session logs and architecture decisions.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Implemented new reusable components including Label, Input, InputOTP, HoverCard, Popover, Pagination, NavigationMenu, Menubar, ScrollArea, Resizable, RadioGroup, and Progress under `docs/06_Frontend/FIGMA/src/app/components/ui/`.
- Enhanced structural organization to improve scalability and maintainability.
- Updated `settings.gradle.kts` to include the new module `frontend:features:nennung-feature`.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added platform detection logic `currentPlatform()` in `PlatformType.js.kt`.
- Introduced platform-based behavior for LandingScreen, Dashboard, and Login flow.
- Replaced Row with FlowRow in PingScreen to improve button layout.
- Updated Meldestelle Dashboard with platform-specific headers and authentication checks.
- Adjusted AppHeader to accept `isAuthenticated` and `username` parameters.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added competition details for Neumarkt tournaments 26128 and 26129 under `docs/Neumarkt2026/`.
- Logged key outcomes of the Domain Workshop follow-up and Frontend Kick-off session under `docs/99_Journal/2026-03-18_Session_Log_Domain_und_Frontend_Kickoff.md`.
- Updated `frontend/shells/meldestelle-portal` with new routing and UI components for Landing Page, Dashboard, and Tournament creation flow.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Simplified `DeepLinkHandler` logic by removing redundant return values and enhancing route parsing with `ifBlank()`.
- Refactored `sqlite.worker.js` for better modularity and error handling.
- Added helper methods for script imports and initialization error management.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Streamlined `resolveApiBaseUrl` and `resolveKeycloakUrl` by introducing `globalScope` as a reusable property.
- Improved readability and maintainability by reducing redundant code and enhancing structure.
- Removed outdated comments and polished behavior for fallback mechanisms.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Deleted `sqlite.worker.js` and `wasi-dummy.js` to clean up outdated resources.
- Updated `Config.kt` to use a shared `Json` instance for deserialization.
- Revised service worker for cache versioning and to bypass caching of `web-app.js` and `.map` files.
- Enhanced debug logging and improved handling of uncaught errors in new `sqlite.worker.js`.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
Replaced multi-stage Docker builds with a hybrid approach that pre-builds frontend artifacts locally and copies them into the container. Removed Kotlin Multiplatform configurations from the root project to resolve NodeJsRootPlugin conflicts. Adjusted `.dockerignore` to allow pre-built artifacts and increased Gradle/Kotlin daemon memory for faster builds. Updated Caddyfile for runtime stability and added documentation for new build processes.
- Updated Gradle version in `.env`, Dockerfiles, and wrapper to 9.3.1.
- Replaced alias-based application of `kotlinMultiplatform` plugin with direct `id` usage in subprojects to resolve "Plugin loaded multiple times" error.
- Applied centralized plugin management and Gradle daemon optimizations to improve Docker build stability and address KMP classloading issues.
Eliminated `browser {}` blocks from core library modules to resolve "Plugin loaded multiple times" error in Kotlin/JS Gradle builds. Adjusted to support a cleaner, centralized JS target configuration. Documented the root cause and workaround in troubleshooting logs.
Introduced `config.json` runtime configuration fetch mechanism to support the "Build Once, Deploy Everywhere" pattern. Replaced NGINX with Caddy for SPA deployment, enabling SPA routing, security headers, and static asset management. Updated Gradle and Kotlin/JS build configurations to align with the new runtime environment. Enhanced Dockerfile and health checks for optimized CI/CD workflows and improved SPA delivery.
- Removed unused import in `BackendArchitectureTest.kt` and improved clarity of comments on service module dependencies.
- Added a TODO placeholder in `DeepLinkHandler.kt` for upcoming deep link processing implementation.
- Replaced `initKoin` with `startKoin` for DI initialization consistency across platforms.
- Introduced `StateNavigationPort` with `StateFlow` to streamline navigation state management.
- Migrated `AppScreen` to sealed class with route mapping for better navigation handling.
- Deleted unused `frontend/shared` module and removed related dependencies from build files.
- Cleaned up legacy navigation and Redux-related code, aligning with MVVM architecture.
- Deleted `dummy.js` and its usage for sqlite-wasm integration as custom Webpack adjustments are no longer necessary.
- Removed outdated Webpack configuration files: `ignore-sqlite-wasm.js`, `ignore-sqlite-wasm-critical-dependency.js`, and `sqljs-fix.js`.
- Introduced `sqlite-config.js` for simplified and streamlined sqlite-wasm and Skiko Webpack configuration.
- Minor code formatting adjustments across frontend modules for improved consistency.
Deactivated WebAssembly configurations in relevant modules due to stability concerns with JS compatibility. Updated Gradle scripts to comment out related dependencies and tasks while preserving the initial implementation for future reactivation.
Enabled Wasm target across all relevant modules and removed conditional enablement logic. Refactored `core:core-utils` to move JVM-specific code to a new `backend:infrastructure:persistence` module for strict KMP compliance. Updated dependencies, adjusted Gradle configurations, and resolved circular dependencies.
- Simplified test assertions by removing redundant type casting in `ResultTest`.
- Improved Redis mock behavior and verification leniency in `RedisDistributedCacheTest`.
- Updated dependency versions in `libs.versions.toml` (e.g., downgraded `ktor` and adjusted `composeMultiplatform`).
- Refined Gradle build scripts for consistent compiler args and testing configurations (e.g., disabled browser tests in frontend).
- Addressed mocking issues in `RedisDistributedCacheTest` to prevent `NoSuchMethodError`.
- Fixed package imports due to framework updates in Spring Boot and Micrometer-related components.
Removed redundant `jvmToolchain(25)` declarations across module build scripts, as the JVM toolchain is now managed centrally. Added comments for clarity.