README.md: Vollständige App-Beschreibung statt Laravel-Boilerplate
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>
This commit is contained in:
232
README.md
232
README.md
@@ -1,59 +1,213 @@
|
|||||||
<p align="center"><a href="https://laravel.com" target="_blank"><img src="https://raw.githubusercontent.com/laravel/art/master/logo-lockup/5%20SVG/2%20CMYK/1%20Full%20Color/laravel-logolockup-cmyk-red.svg" width="400" alt="Laravel Logo"></a></p>
|
# Handball Team Manager
|
||||||
|
|
||||||
<p align="center">
|
**Open-Source-Webanwendung zur Verwaltung von Handball-Jugendmannschaften**
|
||||||
<a href="https://github.com/laravel/framework/actions"><img src="https://github.com/laravel/framework/workflows/tests/badge.svg" alt="Build Status"></a>
|
|
||||||
<a href="https://packagist.org/packages/laravel/framework"><img src="https://img.shields.io/packagist/dt/laravel/framework" alt="Total Downloads"></a>
|
|
||||||
<a href="https://packagist.org/packages/laravel/framework"><img src="https://img.shields.io/packagist/v/laravel/framework" alt="Latest Stable Version"></a>
|
|
||||||
<a href="https://packagist.org/packages/laravel/framework"><img src="https://img.shields.io/packagist/l/laravel/framework" alt="License"></a>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
## About Laravel
|
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.
|
||||||
|
|
||||||
Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as:
|
---
|
||||||
|
|
||||||
- [Simple, fast routing engine](https://laravel.com/docs/routing).
|
## Zweck
|
||||||
- [Powerful dependency injection container](https://laravel.com/docs/container).
|
|
||||||
- Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage.
|
|
||||||
- Expressive, intuitive [database ORM](https://laravel.com/docs/eloquent).
|
|
||||||
- Database agnostic [schema migrations](https://laravel.com/docs/migrations).
|
|
||||||
- [Robust background job processing](https://laravel.com/docs/queues).
|
|
||||||
- [Real-time event broadcasting](https://laravel.com/docs/broadcasting).
|
|
||||||
|
|
||||||
Laravel is accessible, powerful, and provides tools required for large, robust applications.
|
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.
|
||||||
|
|
||||||
## Learning Laravel
|
---
|
||||||
|
|
||||||
Laravel has the most extensive and thorough [documentation](https://laravel.com/docs) and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework. You can also check out [Laravel Learn](https://laravel.com/learn), where you will be guided through building a modern Laravel application.
|
## Features
|
||||||
|
|
||||||
If you don't feel like reading, [Laracasts](https://laracasts.com) can help. Laracasts contains thousands of video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library.
|
### 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)
|
||||||
|
|
||||||
## Laravel Sponsors
|
### Teilnehmerverwaltung
|
||||||
|
- Spieler und Eltern können **zusagen, absagen oder offen** lassen
|
||||||
|
- Übersichtliche Teilnehmerliste mit Echtzeit-Status
|
||||||
|
- Adminansicht mit manueller Statusänderung
|
||||||
|
|
||||||
We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the [Laravel Partners program](https://partners.laravel.com).
|
### Catering & Zeitnehmer
|
||||||
|
- Eltern tragen sich für **Verpflegung** ein (mit Freitext: „Bringe Kuchen mit")
|
||||||
|
- **Zeitnehmer-Koordination** für Heimspiele
|
||||||
|
- Automatische Prüfung der Mindestanforderungen
|
||||||
|
|
||||||
### Premium Partners
|
### Fahrgemeinschaften
|
||||||
|
- Fahrten **anbieten** mit Sitzplatzangabe und Treffpunkt
|
||||||
|
- Mitfahrer **zuordnen** und **entfernen**
|
||||||
|
- Anzeige freier Plätze pro Fahrt
|
||||||
|
- Fahrt zurückziehen (mit Benachrichtigung der Mitfahrer)
|
||||||
|
|
||||||
- **[Vehikl](https://vehikl.com)**
|
### Spielerverwaltung
|
||||||
- **[Tighten Co.](https://tighten.co)**
|
- Spieler-Profil mit **Trikotnummer, Geburtsjahr, Foto, Position**
|
||||||
- **[Kirschbaum Development Group](https://kirschbaumdevelopment.com)**
|
- 7 Handball-Positionen: Torwart, Linksaußen, Rechtsaußen, Rückraum Links/Mitte/Rechts, Kreisläufer
|
||||||
- **[64 Robots](https://64robots.com)**
|
- Zuordnung zu Teams und Eltern-Accounts
|
||||||
- **[Curotec](https://www.curotec.com/services/technologies/laravel)**
|
- Soft-Delete mit 7-Tage-Wiederherstellung
|
||||||
- **[DevSquad](https://devsquad.com/hire-laravel-developers)**
|
|
||||||
- **[Redberry](https://redberry.international/laravel-development)**
|
|
||||||
- **[Active Logic](https://activelogic.com)**
|
|
||||||
|
|
||||||
## Contributing
|
### 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
|
||||||
|
|
||||||
Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions).
|
### Team-Verwaltung
|
||||||
|
- Mehrere Mannschaften parallel verwalten
|
||||||
|
- Spieler-Zuordnung zu Teams
|
||||||
|
- Team-basierte Zugriffskontrolle (Trainer sehen nur ihre Teams)
|
||||||
|
|
||||||
## Code of Conduct
|
### Statistiken & Auswertungen
|
||||||
|
- **Sieg/Niederlage/Unentschieden**-Übersicht mit Siegquote
|
||||||
|
- **Charts**: Spieler-Teilnahme, Eltern-Engagement (Catering/Zeitnehmer)
|
||||||
|
- Filterbar nach Team und Zeitraum
|
||||||
|
- Eltern-Engagement-Rangliste
|
||||||
|
|
||||||
In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct).
|
### Kommentare
|
||||||
|
- Diskussionsfunktion pro Termin
|
||||||
|
- Moderation durch Admins (Soft-Delete)
|
||||||
|
- HTML-sanitisierter Inhalt
|
||||||
|
|
||||||
## Security Vulnerabilities
|
### Dateiverwaltung
|
||||||
|
- Dateien hochladen und kategorisieren
|
||||||
|
- Download und Vorschau im Browser
|
||||||
|
- Team-basierte Zugriffskontrolle
|
||||||
|
|
||||||
If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [taylor@laravel.com](mailto:taylor@laravel.com). All security vulnerabilities will be promptly addressed.
|
### Listengenerator
|
||||||
|
- Formatierte Spieler-/Mannschaftslisten erstellen
|
||||||
|
- PDF-Export für Trainer und Betreuer
|
||||||
|
|
||||||
## License
|
### Standortverwaltung
|
||||||
|
- Bekannte Spielorte speichern und wiederverwenden
|
||||||
|
- Adresssuche mit Geocoding (OpenStreetMap/Nominatim)
|
||||||
|
|
||||||
The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).
|
---
|
||||||
|
|
||||||
|
## 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.
|
||||||
|
|||||||
Reference in New Issue
Block a user