⚠️ Hinweis: KanuControl befindet sich weiterhin in aktiver Entwicklung. Der fachliche Kern des Systems ist jedoch inzwischen funktionsfähig und vollständig integrierbar.
KanuControl ist jetzt ein funktionsfähiges Fachsystem für:
- Veranstaltungsverwaltung
- Teilnehmerverwaltung
- Förderlogik (KJFP)
- Finanzplanung
- Abrechnung
- PDF-Generierung
- Dashboard & Kennzahlen
Der aktuelle Fokus verschiebt sich damit von Kernfunktionalität hin zu:
- Stabilisierung
- UX
- Performance
- Produktionsreife
KanuControl ist eine Webanwendung zur Beantragung, Verwaltung und Abrechnung von Zuschüssen aus dem Kinder-, Jugend- und Freizeitplan (KJFP) des Landessportbundes NRW (LSB NRW).
Die Anwendung richtet sich an:
- Kanuvereine
- Kanuverbände
- Geschäftsstellen
- Jugendwarte
- Kassierer
- Veranstaltungsleitungen
Ziel ist es, heute häufig manuelle, fehleranfällige und papierbasierte Prozesse durch eine strukturierte, digitale Lösung zu ersetzen.
- Vereine verwalten
- Personen verwalten
- Mitgliedschaften pflegen
- Hauptverein-Logik
- Kontoinhaber verwalten
- KiK-Zertifizierung verwalten
- Veranstaltungen anlegen
- FM / JEM / BM / GV
- Veranstaltungsleitung
- Unterkunft / Verpflegung
- Teilnehmerplanung
- Teilnehmergebühren
- Länder / Orte
- Förderfähigkeit automatisch ableitbar
- Teilnehmer erfassen
- Bulk Add / Remove
- Leiter automatisch Teilnehmer
- Rollenmodell
- Finanzgruppen
- Suche / Filter / Pagination
- Planung nach Kategorien
- Kosten & Einnahmen
- Automatische Summenbildung
- Förderfähigkeitsberechnung
- Dashboard-Kennzahlen
Unterstützte Kategorien:
- Unterkunft
- Verpflegung
- Honorare
- Fahrtkosten
- Verbrauchsmaterial
- Kultur
- Miete
- Sonstige Kosten
- Teilnehmerbeiträge
- Pfand
- KJFP-Zuschuss
- Sonstige Einnahmen
KanuControl enthält eine zentrale Förderlogik:
- Förderfähigkeitsprüfung
- Altersgrenzen je Veranstaltungstyp
- KiK-Zuschläge
- Förderdeckel
- Fördersätze historisiert
- Berechnung pro Teilnehmer / Tag
- Gesamtförderung
Für FM/JEM:
- Teilnehmer zwischen 6 und einschließlich 20 Jahren förderfähig
- Mitarbeiter & Leiter nicht förderfähig
- KiK-Zuschläge automatisch berücksichtigt
- Deckel automatisch angewendet
- Erfassung echter Buchungen
- Einnahmen & Ausgaben
- Finanzgruppen
- Automatische Summierung
- Eigenleistungsberechnung
- KJFP-Abgleich
- Dashboard-Auswertung
Bereits integriert:
- Teilnehmerliste
- FM/JEM Anmeldung
- FM/JEM Abrechnung
Eigenschaften:
- editierbare PDF-Formulare
- automatische Feldbefüllung
- mehrseitige PDFs
- dynamische Berechnungen
- automatische Förderwerte
Das Finanzdashboard enthält:
- Plan-Kosten
- Ist-Kosten
- Plan-Einnahmen
- Ist-Einnahmen
- Plan-Saldo
- Ist-Saldo
- Abweichungen
- Förderung
- Kosten nach Kategorien
- Einnahmen nach Kategorien
Alle Werte werden serverseitig aggregiert.
KanuControl ist eine Client-Server-Webanwendung.
Browser (React)
|
v
Spring Boot REST API
|
Service Layer
|
Mapper (DTO <-> Entity)
|
Repository (JPA)
|
PostgreSQL (Schema-per-Tenant)
KanuControl ist mandantenfähig (Multi-Tenant) aufgebaut.
- Schema-per-Tenant
- Datenisolation pro Verein
- Keycloak-basierte Tenant-Erkennung
- JWT / Gruppen-basiert
- Lazy Schema Creation
- Liquibase-basierte Baseline-Struktur
- Jeder Verein sieht ausschließlich seine eigenen Daten
- Trennung erfolgt strikt über Schema-per-Tenant
- Tenant-Ermittlung erfolgt über:
- JWT (Keycloak)
- HTTP-Header
- Ein neutrales Default-Schema (kanu) wird ausschließlich für Systemzwecke genutzt
Schemas werden lazy erzeugt.
- Das Baseline-Schema (
kanu) wird ausschließlich über Liquibase verwaltet - Neue Tenant-Schemas werden zur Laufzeit aus dieser Baseline abgeleitet
- Die Struktur der Tenant-Schemas ist damit garantiert identisch
- Schema-Initialisierung erfolgt kontrolliert und idempotent
Database: kanu
├── kanu (System / Default-Schema)
├── ekc_test
│ ├── person
│ ├── verein
│ ├── mitglied
│ └── …
├── tenant_verein_2
│ ├── person
│ ├── verein
│ ├── mitglied
│ └── …
- Das Schema
kanudient als technisches Baseline- und System-Schema - Tenant-Schemas enthalten ausschließlich fachliche Daten
- Änderungen an der Struktur erfolgen immer zuerst im Baseline-Schema
Zur Benutzerverwaltung wird Keycloak eingesetzt.
- Open-Source IAM
- OAuth2 / OpenID Connect
- Rollen- & Rechteverwaltung
- Saubere Trennung von Authentifizierung und Fachlogik
- Mandantenzuordnung über Gruppen / Claims
Aktueller Stand
- 218 Tests grün
- Controller-Tests
- Service-Tests
- Repository-Tests
- PDF-Tests
- Multi-Tenant-Tests
- Förderlogik-Tests
- Java 21
- Spring Boot 3.5.10
- Spring Data JPA (Hibernate 6)
- Liquibase
- PostgreSQL
- Maven
- Apache pdfbox V3.02
- Kein Business-Code im Controller
- Kein Datenbankzugriff im Controller
- DTO <-> Entity strikt getrennt
- Zentrale Fehlerbehandlung (@RestControllerAdvice)
- Mandantenlogik strikt außerhalb der Fachlogik
- React
- Vite
- node v22.x
- TypeScript
- Material UI ab V7.x
- VS Code
- Axios
Das Frontend kommuniziert ausschließlich über die REST-API und enthält keine Businesslogik.
Stand: Release v0.5.9
Status: Finanzgruppen integriert – Übergang zur Abrechnung
Abgeschlossen:
- Stammdaten
- Veranstaltungen
- Teilnehmer
- Finanzgruppen
- Planung
- Abrechnung
- Förderlogik
- Dashboard
- PDF Anmeldung
- PDF Abrechnung
- Teilnehmerliste
- Multi-Tenant Architektur
- Abschlusslogik Veranstaltungen
- Plausibilitätsprüfungen
- PDF-Feinschliff
- UX-Optimierung
- Rechte/Rollen
- Stabilisierung
⸻
- Produktionsreife
- Backup/Restore
- Monitoring
- Docker Deployment
- Performance
- Security Hardening
- Audit Logging
KanuControl ist von Beginn an als Open-Source-Projekt gedacht.
Ziele:
- Nachvollziehbarer Code
- Klare Struktur
- Einsteigerfreundlich
- Fachlich verständlich (auch für Nicht-Informatiker)
Contributions sind willkommen:
- Bugfixes
- Refactorings
- Tests
- Dokumentation
- Feature-Vorschläge
Contribution-Guidelines folgen in einer späteren Version.
This project is licensed under the Apache License 2.0 – see the LICENSE file for details.
The name KanuControl, the KanuControl logo, and the KanuControl icon are not covered by the Apache License and remain the exclusive property of the project owner.
You may use, modify, and distribute the software under the terms of the Apache 2.0 license, but you may not use the KanuControl name, logo, or icon in redistributed or modified versions without explicit permission.
If you distribute a modified version of this software, you must remove all KanuControl branding.
For trademark permission requests contact: chris.schog@ekc-home.de
KanuControl entsteht aus der Praxis für die Praxis – mit dem Ziel, ehrenamtliche Arbeit zu entlasten und Verwaltungsprozesse einfacher, transparenter und sicherer zu machen.