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>
214 lines
7.9 KiB
Markdown
Executable File
214 lines
7.9 KiB
Markdown
Executable File
# 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:
|
|
|
|
1. **Systemanforderungen prüfen** — PHP 8.2+, benötigte Extensions, Verzeichnisrechte
|
|
2. **Datenbank konfigurieren** — SQLite (empfohlen) oder MySQL
|
|
3. **App einrichten** — Name, URL, Admin-Account anlegen
|
|
4. **E-Mail konfigurieren** — SMTP-Einstellungen mit Testversand
|
|
5. **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](https://opensource.org/licenses/MIT). Du darfst die Software frei verwenden, kopieren, verändern und verbreiten — auch kommerziell.
|