Zurück

Trainermanager

Über das Projekt

Mit seiner neuen Aufgabe als Bundestrainer in Österreich brauchte Herr Müller vom Leistungszentrum Taekwondo Müller ein Werkzeug, mit dem er die Trainingsgruppen seines Leistungszentrums in Deutschland über mehrere Standorte hinweg planen kann, auch aus der Distanz. Bis dahin liefen Einteilung und Anwesenheit über Zettel, Tabellen und Zuruf. Gefragt war eine Oberfläche, über die Trainerinnen und Trainer sich selbst in die passenden Gruppen eintragen und vor dem Training einchecken, während die Leitung den Überblick über alle Standorte behält.

Herausforderung

  • Gruppen, Zeiten und Einteilungen sollen sich für jeden Standort einzeln planen und gefiltert betrachten lassen.
  • Trainer sollen sich selbst in Gruppen eintragen und vor dem Training einchecken, ohne dass die Leitung jede Änderung pflegen muss.
  • Die Anwesenheit wird per persönlicher PIN erfasst, eine doppelte Anmeldung ist ausgeschlossen und jeder kann nur sich selbst ein- und auschecken.
  • Admin, Redakteur und Trainer brauchen klar getrennte Schreibrechte, wobei Redakteure zwar anlegen, aber nichts Bestehendes ändern oder löschen können.
  • Planung und Auswertung müssen für Herrn Müller aus dem Ausland genauso funktionieren wie vor Ort.

To-Dos

  • Datenmodell für Monatspläne, Slots, Gruppen, Standorte, Labels und Trainer entwerfen (PostgreSQL, Fremdschlüssel als Constraints).
  • Rollen und Berechtigungsmodell umsetzen (Admin, Redakteur, Trainer, Gast).
  • Auth mit signierten Session-Cookies und gehashten Trainer-PINs, Rate Limiting für Check-in und Widerruf.
  • Kalenderansicht der Monatspläne mit Filter nach Standort.
  • Self-Service Check-in mit Sperre gegen doppelte Anmeldung und Slots für mehrere Trainer.
  • Wöchentlicher Trainingsplan pro Standort und Wochentag.
  • Container Build nach GHCR, CI/CD mit automatischem Deploy.

Lösung

Ein rollenbasiertes Planungssystem auf Basis von Nuxt (Vue 3 mit Nitro) und PostgreSQL als Datenbank. Trainerinnen und Trainer tragen sich über eine Oberfläche selbst in die Gruppen ihres Standorts ein und checken per PIN ein; die Leitung plant Monatspläne und wöchentliche Trainingszeiten für alle Standorte und filtert die Ansicht nach Standort. Ein mehrstufiges Berechtigungsmodell trennt Anlegen, Bearbeiten und Löschen sauber nach Rolle. Das Deployment läuft containerisiert über GHCR mit automatischem Build und Deploy per GitHub Actions.

Aus Datenschutzgründen können ausschließlich Demo-Versionen mit anonymisierten Daten zur Verfügung gestellt werden.