Skip to content

pbotte/vereinsapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Turn-App

Moderne PHP/MariaDB Web-App fuer Vereins- und Gruppenverwaltung mit getrennten Konten fuer:

  • Sportler
  • Assistenten
  • Uebungsleiter
  • Geschaeftsstelle

Enthaltene Funktionen

Setup

  • setup.php fuer Ersteinrichtung
  • DB-Zugang + Datenbankanlage
  • Vereinsname in settings
  • Erstkonto fuer Geschaeftsstelle
  • Komplettes Schema inkl. Gruppen, Zuordnungen, Einladungen, Audit-Log

Rollen und Konten

  • Getrennte Kontentabellen pro Rolle
  • Keine Mehrfachrollen
  • Login:
    • alle Rollen ueber Vorname + Nachname + Passwort

Sportler

  • Registrierung ueber gruppenspezifischen Einladungslink/QR-Token
  • Initialpasswort = Geburtsdatum (TTMMJJJJ, z. B. 17032012), danach aenderbar
  • Duplikaterkennung per Vorname + Nachname + Geburtsdatum
  • Eigene Daten bearbeiten (VereinsMitgliedsID nur lesbar)
  • Eigene Gruppen einsehen
  • Eigenes Konto hart loeschen (doppelte Bestaetigung)

Uebungsleiter

  • Gruppenliste vollstaendig
  • Geburtstagsliste pro Gruppe (Sportler, Assistenten, Uebungsleiter)
  • Teilnehmer einladen (Link + QR)
  • Sportler manuell aufnehmen
  • Assistenten anlegen und eigenen Gruppen zuordnen
  • Sportler-Passwort auf Standard (Geburtsdatum) zuruecksetzen
  • Eigenes Profil aendern

Assistenten

  • Gruppenliste light (Name, Vorname, Alter, Geburtstag, Telefonnummern)
  • Geburtstagsliste pro Gruppe
  • Teilnehmer einladen (Link + QR)
  • Sportler manuell aufnehmen

Geschaeftsstelle

  • Gruppen CRUD
    • Loeschen nur bei 0 aktiven Teilnehmern
  • Uebungsleiter CRUD
    • Loeschen nur wenn keiner Gruppe zugeordnet
  • Assistenten CRUD
    • Loeschen nur wenn keiner Gruppe zugeordnet
  • Teilnehmerlisten (Sportler/Assistenten/Uebungsleiter)
  • Pflege VereinsMitgliedsID fuer Sportler

Einladungen / QR

  • Gruppenspezifische Tokens
  • Mehrfachnutzung
  • Ablaufdatum (Standard 14 Tage)
  • QR-Code enthaelt Link mit Token
  • Optionaler Gruppen-Link pro Einladung (z. B. WhatsApp), Anzeige nach erfolgreicher Sportler-Anmeldung

Protokollierung

  • Audit-Log fuer CRUD/Account-Aktionen
  • Speicherung in audit_logs
  • automatische Bereinigung nach log_retention_days (Standard 90)

Login-Sicherheit

  • Brute-Force-Schutz auf index.php ueber DB-gestuetzte Throttles (login_throttles)
  • Sperre nach mehreren Fehlversuchen (Identitaet und IP)
  • Verzoegerung von 2 Sekunden bei jedem fehlgeschlagenen Login

UI / Layout

  • Modernes responsives Layout
  • Linke Sidebar Navigation
  • Hamburger-Toggle auf kleinen Screens
  • Sidebar automatisch sichtbar bei viel Platz

Projektstruktur

  • setup.php - Ersteinrichtung
  • index.php - Login
  • dashboard.php - Rollen-Dashboard
  • profile.php - Eigenes Profil
  • password.php - Passwortwechsel
  • groups.php - Gruppenansichten, Gruppenverwaltung und manuelle Sportleraufnahme
  • groups-leave.php - reduzierte Gruppenansicht fuer Uebungsleiter zum Austragen von Sportlern
  • reset-passwords.php - Passwort-Reset fuer Sportler in den Gruppen des Uebungsleiters
  • invitations.php - Einladungen erzeugen
  • invitation.php - Einladungsseite fuer Registrierung/Zuordnung
  • staff.php - CRUD fuer Uebungsleiter/Assistenten
  • participants.php - Teilnehmerlisten + MitgliedsID Pflege
  • logs.php - Audit-Protokollansicht und manuelle Bereinigung
  • my-groups.php - Gruppenansicht Sportler
  • delete-account.php - harte Selbstloeschung Sportler

Lokaler Start

  1. Webserver mit PHP bereitstellen (z. B. Apache/Nginx + PHP-FPM)
  2. MariaDB laufen lassen
  3. Projekt ins Webroot legen
  4. http://<host>/setup.php aufrufen
  5. Setup-Form ausfuellen
  6. Danach ueber index.php anmelden

Technische Hinweise

  • Kein Mailversand, kein SMS-Versand
  • Sprache: Deutsch
  • E-Mail und Telefon sind optional
  • Pflichtfelder: Vorname, Nachname, Geburtsdatum
  • Elternkontakte sind optional
  • TurnID: nur fuer Sportler, optional, alphanumerisch, max. 16 Zeichen
  • TurnID wird beim Anlegen nicht automatisch von PHP gesetzt
  • Abgelaufene Einladungen werden automatisch bereinigt

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors