Ü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 Leistungsdaten der Athleten im Leistungskader organisieren kann. Diese Daten sind entscheidend für die Nominierung und den Weg zu den Olympischen Spielen in Brisbane. Bis dahin lagen Trainings- und Wettkampfinformationen verstreut in Tabellen; gebraucht war eine zentrale Verwaltung mit vollständigen Athletenprofilen und der kompletten Wettkampfvorbereitung an einem Ort.
Herausforderung
- Die Leistungsdaten der Kaderathleten sollen zentral an einem Ort organisiert werden.
- Zu jedem Athleten gehört ein vollständiges Profil mit Foto, Gürtelgrad, Gewichtsklasse, Gruppe und Kaderzugehörigkeit.
- Stammdaten wie Gürtelgrade, Gewichtsklassen, Gruppen, Wettkämpfe, Reiseoptionen und Ausstattung müssen getrennt pflegbar und mit den Athleten verknüpfbar sein.
- Für jeden Wettkampf sollen Startgebühr, Übernachtung und die zugewiesene Ausstattung je Athlet nachgehalten werden.
- Der Zugriff bleibt auf den Trainerstab beschränkt; Planung und Auswertung müssen für Herrn Müller aus dem Ausland genauso funktionieren wie vor Ort.
To-Dos
- Datenmodell für Athleten und alle Stammdaten entwerfen (PostgreSQL, eigenes Schema, Fremdschlüssel als Constraints).
- Auth mit signierten Session-Cookies für den Trainerstab.
- Athletenverwaltung mit Suche, vollständigem Profil und Verknüpfung zu allen Stammdaten.
- Stammdatenpflege für Gürtelgrade, Gewichtsklassen, Gruppen, Wettkämpfe, Reiseoptionen und Ausstattung.
- Wettkampf-Tracking mit Startgebühr, Übernachtung und Mehrfachauswahl der Ausstattung.
- Dashboard mit Kennzahlen-Übersicht.
- Container-Build nach GHCR, CI/CD mit automatischem Deploy.
Lösung
Ein Athleten- und Wettkampfmanagement auf Basis von Nuxt (Vue 3 mit Nitro) und PostgreSQL als Datenbank. Herr Müller pflegt alle Stammdaten zentral, führt zu jedem Kaderathleten ein vollständiges Profil und hält für jeden Wettkampf Startgebühr, Übernachtung und Ausstattung nach. Der Zugriff bleibt auf den Trainerstab beschränkt. Ein Dashboard bündelt die wichtigsten Kennzahlen. 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.