- Unterstützung für Master- und Client-Rollen mit angepasster Konfiguration.
- Automatische Dienstsuche (Discovery) für Clients implementiert.
- Erweiterte UI für Drucker-, Backup- und Rollenspezifische Einstellungen.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Master-Geräte können erwartete Clients inkl. Name & Rolle definieren.
- Neue Rollen (`RICHTER`, `ZEITNEHMER` etc.) integriert.
- Backend- und Frontend-Validierung erweitert, UI-Komponente für Client-Verwaltung.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Einbindung eines komplett überarbeiteten Onboarding-Screens mit validierten Eingaben für Gerätename, Sicherheitsschlüssel und Backup-Pfad.
- `SettingsManager` eingeführt zur Speicherung der Onboarding-Daten in `settings.json`.
- Navigation verbessert: Onboarding-Workflow startet, wenn Konfiguration fehlt; neues "Setup"-Icon in der Navigationsleiste hinzugefügt.
- Backend: Geräte-API und `DeviceSecurityFilter` für Authentifizierung per Sicherheitsschlüssel implementiert.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Enabled web-to-backend nominations with `MailController` and REST endpoint (`/api/mail/nennung`).
- Added `NennungRemoteRepository` for frontend API integration using Ktor.
- Linked `WebMainScreen` to backend API for nomination handling and confirmation display.
- Implemented automated confirmation emails for received nominations.
- Updated `MASTER_ROADMAP` to reflect progress on Phase 13 milestones.
- Improved Nennung UI, backend persistence, and QA tracking for Neumarkt tournament.
- Added `NennungRepository` with methods for saving, updating status, and retrieving entries.
- Created `NennungController` to expose REST endpoints for Nennungen.
- Defined `NennungTable` schema with relevant fields and indices.
- Extended `MailPollingService` to parse incoming emails into `NennungEntity` and persist them.
- Updated `build.gradle.kts` with database dependencies and H2 configuration for local dev.
- Refined frontend layout in `OnlineNennungFormular` for improved usability and responsiveness.
- 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.
- Created `MailServiceApplication` with Spring Boot setup.
- Added `MailPollingService` for IMAP polling, `TurnierNr` extraction, and auto-reply functionality.
- Implemented structured email sending for online nominations via `OnlineNennungFormular`.
- Updated frontend with `Erfolgsscreen` for nomination confirmation and fallback handling.
- Added build configurations for Mail-Service and frontend nomination module.
- Documented phase-based roadmap for Online-Nennung and Mail-Service rollout.
- 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.
- **Domain Updates:**
- Introduced `AbteilungsWarnung` entity for structured warning handling compliant with ÖTO § 39.
- Added validation rules for mandatory and optional division thresholds and structural completeness.
- Implemented `CompetitionWarningService` and `AbteilungsRegelService` for domain-centric validations.
- Updated domain models (`Bewerb`, `Abteilung`) to reflect structured warning logic.
- **Services:**
- Expanded `BewerbService` to include warning validation through `CompetitionWarningService`.
- **Frontend Enhancements:**
- Updated `TurnierBewerbeTab` to display warnings using tooltips with clear descriptions and structured formatting.
- Modified `BewerbUiModel` to handle warnings and integrate them into the UI.
- **Persistence:**
- Implemented `CompetitionRepositoryImpl` to map database rows to the new domain models and validation logic.
- **Testing:**
- Added comprehensive unit tests for `validateStrukturellesTeilung` and division-specific warnings.
- Enhanced existing tests to validate the new warning structure and code-based assertions.
- **Docs:**
- Updated roadmap to reflect the completion of structural warnings implementation.
- **Core Updates:**
- Expanded `SyncEvent` model with additional fields (`eventId`, `sequenceNumber`, `originNodeId`, `createdAt`, `checksum`, `schemaVersion`) for improved event tracking and validation.
- Updated event classes (`PingEvent`, `PongEvent`, `DataChangedEvent`, `DataRequestEvent`) to align with the extended `SyncEvent`.
- **Frontend Enhancements:**
- Enhanced `BewerbViewModel` to handle sync events (`PingEvent`, `DataChangedEvent`) and observe connected peers using `SyncManager`.
- Added support for
- Removed unnecessary imports across multiple modules for cleaner code.
- Updated `kotlinx.coroutines.delay` to use `Duration.milliseconds` for improved readability and type safety in `SyncManager`.
- **Core Updates:**
- Implemented `P2pSyncService` interface with platform-specific WebSocket implementations (`JvmP2pSyncService` and no-op for JS).
- Developed `SyncEvent` sealed class hierarchy to handle peer synchronization events (e.g., `PingEvent`, `PongEvent`, `DataChangedEvent`, etc.).
- **Frontend Integration:**
- Introduced `SyncManager` to manage peer discovery and synchronization, coupled with `NetworkDiscoveryService`.
- Updated dependency injection to include `syncModule` for platform-specific sync service initialization.
- Enhanced `BewerbViewModel` to support new sync capabilities, including observing sync events and UI updates for connected peers.
- **Backend Enhancements:**
- Added ZNS-specific fields (`zns_nummer`, `zns_abteilung`) to Bewerb table for idempotent imports.
- Introduced import ZNS logic to handle duplicates and align with SyncManager updates.
- **UI Improvements:**
- Enhanced `TurnierBewerbeTab` with updated dialogs (ZNS imports, sync status) and dynamic previews.
- Improved network syncing feedback and error handling in frontend components.
- **DB Changes:**
- Added migration for new column fields in the Bewerb table with relevant indexing for ZNS import optimizations.
- **Network Discovery Service:**
- Added platform-specific `DiscoveryModule` with JmDNS-based `JmDnsDiscoveryService` for JVM and no-op implementation for JS.
- Implemented service and device discovery using mDNS to enable peer-to-peer synchronization within LAN.
- Registered the module in Koin for dependency injection and integrated it with `networkModule`.
- **Frontend Integration:**
- Enhanced `BewerbViewModel` with intents and actions for starting, stopping, and refreshing network scans.
- Introduced polling for discovered services during an active scan.
- **UI Additions:**
- Added a `NetworkDiscoveryPanel` in `TurnierBewerbeTab` to display discovered services and indicate scan state.
- Updated action buttons to include toggle functionality for network scans.
- **StartlistenRepository:**
- Introduced a new repository for generating and retrieving start lists, with `DefaultStartlistenRepository` implementation for remote API integration.
- **Bewerb Enhancements:**
- Updated `Bewerb` and `BewerbDto` models to include additional details (e.g., `tag`, `platz`, `sparte`, etc.).
- Adjusted mappers to align with model updates.
- **ViewModel Updates:**
- Extended `BewerbViewModel` to integrate with `StartlistenRepository` for start list generation and preview.
- Refactored loading logic in `BewerbViewModel` to display errors and handle repository responses properly.
- **UI Enhancements:**
- Improved start list preview layout in `TurnierBewerbeTab` with additional styling and dynamic fields.
- Added buttons to confirm or cancel start list changes in the preview modal.
- **Dependency Injection:**
- Registered `DefaultStartlistenRepository` in the `TurnierFeatureModule` and updated `BewerbViewModel` factory.
- Consolidated `material3` imports in `CreateBewerbWizardScreen` and `TurnierBewerbeTab` for cleaner code.
- Switched `WizardStep.values()` to `WizardStep.entries.toTypedArray()` for improved readability.
- Changed `kotlinx.coroutines.delay` argument to use `Duration.milliseconds` for enhanced clarity and type safety.
- **Parser Implementation:**
- Introduced `ZnsBewerbParser` to parse n2-XXXXX.dat files and map B-Satz lines to the `ZnsBewerb` domain model.
- Added test coverage for parsing B-Satz lines and edge cases in `ZnsParserTest`.
- **Frontend Integration:**
- Integrated ZNS import functionality into the `BewerbeTabContent` for uploading and previewing Bewerb data before import.
- Enhanced `BewerbViewModel` with state and intents for managing ZNS import, preview dialogs, and import confirmation.
- Supported start list generation and added modal for previewing generated start lists.
- **Domain Services:**
- Implemented `StartlistenService` to generate and calculate start times for start lists with respect to participant preferences.
- Added extensive test coverage in `StartlistenServiceTest` to validate sorting, preferences, and time calculations.
- **UI Enhancements:**
- Updated `Bewerbe` tab layout with search, filtering, and action buttons for ZNS import and start list generation.
- Introduced dialogs for ZNS import previews and start list previews.
- **Onboarding (B-2):** Extracted `OnboardingValidator` and added `OnboardingValidatorTest` for edge-case validations (17 new unit tests: field guards, double-click prevention, cancel/reset behavior, `rememberSaveable` regression fix).
- **Departmental Logic (B-3):** Extended `AbteilungsRegelServiceTest` with 14 new tests covering CSN-C-NEU splitting logic (≤95 cm: license-free/licensed, ≥100 cm: R1/R2+), Caprilli regressions, and organizational/separate award scenarios.
- Updated `AbteilungsRegelService.kt` to implement CSN-C-NEU logic and added `ORGANISATORISCH` + `SEPARATE_SIEGEREHRUNG` enums for new rules.
- Updated Changelog and QA roadmap with completed tasks.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added `nativeDistributions` for Linux (.deb), Windows (.msi), and macOS (.dmg) in `build.gradle.kts` with platform-specific settings, embedded JRE, and JVM-args.
- Implemented centralized semantic versioning via `version.properties` as the single source of truth, applying it across all builds.
- Introduced CI/CD release workflow (`.gitea/workflows/release.yml`) for auto-tagging, artifact builds, and release summaries.
- Created `CHANGELOG.md` following Keep-a-Changelog format for tracking changes.
- Documented icon requirements and packaging steps in `ICONS_PLACEHOLDER.md`.
- Updated DevOps roadmap to reflect completed Sprint C-1 and C-2 tasks.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added `TestExposedConfiguration` to connect Exposed with Spring `DataSource` in the `test` profile.
- Downgraded `springdoc` version from `3.0.0` to `2.8.9` for Spring Boot 3.x compatibility.
- Applied `@ActiveProfiles("test")` to `EntriesIsolationIntegrationTest`.
- Updated roadmap documentation to reflect bugfix and test success.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added `OetoValidators` with live-validation for OEPS numbers, FEI-IDs, license classes, and horse data to align with ÖTO/FEI 2026 standards.
- Expanded `ReiterProfilViewModel` and `PferdProfilViewModel` to include validation states (`ValidationResult`) for enhanced form feedback and dirty state tracking.
- Standardized mock data in `Stores.kt` and `NennungModels.kt` to comply with updated validation rules.
- Created `OetoValidatorsTest` to ensure validation logic accuracy (30 unit tests, all green).
- Updated `build.gradle.kts` to include `kotlin.test` dependency for JVM testing.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Add `ApiRoutes` for central backend routing configuration.
- Implement `DefaultVeranstalterRepository` and `DefaultTurnierRepository` with Ktor clients.
- Add domain models (`Turnier`, `Bewerb`, `Abteilung`, `Veranstalter`) and respective repository interfaces.
- Replace fake VeranstalterRepository with real implementation.
- Update DI with `veranstalterModule` and HTTP client injection.
- Simplify TokenProvider and update HttpClient setup (timeouts, retries, logging).
- Mark roadmap tasks B-2 as partially complete.
- 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>
- Extended `Veranstaltung` domain model with new fields: `untertitel`, `logoUrl`, and `sponsoren`.
- Refined navigation in `DesktopMainLayout.kt` to check turnier context and improve routing.
- Overhauled `TurnierStammdatenTab` with enhanced interactivity: dynamic chip-based selectors for Spartens, Klassen, and Sponsors, as well as date pickers and ZNS import handling.
- Implemented validations for date ranges and required fields.
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>
- Replaced `VeranstalterAuswahlV2` with `VeranstaltungenUebersichtV2` for a direct entry point to event management.
- Integrated onboarding directly into the event creation flow (`VeranstaltungKonfigV2`).
- Added realistic test data (`StoreV2.seed()`) for instant workflow testing.
- Updated initial navigation flow (`DesktopApp.kt`) to prioritize the event-first approach.
- Enhanced screen and component interactions to streamline the user journey in offline-first mode.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added `pferde-feature` module for managing horses, including list, detail, and editing views.
- Implemented `MsMasterDetailLayout` for PferdeScreen, integrating `MsDataTable`, `MsFilterBar`, and `MsActionToolbar`.
- Defined domain models (`Pferd`, `Geschlecht`, `PferdeStatus`) with mock data support.
- Updated roadmap to mark `Pferde-Verwaltung (MVP)` as complete.
- Registered the new module in `settings.gradle.kts` and `meldestelle-desktop` build configuration.
- Added previews for Pferde and Reiter components to support IDE render.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added `reiter-feature` module for managing riders, including list and detail views.
- Implemented `MsMasterDetailLayout` for ReiterScreen, integrating `MsDataTable`, `MsFilterBar`, and `MsActionToolbar`.
- Defined domain models (`Reiter`, `LizenzKlasse`, `Sparte`, `ReiterStatus`) with mock data support.
- Updated roadmap to reflect progress in Phase 5: Routing & Screen-Komposition.
- Registered the new module in `settings.gradle.kts`.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Introduced `MsDialogShell` for a standardized modal dialog framework.
- Added `MsConfirmDialog` as a utility for common confirmation dialogs.
- Updated `Frontend_Komponenten_Roadmap.md` to mark `MsDialogShell` as complete.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Introduced `MsActionToolbar` for consistent placement of primary actions like Save, Cancel, Add, and Delete.
- Updated `Frontend_Komponenten_Roadmap.md` to mark this component as complete in Phase 4.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Introduced `MsMasterDetailLayout` as a standardized layout for master-detail screens, including support for customizable headers and split proportions.
- Updated `Frontend_Komponenten_Roadmap.md` to mark this component as complete in Phase 4.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Introduced `MsSearchableSelect` for autocomplete search and selection of objects like riders, horses, or clubs.
- Updated `Frontend_Komponenten_Roadmap.md` to mark Phase 3 as complete.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Introduced `MsValidationWrapper` for consistent display of validation messages (errors, warnings, info) in input components.
- Updated `Frontend_Komponenten_Roadmap.md` to mark this component as complete in Phase 3.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Introduced a reusable `MsEnumDropdown` component for selecting enum values with customizable options, labels, and error handling.
- Updated `Frontend_Komponenten_Roadmap.md` to reflect progress in Phase 3, marking `MsEnumDropdown` as completed.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Implemented MsFilterBar for search, filters, and result count display in list views.
- Introduced MsDataTable for high-density, flexible data visualization with column definitions and alternate row styling.
- Added MsStatusBadge for compact, reusable status indicators with predefined styles (Success, Warning, Error, Info).
- Updated roadmap documentation to mark these components as complete in Phase 2.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Marked Phase 1 (`Cleanup & Konsolidierung`) as complete and updated task checklists accordingly.
- Recorded fixes for `ping-feature` and `profile-feature` references in the roadmap.
- Improved clarity for completed refactorings and theme adjustments.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Removed redundant files: `AppFooter`, `AppHeader`, `AppScaffold`, `LoadingIndicator`, `MeldestelleButton`, `MeldestelleTextField`, `DashboardCard`.
- Introduced `MsFooter`, `MsHeader`, `MsScaffold`, `MsLoadingIndicator`, `MsButton`, `MsTextField`, `MsCard` with standardized implementation and naming.
- Updated references in `profile-feature` and `ping-feature` to use the new components.
- Aligned with roadmap goals for a consistent, reusable, and high-density design system.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added `Money` value class for precise monetary operations.
- Implemented `BillingCalculator` to handle fee calculations, including ÖTO-compliant contributions and prize distribution rules.
- Created `BillingModule` for dependency injection using Koin.
- Integrated `billing-feature` into the desktop shell and project dependencies.
- Introduced `TurnierWizardV2` and `VeranstalterAuswahlV2` screens with improved UI and billing synchronization support.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Introduced ÖTO 2026-compliant seed data (`V008__Seed_OETO_2026_Data.sql`) for tournament classes, license matrix, and age groups.
- Added `RegulationSeedVerificationTest` to validate repository queries and domain eligibility logic.
- Implemented a new `profile-feature` module covering user profile management and ZNS linking.
- Integrated the `profile-feature` into the desktop shell and frontend with Koin DI configuration.
- Extended CHANGELOG, ROADMAP, and architecture documentation to reflect related changes.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added `backend.infrastructure.persistence` to `@SpringBootApplication` scanBasePackages in `IdentityServiceApplication` and included it as a dependency in `build.gradle.kts`.
- Cleaned up unused imports in several files, including `Screens.kt`, `VeranstaltungScreens.kt`, and `TurnierAbrechnungTab.kt`.
- Updated `PingJpaEntity` to include `@Column` annotation for `createdAt` field.
- Refactored import ordering in `ZnsImportServiceTest` and `DatabaseFactory`.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Deleted obsolete modules related to horses, clubs, officials, and persons services, including their configurations, build files, and database provisioning scripts.
- Cleaned up associated references in the project structure (e.g., `settings.gradle.kts`).
- Removed unused database tables and Spring beans related to these domains.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Replaced all occurrences of `@Preview` with the standardized `@ComponentPreview` annotation for a consistent preview experience across modules.
- Added `compose.uiTooling` dependency to `core/design-system` for enhanced preview functionality.
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>
- Updated `state.errorMessage` to safely use non-null assertion (`!!`) in `Text()` to prevent potential nullability issues and runtime crashes.
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>
- Introduced `AuthStatusScreen` to display user authentication status and navigation options.
- Added `OrganizerProfileScreen` with detailed profile editing features (contacts, address, and social links).
- Created `DashboardScreen` for admins and organizers with responsive layouts.
- Developed reusable `TournamentCard` component for displaying tournament details.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Introduced `onKeycloakLogin` callback in LoginScreen for Keycloak-based authentication.
- Updated Login UI with "Login with Keycloak" button and loading indicator for OIDC flow.
- Implemented dividers and spacing for improved visual structure.
- Refactored LandingScreen into a separate file for better modularity and maintenance.
- Reintroduced LandingScreen features, hero section, and footer with enhanced composables.
- Added `composeHotReload` plugin and `uiTooling` dependency for development improvements.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Introduced `LandingPagePreview` composable for live UI previews in IntelliJ (Hot-Reload).
- Included fallback `main()` for standalone preview in the Design Preview Sandbox.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Introduced `AppTypography` for standardized text styles across the project.
- Added `AppColors` with centralized color palette for consistent theming.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Replaced hardcoded color values in `LightColorScheme` and `DarkColorScheme` with `AppColors`.
- Updated `AppTypography` references in `AppMaterialTypography`.
- Upgraded Kotlin, Compose Multiplatform, and Ktor to latest versions in `libs.versions.toml`.
- Added `uiToolingPreview` dependency in `meldestelle-portal` build script.
- Refactored config loading to include `RequestInit`.
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>
- Logged details of the session addressing compiler warnings and roles in the dashboard POC under `docs/99_Journal/2026-03-19_Session_Log_POC_Rollen_Keycloak.md`.
- Documented Keycloak realm import challenges and resolution strategy for PostgreSQL volume reset.
- Verified JWT role extraction and dashboard routing logic for ADMIN and ORGANIZER roles.
- Included session outcomes and next steps for further validation and testing of the POC setup.
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>
- Updated `keycloak/meldestelle-realm.json` to replace dynamic secrets with static values for local testing.
- Incremented service worker cache version to `v4` and added bypass rules for API requests and app bundles to prevent outdated data.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added detailed agenda for the domain workshop kickoff under `docs/03_Domain/03_Analysis/Domain_Workshop_Agenda.md`.
- Logged session details for resolving the SQLite worker 404 issue under `docs/99_Journal/2026-03-16_Session_Log_Fix_SQLite_Worker.md`.
- Enhanced `sqlite-config.js` to include a new fallback strategy for better resilience.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Fixed minor typos in comments for `LoginViewModel`, `OidcCallback`, and `AuthApiClient`.
- Added `@Suppress("REDUNDANT_CALL_OF_CONVERSION_METHOD")` in `Sha256.kt`.
- Improved phrasing and readability of function documentation across files.
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>