Ersetzt die Standard-Laravel-README durch eine umfassende Beschreibung der Handball Team Manager App mit allen Features, Rollen, Technologien, Installationsanleitung und Open-Source-Hinweis. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Handball Team Manager
Open-Source-Webanwendung zur Verwaltung von Handball-Jugendmannschaften
Eine moderne, mehrsprachige Web-App für Trainer, Elternvertreter und Familien, um Termine, Spieler, Fahrgemeinschaften, Statistiken und Vereinsorganisation an einem Ort zu bündeln. Optimiert für Shared Hosting (kein SSH nötig) und als Progressive Web App (PWA) auf dem Smartphone nutzbar.
Zweck
Viele Jugend-Handballmannschaften organisieren sich über WhatsApp-Gruppen, E-Mail-Verteiler und Excel-Listen. Dabei gehen Zusagen verloren, Fahrgemeinschaften werden doppelt geplant und niemand weiß, wer den Kuchen mitbringt. Diese App löst genau diese Probleme: eine zentrale Plattform, auf der alle Beteiligten Termine einsehen, zu- oder absagen, Fahrgemeinschaften bilden und Verpflegung koordinieren können — übersichtlich, datenschutzkonform und ohne technische Vorkenntnisse.
Features
Terminverwaltung
- Erstellen und Verwalten von Heimspielen, Auswärtsspielen, Trainings, Turnieren, Besprechungen und sonstigen Terminen
- Status-System: Veröffentlicht, Entwurf, Abgesagt
- Standort mit Kartenansicht und Routenplanung (OpenStreetMap/Nominatim)
- Dateianhänge pro Termin (Hallenplan, Einladungen etc.)
- Konfigurierbare Mindestanforderungen pro Termintyp (Spieler, Catering, Zeitnehmer)
Teilnehmerverwaltung
- Spieler und Eltern können zusagen, absagen oder offen lassen
- Übersichtliche Teilnehmerliste mit Echtzeit-Status
- Adminansicht mit manueller Statusänderung
Catering & Zeitnehmer
- Eltern tragen sich für Verpflegung ein (mit Freitext: „Bringe Kuchen mit")
- Zeitnehmer-Koordination für Heimspiele
- Automatische Prüfung der Mindestanforderungen
Fahrgemeinschaften
- Fahrten anbieten mit Sitzplatzangabe und Treffpunkt
- Mitfahrer zuordnen und entfernen
- Anzeige freier Plätze pro Fahrt
- Fahrt zurückziehen (mit Benachrichtigung der Mitfahrer)
Spielerverwaltung
- Spieler-Profil mit Trikotnummer, Geburtsjahr, Foto, Position
- 7 Handball-Positionen: Torwart, Linksaußen, Rechtsaußen, Rückraum Links/Mitte/Rechts, Kreisläufer
- Zuordnung zu Teams und Eltern-Accounts
- Soft-Delete mit 7-Tage-Wiederherstellung
Spielerstatistik
- Pro-Spiel-Erfassung: Tore, Torwürfe, TW-Paraden, TW-Schüsse, Bemerkungen
- Trefferquote (Feldspieler) und Fangquote (Torwarte)
- Spieler-Rangliste mit Ampel-Performance (grün/gelb/rot)
- Spielfeld-Visualisierung (SVG): Beste Spieler pro Position mit Leistungsanzeige
- Detail-Modal mit historischer Spielübersicht pro Spieler
Team-Verwaltung
- Mehrere Mannschaften parallel verwalten
- Spieler-Zuordnung zu Teams
- Team-basierte Zugriffskontrolle (Trainer sehen nur ihre Teams)
Statistiken & Auswertungen
- Sieg/Niederlage/Unentschieden-Übersicht mit Siegquote
- Charts: Spieler-Teilnahme, Eltern-Engagement (Catering/Zeitnehmer)
- Filterbar nach Team und Zeitraum
- Eltern-Engagement-Rangliste
Kommentare
- Diskussionsfunktion pro Termin
- Moderation durch Admins (Soft-Delete)
- HTML-sanitisierter Inhalt
Dateiverwaltung
- Dateien hochladen und kategorisieren
- Download und Vorschau im Browser
- Team-basierte Zugriffskontrolle
Listengenerator
- Formatierte Spieler-/Mannschaftslisten erstellen
- PDF-Export für Trainer und Betreuer
Standortverwaltung
- Bekannte Spielorte speichern und wiederverwenden
- Adresssuche mit Geocoding (OpenStreetMap/Nominatim)
Benutzerverwaltung & Rollen
| Rolle | Beschreibung |
|---|---|
| Admin | Vollzugriff: Einstellungen, Benutzer, Teams, alle Termine |
| Trainer | Staff-Zugriff auf zugeordnete Teams, Termine erstellen/bearbeiten |
| Elternvertreter | Erweiterte Ansicht für zugeordnete Teams |
| Elternteil | Teilnahme, Catering, Fahrgemeinschaften, Kommentare |
- Einladungssystem mit Token-basierter Registrierung
- Profilbild, Sprachwahl und Passwortänderung
- Kontolöschung mit 7-Tage-Wiederherstellung
- Admin kann Benutzer aktivieren/deaktivieren
DSGVO / Datenschutz
- DSGVO-Einwilligungssystem: Nutzer laden eine unterschriebene Einwilligungserklärung hoch
- Admin prüft und genehmigt die Einwilligung
- Bis zur Genehmigung ist die App im Nur-Lesen-Modus (keine Aktionen möglich)
- Impressum und Datenschutzerklärung über den Admin-Bereich pflegbar (WYSIWYG-Editor)
- Mehrsprachige Rechtstexte (pro Sprache konfigurierbar)
Mehrsprachigkeit
Die App unterstützt 6 Sprachen vollständig:
| Sprache | Code |
|---|---|
| Deutsch | de |
| English | en |
| Polski | pl |
| Русский | ru |
| العربية (RTL) | ar |
| Türkce | tr |
Jeder Benutzer wählt seine bevorzugte Sprache im Profil. Alle Oberflächen, Fehlermeldungen und E-Mails werden in der gewählten Sprache angezeigt.
Einstellungen (Admin)
- App-Name und Slogan
- Favicon und Vereinslogo hochladen
- Saison-Konfiguration
- E-Mail (SMTP) mit Testfunktion
- Rechtstexte (Impressum, Datenschutz) pro Sprache mit WYSIWYG-Editor
- Mindestanforderungen pro Termintyp (Spieler, Catering, Zeitnehmer)
- Demo-Daten laden oder löschen
- Werksreset mit Passwortbestätigung
Installation
Die App bringt einen 5-Schritte-Installationsassistenten mit:
- Systemanforderungen prüfen — PHP 8.2+, benötigte Extensions, Verzeichnisrechte
- Datenbank konfigurieren — SQLite (empfohlen) oder MySQL
- App einrichten — Name, URL, Admin-Account anlegen
- E-Mail konfigurieren — SMTP-Einstellungen mit Testversand
- Abschluss — Demo-Daten, Lizenzschlüssel, fertig
Kein SSH-Zugang nötig — die App ist für Shared Hosting (z.B. All-Inkl.com, Strato, IONOS) optimiert und kann per FTP deployed werden.
Systemanforderungen
- PHP 8.2 oder höher
- SQLite oder MySQL 8.0+
- PHP-Extensions: PDO, Mbstring, OpenSSL, Tokenizer, XML, Ctype, JSON, BCMath, Fileinfo
- Webserver: Apache oder Nginx (DocumentRoot auf
/public)
Technologie-Stack
| Komponente | Technologie |
|---|---|
| Backend | Laravel 12 (PHP 8.2+) |
| Datenbank | SQLite / MySQL |
| Frontend | Blade Templates, Alpine.js |
| Styling | Tailwind CSS |
| WYSIWYG-Editor | Quill.js |
| Charts | Chart.js |
| PDF-Export | DOMPDF |
| Karten | Leaflet.js / OpenStreetMap |
| HTML-Sanitizer | HTMLPurifier |
Sicherheit
Die App wurde in 6 unabhängigen Sicherheitsaudits gehärtet (Score: 9.5/10):
- Rate Limiting auf allen kritischen Endpunkten
- HTML-Sanitisierung gegen XSS
- CSRF-Schutz auf allen Formularen
- Mass-Assignment-Schutz auf allen Models
- SSRF-Schutz bei Geocoding (DNS-Rebinding, Host-Whitelist)
- Team-basierte Zugriffskontrolle (Coach-Scoping)
- Einladungstoken SHA-256-gehasht
- Session-Verschlüsselung aktiviert
- Content Security Policy (CSP) und Permissions-Policy Header
- Soft-Delete mit Wiederherstellungszeitraum
- Datei-Berechtigungshärtung
Open Source
Dieses Projekt ist Open-Source-Software. Der Quellcode ist frei verfügbar, kann eingesehen, verwendet, verändert und weiterverbreitet werden.
Warum Open Source?
- Transparenz: Jeder kann den Code prüfen — besonders wichtig bei einer App, die personenbezogene Daten von Kindern und Familien verarbeitet
- Vertrauen: Keine versteckten Tracker, keine Datensammlung, keine Cloud-Abhängigkeit — die Daten bleiben auf deinem Server
- Gemeinschaft: Vereine und Entwickler können die App an ihre Bedürfnisse anpassen und Verbesserungen zurückgeben
- Nachhaltigkeit: Auch wenn der ursprüngliche Entwickler aufhört, kann die Community das Projekt weiterführen
- Kostenfrei: Keine Lizenzgebühren, keine Abo-Modelle — nur Hosting-Kosten für den eigenen Server
Beiträge sind willkommen! Ob Fehlermeldungen, Übersetzungen, Feature-Vorschläge oder Code — jede Hilfe zählt.
Lizenz
Dieses Projekt steht unter der MIT-Lizenz. Du darfst die Software frei verwenden, kopieren, verändern und verbreiten — auch kommerziell.