Benutzerhandbuch — Tischtennis Turniersystem
Version: MVP Sprache: Deutsch Zielgruppen: Administratoren · Spieler · Betreuer
Inhaltsverzeichnis
- Systemübersicht
- Administrator-Anleitung
- 2.1 Registrierung & Anmeldung als Admin
- 2.2 Spieler verwalten
- 2.3 Turnier erstellen
- 2.4 Spieler für ein Turnier anmelden
- 2.5 Auslosung durchführen
- 2.6 Turnier durchführen — Übersicht & Tische
- 2.7 Einsprüche bearbeiten
- 2.8 Betreuer verwalten
- 2.9 Nutzerverwaltung & Rollenzuweisung
- 2.10 Spielbearbeitung & Kampflos
- 2.11 Gruppen-Darstellung (STTV-Format)
- 2.12 Nutzerverwaltung & SMTP-Konfiguration
- 2.13 Gruppen-Detailansicht
- 2.14 Öffentlicher Turnier-Zugang (Spectator)
- 2.15 Tisch-Display (Zuschauer-Anzeige)
- 2.16 API-Dokumentation (Swagger)
- 2.17 Urkunden erstellen & drucken
- 2.18 Abschlussberichte & CSV-Export
- 2.19 Turnier-Fotogalerie
- 2.20 Dynamisches Doppel
- 2.21 Venue-Tischpool
- 2.22 Tischverwaltung (Live-Übersicht)
- 2.23 Spectator Live-Board (Venue-Anzeige)
- 2.24 Jeder gegen Jeden (Round Robin)
- 2.25 Turnier kopieren
- 2.26 Statistik-Dashboard
- 2.27 Mandanten-Verwaltung (Multi-Tenancy)
- 2.28 Spieler-Ampelstatus & Tischzuweisung
- 2.29 Daten-Export
- 2.30 Spieler importieren (Excel/CSV)
- 2.31 Demodaten erzeugen
- 2.32 Tarif & Abonnement
- 2.33 Check-in & QR-Codes am Turniertag
- 2.34 Startnummern & Fast-Lane
- 2.35 Race-Turnierserie
- 2.36 Kreisrangliste
- 2.37 Race-Seriewertung
- 2.38 Öffentliche Vereinsseite & Online-Voranmeldung
- 2.39 Online-Anmeldungen verwalten
- Spieler-Anleitung
- Betreuer-Anleitung
- Tablet-Bedienung (Spieleingabe am Tisch)
- Häufige Fragen & Fehlerbehandlung
1. Systemübersicht
Das Tischtennis-Turniersystem ersetzt Papierbögen und manuelle Tabellen durch eine vollständig digitale Lösung. Alle Geräte am Veranstaltungsort greifen über den Browser auf das System zu — keine App-Installation erforderlich.
Dark Mode
Das System unterstützt einen Dark Mode, der über das Sonne/Mond-Icon im Header jeder Seite umgeschaltet werden kann.
| Modus | Beschreibung |
|---|---|
| Hell | Heller Hintergrund (Standard) |
| Dunkel | Dunkler Hintergrund — schont die Augen bei schwacher Beleuchtung |
| System | Folgt automatisch der Betriebssystem-Einstellung |
Die Einstellung wird im Browser gespeichert und bleibt über Sitzungen hinweg erhalten.
Startseite (Landingpage)
Die Startseite unter / bietet einen Überblick über das gesamte System:
- Feature-Übersicht — Was das System für jede Rolle bietet (Admin, Spieler, Betreuer, Schiedsrichter)
- Screenshot-Karussell — Visuelle Eindrücke der wichtigsten Ansichten (Auto-Play, Touch-fähig). Neue Screenshots im Ordner
/public/screenshots/werden automatisch erkannt und angezeigt — die Anzahl im Text passt sich dynamisch an. - Direkt einsteigen — Login-Karten für jede Rolle mit direkten Links zu den Anmeldeseiten
- Registrierung — Spieler und Betreuer können sich direkt über die Startseite registrieren
Die Startseite ist öffentlich zugänglich — keine Anmeldung erforderlich.
Rollen im System
| Rolle | Zugang | Aufgaben |
|---|---|---|
| Administrator | /admin/login |
Turniere erstellen, Spieler verwalten, Auslosung, Einsprüche lösen |
| Spieler | /player/login |
Eigene Partien verfolgen, Ergebnisse bestätigen, Einspruch erheben |
| Betreuer | /betreuer/login |
Betreute Spieler live verfolgen, Aufrufe überwachen |
| Schiedsrichter/Tischbediener | /table/[Tisch-ID] |
Live-Spielstand eingeben, Zeiten verwalten |
Voraussetzungen
- WLAN am Veranstaltungsort ist zwingend erforderlich — das System funktioniert nicht offline.
- Für jeden Tisch wird ein Tablet (beliebiges Modell, Browser genügt) benötigt.
- Spieler benötigen für die digitale Bestätigung ein eigenes Gerät (Smartphone oder PC) oder bestätigen direkt am Tablet.
2. Administrator-Anleitung
2.1 Registrierung & Anmeldung als Admin
Erstmalige Registrierung (Self-Service)
Neue Admins können sich selbst registrieren — ohne dass ein Systembetreiber eingreifen muss:
- Öffne
/admin/signupim Browser. - Fülle das Formular aus: Vorname, Nachname, Vereinsname, E-Mail und Passwort.
- Setze die Pflicht-Checkboxen für AGB und Datenschutzerklärung.
- Klicke auf Registrieren — du erhältst eine Bestätigungs-E-Mail.
- Klicke auf den Link in der E-Mail → du wirst zu einem Willkommens-Dialog weitergeleitet.
- Wähle deinen Tarif und schließe optional den Checkout ab. (Du kannst das auch überspringen und mit dem Free-Tarif starten.)
Nach der Registrierung ist dein Mandant sofort aktiv. Du kannst direkt Spieler anlegen und Turniere erstellen.
Anmeldung
- Öffne
/admin/loginim Browser. - Gib deine E-Mail-Adresse und dein Passwort ein.
- Klicke auf Anmelden — du wirst automatisch zum Admin-Dashboard weitergeleitet.
Bei Verlust des Passworts klicke auf der Login-Seite auf Passwort vergessen — oder öffne direkt
/admin/forgot-password. Du erhältst eine E-Mail mit einem Reset-Link, der dich zurück zur Admin-Login-Seite führt.
2.2 Spieler verwalten
Alle Spieler werden zentral in einer Datenbank verwaltet, unabhängig von einzelnen Turnieren.
Neuen Spieler anlegen:
- Navigiere zu Spieler im Admin-Dashboard.
- Klicke auf Spieler hinzufügen.
- Fülle das Formular aus:
- Vorname und Nachname (Pflicht)
- Verein (optional)
- TTR-Wert (optional) — die aktuelle Tischtennis-Rangliste des Spielers. Wird für die Lostopf-Einteilung bei Auslosungen verwendet.
- Jahrgang (optional) — Geburtsjahr des Spielers, relevant für Altersklassen-Turniere.
- Lizenznummer (optional) — Spielerlizenz des Verbands (z. B. click-TT-Nummer).
- Verband (optional) — Tischtennisverband des Spielers (z. B. „STTV", „DTTB").
- Display-Name (automatisch generiert aus Vorname + erster Buchstabe Nachname, z. B. „Max M.") — max. 20 Zeichen, kann manuell angepasst werden. Wird auf Scoreboards und in Brackets angezeigt.
- PIN (4-stellig, numerisch) — wird für die Spielbestätigung am Tablet und im Portal benötigt. Die PIN wird verschlüsselt gespeichert.
- Klicke auf Speichern.
Spieler bearbeiten:
- Klicke in der Spielerliste auf das Stift-Symbol neben dem Spieler.
- Ändere die gewünschten Felder.
- Klicke auf Speichern.
PIN zurücksetzen (Admin):
- Klicke in der Spielerliste auf das Schlüssel-Symbol neben dem Spieler.
- Gib die neue 4-stellige PIN ein und bestätige.
- Der Spieler wird in seinem Portal benachrichtigt, dass seine PIN geändert wurde.
Portal-Zugang einrichten:
Im Bearbeitungsdialog eines Spielers findest du den aufklappbaren Bereich „Portal-Zugang". Hier kannst du einem Spieler ohne eigenes Konto einen Portal-Zugang einrichten:
- Klappe den Bereich Portal-Zugang auf.
- Gib eine E-Mail-Adresse und ein Passwort (mindestens 8 Zeichen) für den Spieler ein.
- Klicke auf Speichern — der Spieler kann sich ab sofort unter
/player/loginanmelden.
Spieler mit Portal-Zugang werden in der Spielertabelle mit einem grünen „Portal"-Badge gekennzeichnet.
E-Mail ändern (Spieler mit Portal):
- Öffne den Bearbeitungsdialog des Spielers.
- Im Bereich Portal-Zugang ist die aktuelle E-Mail-Adresse sichtbar.
- Ändere die E-Mail-Adresse und klicke auf Speichern.
Passwort zurücksetzen (Spieler mit Portal):
- Öffne den Bearbeitungsdialog des Spielers.
- Im Bereich Portal-Zugang klicke auf Passwort zurücksetzen.
- Gib das neue Passwort ein und bestätige.
TTR-Plausibilitätshinweise:
Beim Eintragen oder Ändern des TTR-Werts zeigt das System Hinweise zur Einordnung:
| TTR-Bereich | Level |
|---|---|
| 0–1000 | Anfänger |
| 1001–1500 | Vereinsspieler |
| 1501–2000 | Leistungsspieler |
| 2001–3000 | Spitzenspieler |
Bei ungewöhnlich hohen oder niedrigen Werten erscheint eine Warnmeldung (z. B. „TTR-Wert liegt im Spitzenspieler-Bereich — bitte prüfen"). Dies ist nur ein Hinweis, der Wert kann trotzdem gespeichert werden.
CSV-Import (click-TT):
Du kannst Spieler aus einer click-TT-Exportdatei importieren, anstatt sie einzeln anzulegen:
- Klicke in der Spielerverwaltung auf „CSV importieren".
- Schritt 1 — Upload: Wähle eine CSV-Datei aus (Semikolon- oder Komma-getrennt, UTF-8-Kodierung).
- Schritt 2 — Vorschau: Das System zeigt eine Vorschau aller erkannten Spieler:
| Farbe | Bedeutung |
|---|---|
| Grün | Neuer Spieler — wird angelegt |
| Gelb | Bestehender Spieler erkannt (per Lizenznummer oder ähnlichem Namen) — Daten werden aktualisiert |
| Rot | Fehler in der Zeile — wird übersprungen |
- Schritt 3 — Ergebnis: Nach dem Import siehst du eine Zusammenfassung (neu angelegt, aktualisiert, übersprungen).
Unterstützte Felder: Nachname, Vorname, Verein, TTR, Lizenznummer, Verband, Jahrgang.
Matching-Logik: Bestehende Spieler werden anhand der Lizenznummer (exakter Abgleich) oder des Namens (Fuzzy-Matching) erkannt. Neue Spieler erhalten automatisch eine PIN.
Hinweis: Die CSV-Datei muss im click-TT-Exportformat vorliegen. Andere Formate werden nicht unterstützt.
Spieler löschen:
- Ein Spieler kann nur gelöscht werden, wenn er in keinem aktiven Turnier angemeldet ist.
Hinweis: Spieler können sich auch selbst über
/player/registerregistrieren. Diese Selbstregistrierung verknüpft ihr Portal-Konto automatisch mit dem entsprechenden Spieler-Eintrag in der Datenbank.
2.3 Turnier erstellen
- Navigiere zu Turniere → Neues Turnier.
- Fülle das Formular aus:
| Feld | Beschreibung |
|---|---|
| Name | z. B. „Vereinsmeisterschaft 2026" |
| Datum | Datum der Veranstaltung |
| Startzeit | Geplante Uhrzeit des Turnieranfangs (Pflichtfeld) — wird für die automatische Zeitslot-Berechnung verwendet |
| Veranstaltungsort | Ort / Halle der Veranstaltung |
| Format | KO (Direktausscheidung) oder Gruppe + KO |
| Spielformat | Best-of-3, Best-of-5 oder Best-of-7 |
| Anzahl Tische | Entspricht der physisch verfügbaren Tischanzahl |
| Kleines Finale | Optional: Wenn aktiviert, spielen die beiden Halbfinal-Verlierer um Platz 3 |
- Optional: Lege unter Teilnahmebeschränkungen einen TTR-Bereich und/oder eine Jahrgangsgrenze fest (siehe unten).
- Optional: Aktiviere Kleines Finale, wenn ein Spiel um Platz 3 ausgetragen werden soll. Die Halbfinal-Verlierer werden automatisch in dieses Spiel eingesetzt.
- Klicke auf Turnier erstellen. Das Turnier startet im Status Entwurf.
Hinweis: Das Format „Gruppe + KO" wird nicht mehr direkt im Erstellungsformular konfiguriert. Die Gruppeneinstellungen (Anzahl Gruppen, Gruppenstärke) werden erst im Auslosungs-Tab über den Modus-Slider festgelegt.
Im Status Entwurf können alle Einstellungen noch geändert werden. Nach der Auslosung sind Einstellungen gesperrt.
Teilnahmebeschränkungen (optional)
Du kannst für ein Turnier folgende Einschränkungen festlegen:
| Feld | Beschreibung |
|---|---|
| TTR-Min / TTR-Max | Nur Spieler mit TTR-Wert innerhalb dieses Bereichs (0–3000) |
| Jahrgang ab / Jahrgang bis | Nur Spieler mit Geburtsjahr innerhalb dieser Grenzen |
Alle Felder sind optional. Wenn kein Wert eingetragen wird, gibt es keine Einschränkung.
Hinweis: Einschränkungen können nur im Status Entwurf gesetzt werden. Nach der Auslosung sind sie eingefroren — bestehende Spieler sind davon nicht betroffen.
TTR-Projektion (optional)
Wenn das Turnier TTR-relevant ist (z. B. ein offizielles Verbandsturnier), aktiviere den Toggle TTR-relevant. Das System berechnet dann nach jedem Spiel die voraussichtliche TTR-Änderung für beide Spieler.
| Einstellung | Beschreibung |
|---|---|
| TTR-relevant | Ein/Aus (Standard: ein). Steuert ob ΔTTR-Werte berechnet werden. |
| K-Faktor | Koeffizient für die Berechnung — 16 (Standard), 24 (Verband), 32 (neue Spieler). |
Hinweis: Die angezeigten TTR-Änderungen sind Projektionen, keine offiziellen Werte. Der echte TTR ändert sich erst nach Einreichung der Ergebnisse beim DTTB (über click-TT).
Öffentliche Vereinsseite (optional)
Turniere können öffentlich auf der Vereinsseite bekanntgemacht werden, damit Spieler sich online voranmelden können.
| Einstellung | Beschreibung |
|---|---|
| Auf Vereinsseite anzeigen | Turnier erscheint auf der öffentlichen Vereinsseite (/verein/[vereins-url]). Standard: ein. |
| Anmeldungen automatisch bestätigen | Wenn aktiviert, werden Anmeldungen sofort bestätigt und Spieler erhalten einen QR-Code per E-Mail. Wenn deaktiviert, landen Anmeldungen zunächst auf der Warteliste. |
| Meldeschluss | Stichtag bis wann sich Spieler anmelden können. Standard: Turnierdatum. |
Hinweis: Damit Spieler sich online anmelden können, muss das Turnier auf der Vereinsseite sichtbar sein und der Meldeschluss darf nicht abgelaufen sein.
2.4 Spieler für ein Turnier anmelden
- Öffne das Turnier unter Turniere → gewünschtes Turnier → Tab Spieler.
- Alle verfügbaren Spieler aus der Datenbank werden angezeigt.
- Klicke auf Hinzufügen neben jedem Spieler, der teilnehmen soll.
- Um einen Spieler zu entfernen, klicke auf Entfernen (nur möglich, solange keine Auslosung stattgefunden hat).
Mindestens 2 Spieler müssen angemeldet sein, bevor die Auslosung gestartet werden kann.
Warnungen bei Teilnahmebeschränkungen
Wenn ein Turnier TTR- oder Jahrgangs-Einschränkungen hat und ein Spieler die Kriterien nicht erfüllt, erscheint eine Warnmeldung beim Einschreiben (kein harter Block — du kannst den Spieler trotzdem anmelden):
| Warnung | Bedeutung |
|---|---|
| „Spieler-TTR liegt außerhalb des Turnierbereichs" | TTR des Spielers ist zu hoch oder zu niedrig |
| „Spieler-Jahrgang liegt außerhalb des Turnierbereichs" | Geburtsjahr des Spielers passt nicht zur Altersklasse |
| „Spieler hat keinen TTR-Wert" | TTR ist nicht hinterlegt — Prüfung nicht möglich |
| „Spieler hat keinen Jahrgang" | Geburtsjahr ist nicht hinterlegt — Prüfung nicht möglich |
Nach der Warnung wirst du gefragt, ob du den Spieler trotzdem einschreiben möchtest. Als Admin hast du immer das letzte Wort.
2.5 Auslosung durchführen
- Öffne das Turnier → Tab Auslosung.
- Prüfe, dass alle Spieler korrekt eingetragen sind.
Modus wählen:
- Verwende den Modus-Slider oben im Tab, um den Turniermodus festzulegen:
| Modus | Beschreibung |
|---|---|
| KO | Direktausscheidung — Verlierer scheiden sofort aus |
| Jeder gegen Jeden (Gruppe + KO) | Spieler werden in Gruppen eingeteilt, Gruppensieger qualifizieren sich für die KO-Runde |
- Bei Gruppe + KO wählst du zusätzlich die Gruppenstärke (z. B. 3er- oder 4er-Gruppen). Das System berechnet automatisch die Anzahl der Gruppen.
Live-Vorschau:
Sobald du den Modus und die Gruppenstärke einstellst, zeigt das System eine Live-Vorschau mit folgenden Informationen:
| Vorschau-Feld | Beschreibung |
|---|---|
| Spielanzahl | Gesamtzahl aller Partien im Turnier |
| Geschätzte Dauer | Voraussichtliche Gesamtdauer |
| Min/Max Spiele pro Spieler | Mindest- und Maximalanzahl Spiele, die ein Spieler bestreiten wird |
| Voraussichtliches Ende | Berechnete Uhrzeit basierend auf Startzeit und Tischanzahl |
TTR-Lostöpfe:
Wenn Spieler mit TTR-Werten eingetragen sind, werden sie automatisch in Lostöpfe eingeteilt. Die Töpfe sind farblich unterschieden und sorgen für eine ausgewogene Verteilung der Spielstärke auf die Gruppen.
- Klicke auf Auslosung starten.
- Das System generiert die Gruppen- und/oder Bracket-Struktur und verteilt die Erstrundenspiele automatisch auf die verfügbaren Tische.
- Setze das Turnier auf Aktiv, um es freizuschalten.
Nach der Gruppenphase:
Wenn alle Gruppenspiele abgeschlossen sind, erscheint der Button „KO-Runde starten". Damit werden die qualifizierten Spieler in ein KO-Bracket überführt.
Freilose: Bei ungerader Spieleranzahl erhält der zufällig ausgeloste Spieler ein Freilos und rückt automatisch in die nächste Runde vor.
Achtung: Nach der Auslosung können keine Spieler mehr hinzugefügt oder entfernt werden und die Turniereinstellungen sind gesperrt.
2.6 Turnier durchführen — Übersicht & Tische
Hinweis: Nach der Auslosung wechselt der Tab-Name automatisch von „Auslosung" zu „Tischzuweisung und Spielablauf".
Spielstand verfolgen:
- Auf der Turnier-Detailseite siehst du alle Partien mit aktuellem Status:
- Ausstehend — noch nicht begonnen
- Tisch festgelegt — Admin hat einen Tisch zugewiesen, Spiel wartet auf Beginn
- Läuft — aktuell am Tisch
- Beendet — Ergebnis eingetragen, Bestätigung ausstehend
- Bestätigt — von beiden Spielern bestätigt
- Einspruch — ein Spieler hat widersprochen
Tischzuweisung:
Der Admin weist jedem Spiel einen Tisch zu:
- Öffne den Tab Tischzuweisung und Spielablauf.
- Wähle ein ausstehendes Spiel und weise ihm einen verfügbaren Tisch zu.
- Der Status wechselt auf „Tisch festgelegt" — das Spiel erscheint auf dem zugewiesenen Tablet.
Tisch-Zugang für Schiedsrichter:
Jeder Tisch hat eine eindeutige URL. Diese kann auf dem Tablet-Browser geöffnet werden:
https://[deine-domain]/table/[Tisch-ID]
Die Tisch-ID ist in der Turnierverwaltung einsehbar. Der Zugang zum Tablet erfordert keine Anmeldung — einfach URL öffnen und losspielen.
Nächste Runde freischalten:
- Sobald alle Partien einer Runde bestätigt sind, rücken die Gewinner automatisch in die nächste Runde vor.
- Das Bracket aktualisiert sich automatisch.
2.7 Einsprüche bearbeiten
Wenn ein Spieler ein Ergebnis anficht, erscheint die Partie im Tab Einsprüche des Admin-Dashboards.
Ablauf:
- Navigiere zu Admin-Dashboard → Tab Einsprüche.
- Alle strittigen Partien werden tabellarisch angezeigt (Turnier, Spieler, Ergebnis, Einreicher, Zeitpunkt).
- Klicke auf Bearbeiten neben der entsprechenden Partie.
- Wähle eine Aktion:
| Aktion | Beschreibung |
|---|---|
| Ergebnis bestätigen | Das eingetragene Ergebnis ist korrekt — Partie wird als bestätigt markiert |
| Score korrigieren | Trage das richtige Ergebnis ein (Gleichstand ist nicht zulässig) |
| Rematch anfordern | Partie wird zurückgesetzt — Schiedsrichter gibt das Spiel erneut ein |
- Gib eine Admin-Notiz ein (Pflichtfeld bei allen Aktionen) — diese wird zur Dokumentation gespeichert.
- Klicke auf Entscheidung speichern.
Die Entscheidung wird mit deiner Benutzer-ID und dem Zeitstempel protokolliert.
2.8 Betreuer verwalten
Auf der Seite /admin/betreuer kannst du Spieler manuell Betreuern zuweisen:
- Wähle links in der Spielerliste einen oder mehrere Spieler aus (Checkbox).
- Wähle rechts den gewünschten Betreuer aus.
- Weise die Spieler per Drag & Drop oder über den Zuweisen-Button zu.
- Mit dem X-Button neben einem Spieler kann die Zuweisung wieder aufgehoben werden.
Admin-Zuweisungen überschreiben bestehende Betreuer-Anfragen und sind sofort wirksam.
2.9 Nutzerverwaltung & Rollenzuweisung
Unter /admin/users siehst du alle Nutzer des Systems und kannst ihnen Rollen zuweisen.
Übersicht:
- Alle Spieler aus der Datenbank werden aufgelistet, inklusive Information ob ein Portal-Konto vorhanden ist.
- Nutzer mit Portal-Konto aber ohne Spieler-Eintrag (z. B. reine Admins) erscheinen ebenfalls.
- Die Liste ist nach Name und E-Mail durchsuchbar.
Rollen zuweisen:
- Klicke auf den Rollen-Button neben einem Nutzer.
- Ein Popover mit Checkboxen öffnet sich — wähle eine oder mehrere Rollen:
| Rolle | Zugang |
|---|---|
admin |
Admin-Dashboard |
spieler |
Spieler-Portal |
betreuer |
Betreuer-Dashboard |
schiedsrichter |
Schiedsrichter-Dashboard |
- Klicke auf Speichern — die Änderung wird sofort wirksam.
Hinweis: Du kannst deine eigene
admin-Rolle nicht entziehen — der entsprechende Button ist gesperrt.
Rollenwechsel für Nutzer mit mehreren Rollen:
Ein Nutzer, dem mehrere Rollen zugewiesen wurden, sieht in seiner jeweiligen Ansicht einen Wechsel-Button:
- Im Admin-Dashboard: „Betreuer-Ansicht" und/oder „Schiedsrichter-Ansicht" (wenn entsprechende Rolle vorhanden)
- Im Betreuer-Dashboard: „Admin-Ansicht" (wenn Admin-Rolle vorhanden)
- Im Schiedsrichter-Dashboard: „Admin-Ansicht" (wenn Admin-Rolle vorhanden)
Rollenwechsel erfordern keine erneute Anmeldung — ein Klick genügt.
Audit-Log:
Alle Rollenzuweisungen werden protokolliert. Das Log ist am unteren Ende der /admin/users-Seite einsehbar und zeigt: Wer hat wann welche Rolle geändert.
2.10 Spielbearbeitung & Kampflos
Spiel manuell bearbeiten:
- Öffne das Turnier → Tab Bracket oder Spielplan.
- Klicke auf ein Spiel — das Bearbeitungs-Modal öffnet sich.
- Folgende Felder sind editierbar:
| Feld | Beschreibung |
|---|---|
| Status | Wartend, Spielbereit, Läuft, Beendet, Bestätigt |
| Sätze Spieler 1 / 2 | Gesamtzahl gewonnener Sätze |
| Gewinner | Manuelle Zuweisung |
| Einzelne Sätze | Klicke auf „+ Satz" um Satzergebnisse einzutragen oder zu korrigieren |
Achtung: Bei laufenden Spielen (Status „Läuft") erscheint ein Warnhinweis. Änderungen werden trotzdem sofort gespeichert.
Kampflos & Spielbeendigung (Walkover):
Ein Spiel kann auf verschiedene Arten vorzeitig beendet werden:
- Öffne das Spiel-Modal über den Bracket-Tab.
- Klicke auf „Kampflos vergeben".
- Wähle den betroffenen Spieler und den Grund:
| Grund | Badge | Beschreibung |
|---|---|---|
| Nicht erschienen | w.o. | Spieler ist nicht angetreten (wie bisher) |
| Aufgabe wegen Verletzung | w.o. (orange) | Spieler gibt während des Spiels wegen Verletzung auf |
| Disqualifikation | w.o. (rot) | Spieler wird disqualifiziert |
- Gib den aktuellen Score ein — das System ermittelt automatisch den Gewinner und setzt den passenden Status.
- Der Gewinner wird sofort in die nächste KO-Runde übertragen (Auto-Advancement).
3-Aufrufe-System & Kampflos-Banner:
Sobald ein Spiel den Status „Spielbereit" erhält, startet automatisch ein Aufruf-Zähler:
- Aufruf 1: Sofort bei Spielbereit-Status
- Aufruf 2: Nach 2 Minuten
- Aufruf 3: Nach weiteren 2 Minuten
Wenn nach dem 3. Aufruf kein Spieler erschienen ist, erscheint im Bracket und im Spielplan ein roter „Kampflos möglich"-Banner neben dem betroffenen Spiel. Du kannst dann über das Bearbeitungs-Modal Kampflos vergeben.
2.11 Gruppen-Darstellung (STTV-Format)
Wenn ein Turnier im Modus Gruppe + KO ausgelost wurde, zeigt das System für jede Gruppe drei Ansichten:
Kreuztabelle:
- Zeigt alle Spieler der Gruppe in einer Matrix (Zeilen und Spalten).
- An jeder Kreuzung steht das Ergebnis des direkten Duells (z. B. „3:1").
- Das eigene Feld (Diagonale) ist ausgegraut.
- Format entspricht dem STTV-Standard (Schweizerischer Tischtennisverband).
Runden-Spielplan:
- Listet alle Spiele der Gruppe runden-weise auf.
- Jede Runde zeigt: Paarung, Tisch, Status und Ergebnis.
- Laufende Spiele werden hervorgehoben.
Abschlusstabelle:
Nach Abschluss aller Gruppenspiele wird die Abschlusstabelle berechnet. Die Sortierung erfolgt nach:
- Siege (absteigend)
- Satzverhältnis (absteigend)
- Direktvergleich (bei Gleichstand)
Die Tabelle zeigt pro Spieler: Platzierung, Name, Spiele, Siege, Niederlagen, Sätze (gewonnen:verloren) und Punkte (gewonnen:verloren).
2.12 Nutzerverwaltung & SMTP-Konfiguration
Unter /admin/settings findest du erweiterte Verwaltungsfunktionen.
Mein Konto:
- Öffne
/admin/settings→ Tab Mein Konto. - Hier kannst du dein eigenes Admin-Passwort ändern:
- Gib dein aktuelles Passwort ein.
- Gib das neue Passwort ein (mindestens 8 Zeichen).
- Bestätige das neue Passwort.
- Klicke auf Passwort ändern.
Nutzerverwaltung (erweitert):
Über /admin/settings kannst du zusätzlich zur Rollenzuweisung (siehe 2.9):
| Aktion | Beschreibung |
|---|---|
| Admin-Passwort setzen | Setze das Passwort eines anderen Admin-Nutzers zurück |
| Nutzer deaktivieren | Sperrt den Zugang eines Nutzers — er kann sich nicht mehr anmelden |
| Nutzer löschen | Entfernt den Nutzer dauerhaft aus dem System |
| Neuen Admin anlegen | Erstelle einen neuen Admin-Nutzer mit E-Mail und Passwort |
Hinweis: Du kannst dein eigenes Konto nicht deaktivieren oder löschen.
SMTP-Konfiguration:
- Öffne
/admin/settings→ Tab E-Mail / SMTP. - Konfiguriere den E-Mail-Server, über den das System Benachrichtigungen versendet:
| Feld | Beschreibung |
|---|---|
| SMTP-Host | Adresse des E-Mail-Servers (z. B. smtp.gmail.com) |
| SMTP-Port | Port des Servers (z. B. 587 für TLS) |
| Benutzername | E-Mail-Adresse oder Login des SMTP-Kontos |
| Passwort | Passwort oder App-Passwort des SMTP-Kontos |
| Absender-Adresse | Die „Von"-Adresse für ausgehende E-Mails |
- Klicke auf Test-E-Mail senden, um die Konfiguration zu prüfen.
- Klicke auf Speichern.
Hinweis: Ohne SMTP-Konfiguration können keine E-Mails versendet werden (z. B. Passwort-Reset, Bestätigungs-E-Mails). Die Konfiguration ist für den Produktivbetrieb empfohlen.
2.13 Gruppen-Detailansicht
Im Modus Gruppe + KO kannst du jede Gruppe im Detail einsehen:
- Navigiere zur Turnier-Detailseite → Tab Gruppen.
- Klicke auf eine Gruppen-Karte — ein seitliches Panel (Sheet) öffnet sich.
Inhalte des Panels:
| Bereich | Beschreibung |
|---|---|
| Kreuztabelle | Große, übersichtliche Matrix aller direkten Duelle in der Gruppe |
| Spielplan nach Runden | Alle Gruppenspiele sortiert nach Runden mit Paarung, Tisch und Ergebnis |
| Tischzuweisung | Tischnummer wird inline neben jedem Spiel angezeigt |
| Überfälligkeitsanzeige | Spiele, deren geplante Startzeit überschritten ist, werden rosa hervorgehoben |
| Abschlusstabelle | Nach Abschluss aller Gruppenspiele: Platzierung, Siege, Satzverhältnis. Die Top 2 (qualifiziert für KO-Runde) sind grün hervorgehoben |
Hinweis: Das Panel schließt sich über den X-Button oder durch Klick außerhalb des Panels.
2.14 Öffentlicher Turnier-Zugang (Spectator)
Du kannst den aktuellen Turnierstand mit Zuschauern teilen — ohne dass diese sich anmelden müssen.
Öffentliche Seite:
Jedes Turnier hat eine öffentlich zugängliche Seite unter:
https://[deine-domain]/tournament/[Turnier-ID]
Diese Seite zeigt:
- Gruppenphase: Alle Gruppen mit Kreuztabellen und Abschlusstabellen
- KO-Bracket: Vollständiger Bracket-Baum mit Live-Ergebnissen
- Live-Aktualisierung: Die Seite aktualisiert sich automatisch alle 10 Sekunden
- Vollbild-Modus: Über den Button „Vollbild" kann die Ansicht auf TV oder Monitor im Vollbildmodus angezeigt werden — ideal für Zuschauer-Displays in der Halle
- Auto-Scroll: Über den Auto-Scroll-Button (Doppelpfeil-Icon) wird ein automatisches Pingpong-Scrolling aktiviert — die Seite scrollt langsam von oben nach unten und zurück. Ideal für große Brackets auf TV-Displays. Bei Berührung des Bildschirms pausiert das Scrolling für 5 Sekunden und setzt dann automatisch fort.
Link teilen:
- Öffne die Turnier-Detailseite im Admin-Dashboard.
- Klicke auf „Link kopieren" — der öffentliche Link wird in die Zwischenablage kopiert.
- Alternativ: Klicke auf den QR-Code-Button — ein QR-Code wird generiert, den Zuschauer mit dem Smartphone scannen können.
Hinweis: Für die öffentliche Seite ist kein Login erforderlich. Jeder mit dem Link kann den Turnierstand live verfolgen.
2.15 Tisch-Display (Zuschauer-Anzeige)
Jeder Tisch hat eine eigene Display-Seite unter /display/table/[Tisch-ID], die auf einem Monitor oder Fernseher am Tisch angezeigt werden kann. Sie zeigt in Echtzeit:
- Aktueller Spielstand (Sätze und Punkte, 10rem grosse Ziffern)
- Spieler-Namen und Aufschlag-Anzeige (oranger Punkt)
- Timeout-Status pro Spieler
- Karten-Badges: Gelbe, Gelb-Rote und Rote Karten werden neben dem Spielernamen angezeigt
- Satz-Historie (alle abgeschlossenen Sätze)
- Endergebnis: Nach Spielende wird der Endstand 30 Sekunden lang angezeigt (Sieger hervorgehoben, komplette Satz-Historie inkl. letztem Satz)
- Danach wechselt die Anzeige auf "Bereit" oder das nächste anstehende Spiel
Tipp: Nutze den Vollbild-Modus des Browsers (F11) für eine optimale Darstellung auf TV-Displays.
2.16 API-Dokumentation (Swagger)
Die vollständige REST-API-Dokumentation ist unter /api-docs erreichbar. Sie zeigt alle verfügbaren Endpunkte mit Parametern und Beispiel-Antworten im interaktiven Swagger-UI-Format.
2.17 Urkunden erstellen & drucken
Unter Turniere → gewünschtes Turnier → Tab Urkunden kannst du individuelle Urkunden für die Platzierten erstellen.
Drei Modi stehen zur Verfügung:
| Tab | Beschreibung |
|---|---|
| Vorlagen | 5 vorgefertigte Designs (Modern, Modern-Elegant, Klassisch-Modern, Klassisch, Altdeutsch) — Klick auf eine Vorlage zeigt eine Vorschau |
| Vorgedruckt | Für vorgedruckte Blanko-Urkunden: Lade ein Foto der leeren Urkunde hoch (wird nur als Positionierungshilfe bei 40 % Deckkraft angezeigt) und platziere Textbausteine darauf. Beim Druck werden nur die Texte gedruckt, nicht das Hintergrundbild. |
| Designer | Vollständiger Editor mit Hintergrundfarbe/-bild, Text- und Bildelementen, SVG-Bibliothek (Pokale, Schläger, Lorbeerkranz etc.) |
Designer-Funktionen:
- Textbausteine: Spielername, Platzierung, Turniername, Datum, Spielklasse, Freitext (mehrfach platzierbar)
- Bildelemente: 13 hochwertige SVG-Symbole (Pokale Gold/Silber/Bronze, Schläger, Ball, Tisch, Rahmen, Lorbeerkranz, Stern, Medaille)
- Drag & Drop: Elemente per Maus verschieben
- Maus-Resize: Bildelemente an der Ecke mit der Maus vergrößern/verkleinern
- Layer-Reihenfolge: Elemente nach vorn/hinten verschieben über das Layer-Panel
- Platzierungs-Zuordnung: Jedes Element kann auf bestimmte Platzierungen beschränkt werden (z. B. goldener Pokal nur für 1. Platz)
- Orientierung: Hochformat oder Querformat wählbar
Drucken:
- Wähle, ob die Urkunde auch den 4. Platz einschließen soll (Checkbox).
- Klicke auf Drucken — es wird für jeden Platzierten eine eigene Seite erzeugt.
- Im Druckdialog des Browsers „Als PDF speichern" wählen oder direkt drucken.
Hinweis: Die Urkundeneinstellungen werden pro Turnier gespeichert. Du kannst sie jederzeit anpassen und neu drucken.
2.18 Abschlussberichte & CSV-Export
Nach Abschluss eines Turniers stehen verschiedene Berichte zur Verfügung:
Admin-Turnierbericht (/admin/tournaments/[id]/report):
- Gesamtübersicht: Teilnehmeranzahl, Format, Datum
- Endplatzierungen (1.–8. Platz je nach Turniergröße)
- Statistiken: Spieldauer, längstes Spiel, Durchschnittswerte
- CSV-Export: Alle Ergebnisse als CSV-Datei herunterladen
Spieler-Turnierbericht (/player/report/[tournamentId]):
- Persönlicher Bericht mit allen eigenen Spielen, Ergebnissen und Endplatzierung
- Druckbar als PDF über den Browser-Druckdialog
- TTR-Tagesbilanz (bei TTR-relevanten Turnieren): Tabelle mit ΔTTR pro Spiel und kumuliertem Tagessaldo — zeigt welches Spiel wie viele Punkte gebracht oder gekostet hat.
Hinweis: Die TTR-Tagesbilanz zeigt Projektionen — der echte TTR-Wert ändert sich erst nach offizieller Einreichung beim DTTB (click-TT). LivePZ-Aktualisierungen erfolgen separat.
Betreuer-Turnierbericht (/coaches/report/[tournamentId]):
- Übersicht aller betreuten Spieler mit deren Ergebnissen und Platzierungen
Tipp: Im Druckdialog „Als PDF speichern" wählen, um den Bericht digital zu archivieren.
2.19 Turnier-Fotogalerie
Teilnehmer, Betreuer, Schiedsrichter und Admins können Fotos zu einem Turnier hochladen und in einer öffentlichen Galerie teilen.
Admin-Ansicht:
Unter Turniere → gewünschtes Turnier → Tab Fotos siehst du als Admin:
- Freigabe-Warteschlange (oben): Fotos, die noch auf deine Freigabe warten — mit Angabe des Grundes (z. B. „Aufnahmedatum weicht ab"). Für jedes Foto: Freigeben oder Ablehnen.
- Freigegebene Fotos (unten): Alle öffentlich sichtbaren Fotos.
- Der Tab zeigt eine Zahl neben „Fotos", wenn Freigaben ausstehen.
Plausibilitätsprüfung:
Beim Hochladen prüft das System automatisch die Foto-Metadaten:
| Prüfung | Was passiert |
|---|---|
| Aufnahmedatum passt zum Turniertag (±1 Tag) | Foto wird sofort freigegeben |
| Aufnahmedatum weicht ab oder fehlt | Foto wartet auf Admin-Freigabe |
| GPS-Standort zu weit vom Veranstaltungsort (>5 km) | Foto wartet auf Admin-Freigabe |
| Admin lädt hoch | Foto wird immer sofort freigegeben |
Limits:
- Max. 10 Fotos pro Person pro Turnier
- Max. 100 Fotos pro Turnier insgesamt
Fotos hochladen (Spieler / Betreuer / Schiedsrichter):
- Öffne dein Dashboard.
- Klicke auf den Kamera-Button neben dem Turnier.
- Im Upload-Dialog:
- Fotos auswählen (Drag & Drop oder Klick) — mehrere gleichzeitig möglich
- Foto aufnehmen — öffnet direkt die Handy-Kamera (auf Mobilgeräten)
- Optional: Bildunterschrift eingeben (max. 200 Zeichen)
- Klicke auf Hochladen — Bilder werden automatisch komprimiert.
- Ergebnis: grüne Meldung (sofort sichtbar) oder gelbe Meldung (wartet auf Freigabe).
Galerie ansehen:
- Zuschauer: Öffne die öffentliche Turnierseite → Tab Fotos — kein Login nötig.
- Klicke auf ein Foto für die Großansicht (Lightbox) mit Pfeiltasten, Wisch-Gesten und Bildunterschrift.
Hinweis: Fotos werden beim Hochladen automatisch komprimiert und GPS-Daten aus dem gespeicherten Bild entfernt (Datenschutz). Die Metadaten werden nur zur Plausibilitätsprüfung verwendet.
2.20 Dynamisches Doppel
Der Modus Dynamisches Doppel ist ein besonderer Turniermodus, bei dem die Doppelpartner in jeder Runde neu zusammengestellt werden. Am Ende zählt die Einzelwertung — jeder Spieler sammelt individuell Punkte über alle Runden hinweg.
Turnier im Modus „Dynamisches Doppel" erstellen:
- Navigiere zu Turniere → Neues Turnier.
- Wähle als Format Dynamisches Doppel.
- Stelle die Rundenanzahl über den Schieberegler ein (2 bis 15 Runden).
- Fülle die übrigen Felder wie gewohnt aus (Name, Datum, Startzeit, Veranstaltungsort, Tische).
Option „Mit Vorgabe" (TTR-Handicap):
Wenn die Spieler unterschiedlich stark sind, kannst du die Option „Mit Vorgabe" aktivieren. Das System berechnet dann automatisch ein Handicap basierend auf der TTR-Differenz der beiden Doppelpartner gegenüber den Gegnern.
| Feld | Beschreibung |
|---|---|
| Mit Vorgabe | Checkbox — aktiviert das TTR-basierte Handicap-System |
| Vorgabe-Kurve | Interaktiver Editor mit 10 Stufen — per Drag & Drop anpassbar |
Der Vorgabe-Kurven-Editor zeigt 10 Drag-Punkte, die du mit der Maus verschieben kannst. Jeder Punkt entspricht einer TTR-Differenz-Stufe und bestimmt, wie viele Vorgabepunkte das schwächere Team erhält. So kannst du die Kurve exakt an das Spielniveau deines Turniers anpassen.
Auslosung:
- Öffne das Turnier → Tab Auslosung.
- Klicke auf Auslosung starten — das System generiert automatisch für jede Runde wechselnde Doppelpartner.
- Die Tischzuweisung funktioniert wie bei anderen Modi mit der grün/rot-Ampel:
- Grün — Tisch frei, Spiel kann zugewiesen werden
- Rot — Tisch belegt
Tablet-Ansicht:
Am Tablet werden beide Spieler eines Doppelteams im Format angezeigt:
M. Fuchs / S. Holler vs. L. Wagner / K. Braun
Hinweis: Beim Dynamischen Doppel ist keine PIN-Bestätigung durch die Spieler erforderlich (wie beim regulären Doppel).
Ranking (Einzelwertung):
Obwohl als Doppel gespielt wird, erhält jeder Spieler eine individuelle Wertung. Die Sortierung erfolgt nach:
- Siege (absteigend)
- Satzdifferenz (gewonnene minus verlorene Sätze)
- Punktedifferenz (gewonnene minus verlorene Punkte)
- Direktvergleich (bei Gleichstand zwischen zwei Spielern)
- TTR-Wert (als letztes Kriterium)
Spectator-Ansicht:
Die öffentliche Turnierseite zeigt für Dynamisches Doppel:
- Ranking-Tabelle mit der aktuellen Einzelwertung aller Spieler
- Aktuelle Runde mit allen laufenden Doppelpaarungen und Live-Ergebnissen
2.21 Venue-Tischpool
Wenn am selben Veranstaltungsort und am selben Tag mehrere Turniere stattfinden, können sich diese einen gemeinsamen Tischpool teilen. So werden physische Tische effizient zwischen den Turnieren aufgeteilt — ohne Konflikte oder doppelte Belegung.
Automatische Pool-Erkennung:
Beim Erstellen eines neuen Turniers prüft das System automatisch, ob am gewählten Veranstaltungsort und Datum bereits ein anderes Turnier existiert. Wenn ja, erscheint ein blauer Hinweis-Banner:
„Am gleichen Ort und Datum existiert bereits ein Turnier. Sie können einem gemeinsamen Tischpool beitreten."
Pool beitreten:
- Klicke im Hinweis-Banner auf Pool beitreten.
- Lege fest, wie viele Tische dein Turnier maximal gleichzeitig nutzen darf.
- Das System teilt die physischen Tische automatisch zwischen den Turnieren auf.
Stabile QR-Codes:
Jeder physische Tisch im Pool erhält einen QR-Code, der den ganzen Tag gültig bleibt — unabhängig davon, welches Turnier gerade auf dem Tisch läuft. Das Tablet muss nicht neu konfiguriert werden, wenn ein Tisch von einem Turnier zum nächsten wechselt.
Pool-Dashboard:
Auf der Turnier-Detailseite findest du einen zusätzlichen Tab Pool-Dashboard. Dort siehst du:
| Anzeige | Beschreibung |
|---|---|
| Alle Tische im Pool | Übersicht aller physischen Tische mit aktuellem Status |
| Belegung pro Veranstaltung | Welches Turnier, welche Kreisrangliste oder welches Race den Tisch gerade nutzt |
| Veranstaltungstyp-Badge | 🏆 Turnier, 📊 KRL, 🏁 Race — auf einen Blick erkennbar |
| Freie Tische | Tische, die aktuell keinem Spiel zugewiesen sind |
| Tischübergänge | Fließender Wechsel — sobald ein Spiel endet, wird der Tisch für andere Veranstaltungen freigegeben |
Hinweis: Der Tischpool unterstützt alle Veranstaltungstypen — Turniere, Kreisranglisten und Race-Turniere teilen sich denselben Pool und dieselben physischen Tische. Ein Tablet-QR-Code funktioniert für alle drei Typen.
Fließender Tischübergang:
Wenn ein Spiel auf einem Tisch endet, wird dieser automatisch wieder dem Pool zurückgegeben. Andere Turniere können den Tisch sofort für ihre nächsten Spiele nutzen — ohne manuelles Umbuchen.
Schutz vor Doppelzuweisung:
Das System verhindert, dass zwei Turniere denselben Tisch gleichzeitig belegen. Wenn ein Tisch bereits von einem anderen Turnier genutzt wird, ist er für dein Turnier gesperrt (roter Status). So werden versehentliche Überschreibungen ausgeschlossen.
Hinweis: Der Tischpool funktioniert nur, wenn die Turniere denselben Veranstaltungsort und dasselbe Datum haben. Turniere an unterschiedlichen Orten oder Tagen teilen sich keine Tische.
2.22 Tischverwaltung (Live-Übersicht)
Unter /admin/tables sehen Administratoren alle Tische eines Veranstaltungsorts mit Live-Status:
Funktionen:
- Venue-Auswahl: Wähle Ort + Datum — alle Tische des Veranstaltungsorts werden angezeigt
- Live-Polling: Die Ansicht aktualisiert sich automatisch alle 5 Sekunden — ohne manuellen Reload
- Belegungsanzeige: Jede Tischkarte zeigt:
- Status-Badge: Frei (grün), Reserviert (orange), Belegt (blau)
- Turniername + Spielnummer
- Spielernamen mit Satzstand und aktuellen Punkten
- Einzelne Satz-Ergebnisse als kompakte Badges
- Turnier-Link: Klick auf die Begegnung führt direkt zur Turnier-Detailseite
- Tisch-Anzeige: Monitor-Icon öffnet die Zuschauer-Anzeige des Tisches
- Tischzuweisung aufheben: Bei reservierten Tischen kann die Zuweisung direkt entfernt werden
- Live-Board: Button "Live-Board" öffnet die Venue-weite Zuschauer-Anzeige (siehe 2.23)
Hinweis: Tische die in einem gemeinsamen Tischpool (PROJ-40) liegen, werden turnierübergreifend angezeigt — ein Tisch der in Turnier A belegt ist, erscheint auch in Turnier B als belegt.
2.23 Spectator Live-Board (Venue-Anzeige)
Für Zuschauer gibt es eine Grossanzeige unter /display/venue?location=ORTSNAME&date=YYYY-MM-DD, die auf einem TV oder Beamer im Foyer angezeigt werden kann.
Zugang: Über den Button "Live-Board" in der Tischverwaltung oder der Turnier-Detailseite.
Anzeige:
- Alle Tische des Veranstaltungsorts als Grid (responsive, passt sich an die Tischanzahl an)
- Pro Tisch: Spielernamen, Satzstand, Live-Punktestand
- Farbige Rahmen: Blau = Spiel läuft, Orange = Bereit, Grau = Frei
- Kopfzeile: Veranstaltungsort, Datum, Uhrzeit, Anzahl aktiver Spiele
- Automatische Aktualisierung alle 3 Sekunden
Bedienung:
- Doppelklick wechselt in den Vollbildmodus
- Kein Login erforderlich — die Seite ist öffentlich
2.24 Jeder gegen Jeden (Round Robin)
Neben KO und Gruppe+KO gibt es das Format Jeder gegen Jeden: Alle Spieler spielen gegen alle anderen. Es gibt keine KO-Phase — die Endplatzierung ergibt sich direkt aus der Tabelle.
Turnier erstellen:
- Unter "Format" → Jeder gegen Jeden wählen
- Alle anderen Einstellungen (Tische, Satzformat, Restriktionen) wie gewohnt
Auslosung:
Die Info-Karte zeigt die Gesamtzahl der Spiele an (z.B. bei 5 Spielern = 10 Spiele). Klicke auf "Auslosung starten" — die Paarungen werden nach dem Circle-Verfahren erstellt (ausgewogene Reihenfolge).
Tabelle:
Unter dem Spielplan wird eine Live-Tabelle angezeigt mit:
| Spalte | Bedeutung |
|---|---|
| # | Rang |
| Spieler | Name |
| Sp. | Gespielte Spiele |
| S | Siege |
| N | Niederlagen |
| Sätze | Gewonnen:Verloren (Differenz) |
| Punkte | Gewonnen:Verloren |
Sortierung: Siege absteigend → Satzdifferenz → Punktdifferenz.
2.25 Turnier kopieren
Jedes Turnier kann als Vorlage für ein neues Turnier kopiert werden.
- Öffne die Turnier-Detailseite
- Klicke auf das Kopieren-Symbol (zwei übereinanderliegende Blätter) im Header
- Ein neues Turnier mit dem Suffix "(Kopie)" wird erstellt
- Alle Einstellungen werden übernommen: Format, Tischanzahl, Satzformat, Restriktionen
- Du wirst direkt zum neuen Turnier weitergeleitet
Hinweis: Spieler und Auslosungen werden nicht kopiert — nur die Turnier-Konfiguration.
2.26 Statistik-Dashboard
Unter /admin/stats (erreichbar über "Statistiken" in der Admin-Navigation) siehst du eine Übersicht über alle Turniere:
- KPI-Karten: Gesamtanzahl Turniere, Spieler, Spiele und durchschnittliche Spieldauer
- Turnierformate: Balkendiagramm — wie viele Turniere pro Format (KO, Gruppe+KO, Dynamisches Doppel, Jeder gegen Jeden)
- Turnierstatus: Verteilung Entwurf / Aktiv / Beendet
- Spiele pro Monat: Zeitliche Verteilung der gespielten Spiele
- Letzte Turniere: Die 10 zuletzt erstellten Turniere mit Spieleranzahl und Status (klickbar)
2.27 Mandanten-Verwaltung (Multi-Tenancy)
Das System unterstützt Mandanten (auch „Tenants" genannt). Jeder Mandant ist ein eigenständiger Bereich — z. B. ein Verein oder eine Abteilung — mit eigenen Turnieren, Spielern und Einstellungen. Standardmäßig gibt es einen „Default"-Mandanten, der automatisch angelegt wird.
Was bedeutet das?
Wenn mehrere Vereine dasselbe System nutzen, sieht jeder Verein nur seine eigenen Daten. Turniere, Spieler und Tische sind strikt getrennt. Die Verwaltung der Mandanten ist nur für Super-Admins sichtbar.
Super-Admin Rolle
Nur Benutzer mit der Rolle Super-Admin haben Zugriff auf die Mandanten-Verwaltung. Reguläre Admins sehen nur die Daten ihres eigenen Mandanten und haben keinen Zugriff auf andere Bereiche.
Mandanten-Switcher
Super-Admins sehen im Dashboard-Header ein Dropdown-Menü, mit dem sie zwischen Mandanten wechseln können. Nach dem Wechsel werden automatisch alle Daten (Turniere, Spieler, Tische) des ausgewählten Mandanten geladen.
Mandanten verwalten
Die Mandanten-Verwaltung erreichst du über /admin/tenants (bzw. den Menüpunkt Mandanten in der Admin-Navigation).
Übersicht:
Die Liste zeigt alle Mandanten mit folgenden Informationen:
| Spalte | Beschreibung |
|---|---|
| Logo | Vereinslogo (falls hochgeladen) |
| Name | Name des Mandanten (z. B. „TTC Musterstadt") |
| Slug | Kurzbezeichnung für interne Zuordnung |
| Turniere | Anzahl der Turniere dieses Mandanten |
| Spieler | Anzahl der registrierten Spieler |
| Admins | Anzahl der zugewiesenen Administratoren |
Neuen Mandanten anlegen:
- Klicke auf Neuer Mandant.
- Fülle das Formular aus:
- Name (Pflicht) — z. B. „TTC Musterstadt"
- Slug — wird automatisch aus dem Namen generiert (z. B. „ttc-musterstadt")
- Logo — Vereinslogo hochladen (optional)
- Primärfarbe — Akzentfarbe für das Branding (optional)
- Limits — optionale Begrenzungen für Turniere oder Spieler
- Klicke auf Speichern.
Mandant bearbeiten:
Klicke in der Liste auf den gewünschten Mandanten, um alle Felder zu ändern (Name, Logo, Farbe, Limits).
Mandant löschen:
Ein Mandant kann nur gelöscht werden, wenn er keine aktiven Turniere mehr hat. Beende oder lösche zuerst alle laufenden Turniere des Mandanten.
Tenant-Branding
Jeder Mandant kann ein eigenes Logo und eine Primärfarbe hinterlegen:
- Das Logo wird im Admin-Header anstelle des Standard-Logos angezeigt.
- Die Primärfarbe wird als Akzentfarbe im gesamten Admin-Bereich verwendet.
Admins einem Mandanten zuweisen
Super-Admins können über die Nutzerverwaltung (siehe Abschnitt 2.12) einen Administrator einem bestimmten Mandanten zuweisen. So wird sichergestellt, dass jeder Admin nur die Daten seines Vereins sieht und verwaltet.
2.28 Spieler-Ampelstatus & Tischzuweisung
Jeder Spieler hat einen Live-Status, der als farbiger Punkt neben dem Spielernamen angezeigt wird — in Brackets, Gruppenansichten und Spiellisten.
Statusfarben
| Farbe | Bedeutung |
|---|---|
| Grün | Spielbereit — der Spieler hat aktuell kein Spiel und kann aufgerufen werden |
| Rosa | Aufgerufen — dem Spieler wurde ein Tisch zugewiesen, das Spiel hat noch nicht begonnen |
| Rot | Im Spiel — der Spieler spielt gerade aktiv an einem Tisch |
| Gelb | Pause — der Spieler hat gerade ein Spiel beendet und hat 5 Minuten Erholungszeit |
Tipp: Wenn du mit der Maus über einen roten Punkt fährst, wird das aktuelle Spiel mit einem Link zum zugehörigen Turnier angezeigt.
Tischverwaltung mit Warteschlange
Die Tischverwaltung erreichst du unter Tische in der Admin-Navigation.
Venue-Auswahl:
Oben wählst du den Veranstaltungsort. In der Dropdown-Liste erscheinen alle aktiven Veranstaltungen die einen Tischpool haben — Turniere, Kreisranglisten und Race-Turniere. Der Ort+Datum-Eintrag zeigt welche Veranstaltungstypen dort aktiv sind, z.B. „KGST Halle - 1.6.2026 · 📊 KRL".
Wenn Turnier, KRL und Race am selben Ort und Datum laufen, erscheinen sie als ein gemeinsamer Eintrag — alle Matches werden in der Tischansicht kombiniert dargestellt.
Aufbau:
- Links: Alle Tische des aktuellen Venues mit ihrem Status (frei, belegt, welches Spiel aus welcher Veranstaltung)
- Rechts: Die Warteschlange — alle noch nicht zugewiesenen Spiele am selben Venue (Turniere, KRL und Race)
Filter in der Warteschlange:
| Filter | Zeigt |
|---|---|
| Alle | Alle anstehenden Spiele |
| Nur startbereit | Spiele, bei denen beide Spieler grün sind |
| Aufgerufen | Spiele, die einem Tisch zugewiesen wurden |
| Im Spiel | Aktuell laufende Spiele |
| Pausiert | Spiele, bei denen mindestens ein Spieler noch Pause hat |
| Einzel / Doppel | Nach Spieltyp filtern |
Spiel einem Tisch zuweisen:
- Desktop: Ziehe ein spielbereites Spiel per Drag & Drop auf einen freien Tisch.
- Mobilgerät: Tippe auf ein Spiel in der Warteschlange — es öffnet sich eine Auswahl der freien Tische.
Hinweis: Tische die von KRL- oder Race-Spielen belegt sind erscheinen rot — genau wie Turnier-Tische. Alle Veranstaltungstypen teilen denselben Tischpool.
2.29 Daten-Export
Unter Einstellungen findest du den Tab Datenexport. Damit kannst du alle Daten deines Mandanten als ZIP-Datei herunterladen.
So funktioniert es:
- Gehe zu Einstellungen → Tab Datenexport.
- Klicke auf Alle Daten als ZIP exportieren.
- Der Download startet automatisch.
Enthaltene Daten:
| Kategorie | Inhalt |
|---|---|
| Turniere | Alle Turniereinstellungen und Konfigurationen |
| Spieler | Spielerdaten (Name, Verein, TTR, Lizenznummer) |
| Ergebnisse | Alle Spielergebnisse und Platzierungen |
| Satzergebnisse | Detaillierte Satzstände jedes Spiels |
| Doppelpaare | Zuordnung der Doppelpartner |
| Einstellungen | Mandanten-Einstellungen und Konfiguration |
| Fotos | Turnier-Fotogalerie-Bilder |
Wichtig: Der Export enthält keine sensiblen Daten — keine Passwörter, keine PINs, keine Zugangsdaten. Der Export ist konform mit DSGVO Art. 20 (Recht auf Datenübertragbarkeit).
2.30 Spieler importieren (Excel/CSV)
Du kannst Spieler aus einer Datei importieren, anstatt sie einzeln anzulegen.
So funktioniert es:
- Gehe zur Spieler-Seite in der Admin-Navigation.
- Klicke auf Spieler importieren.
- Wähle eine Datei aus:
- CSV — z. B. ein Export aus click-TT
- Excel (.xlsx oder .xls) — z. B. die bereitgestellte Vorlage
Erwartete Spalten:
| Spalte | Pflicht | Hinweis |
|---|---|---|
| Nachname | Ja | |
| Vorname | Ja | |
| Verein | Nein | Vereinsname |
| TTR | Nein | Tischtennis-Rating (Zahl) |
| Lizenznummer | Nein | click-TT Lizenznummer |
| Geburtsjahr | Nein | Vierstellig, z. B. 1995 |
Vorschau vor dem Import:
Nach dem Hochladen siehst du eine Vorschau aller erkannten Spieler:
| Farbe | Bedeutung |
|---|---|
| Grün | Spieler existiert bereits und stimmt überein — wird aktualisiert |
| Gelb | Neuer Spieler — wird neu angelegt |
| Rot | Konflikt — z. B. unterschiedliche Daten bei gleicher Lizenznummer, manuell prüfen |
Erst nach Bestätigung werden die Spieler tatsächlich importiert.
Tipp für Vereine ohne click-TT: Nutze die Excel-Vorlage, die auf der Import-Seite zum Download bereitsteht. Trage die Spielerdaten in die Vorlage ein und lade sie dann hoch.
2.31 Demodaten erzeugen
Wenn du neu einsteigst, kannst du mit einem Klick realistische Testdaten anlegen und das System sofort ausprobieren, ohne alles von Hand zu erfassen.
Was wird erzeugt?
- 25 Demo-Spieler mit realistischen deutschen Namen, zufälligen TTR-Werten (1200–1800) und Vereinen
- 1 Turnier Demo Vereinsmeisterschaft (Gruppe + KO, 4 Gruppen, einige Spiele bereits gespielt)
- 1 Turnier Demo Vereinsmeisterschaft — Doppel (KO, 6 Doppelpaare)
- 8 Tische in der „Demo-Halle"
- 1 Demo-Betreuer-Konto (
demo-betreuer@example.com) - 1 Demo-Schiedsrichter-Konto (
demo-schiedsrichter@example.com)
Alle Demo-PINs lauten 1111, damit du Bestätigung und Schiedsrichter-Funktionen schnell testen kannst.
So erzeugst du die Demodaten:
- Öffne das Admin-Dashboard.
- Suche die Karte Demodaten (lila Stern-Symbol).
- Klicke auf Demodaten generieren und bestätige den Dialog.
Die Demodaten werden in allen Listen mit einem lila Demo-Abzeichen markiert, damit sie klar von deinen echten Daten unterscheidbar sind.
Demodaten wieder löschen:
Sobald Demodaten vorhanden sind, zeigt die Karte den Button Demodaten löschen. Ein Klick entfernt alle Demo-Datensätze (Spieler, Turniere, Tische, Betreuer- und Schiedsrichter-Konten). Deine selbst angelegten Daten bleiben dabei unverändert erhalten.
Hinweis: Die Demo-Spieler können zusätzlich zu deinen echten Spielern existieren. Du kannst also auch in einem aktiven Tenant Demodaten erzeugen, ohne deine produktiven Daten zu gefährden.
2.32 Tarif & Abonnement
TT-Control bietet vier Tarife: Free, Starter (9 €/Monat), Club (29 €/Monat) und Verband (79 €/Monat). Du kannst deinen Tarif jederzeit unter Einstellungen → Abonnement verwalten.
Upgrade durchführen
- Gehe zu Einstellungen → Abonnement.
- Klicke auf Tarif wechseln und wähle den gewünschten Plan.
- Du wirst zu Mollie weitergeleitet — wähle eine Zahlungsmethode.
- Nach erfolgreicher Zahlung wird dein Tarif sofort aktiviert.
SEPA-Überweisung & verzögerte Zahlungsmethoden
Wenn du SEPA-Überweisung oder eine andere verzögerte Zahlungsmethode wählst, wird dein Upgrade nicht sofort aktiviert — die Überweisung dauert in der Regel 1–3 Werktage.
Was du siehst:
- Nach der Weiterleitung zurück zu TT-Control erscheint ein gelbes Info-Banner oben im Dashboard:
„Dein Upgrade auf [Tarif] wird aktiviert, sobald wir den Zahlungseingang feststellen. SEPA-Überweisungen dauern in der Regel 1–3 Werktage."
- Im Tab Abonnement wird angezeigt: „Ausstehend: [Tarif] — Zahlung erwartet seit [Datum]"
- Dein Account bleibt bis zur Bestätigung auf dem bisherigen Tarif (z. B. Free)
Was passiert danach:
- Sobald die Überweisung eingeht, bestätigt Mollie die Zahlung und dein Tarif wird automatisch aktiviert — das Banner verschwindet bei der nächsten Seiten-Ladung.
- Wenn die Zahlung nach 7 Tagen nicht eingegangen ist, wird der Upgrade-Auftrag storniert und dein Account bleibt auf dem alten Tarif. Du erhältst eine E-Mail-Benachrichtigung und kannst den Upgrade jederzeit erneut starten.
Hinweis: Das gelbe Banner ist kein Fehler — es zeigt nur, dass deine Zahlung noch aussteht. Du kannst TT-Control normal weiter nutzen.
Downgrade durchführen
Wenn du auf einen niedrigeren Tarif wechselst und im aktuellen Abrechnungszeitraum mehr Turniere gespielt hast, als der Zieltarif inkludiert, wird eine Nachzahlung fällig (5 € pro Überziehungsturnier, abzüglich bereits bezahlter Abo-Beiträge). Die genaue Berechnung wird dir vor der Bestätigung angezeigt.
Add-ons
| Add-on | Preis | Berechtigt |
|---|---|---|
| +1 Zusatzturnier | 5 € einmalig | Free, Starter |
| Alle Formate freischalten | 5 €/Monat | Free |
Add-ons sind unter Einstellungen → Abonnement buchbar.
2.33 Check-in & QR-Codes am Turniertag
Vor dem Turnierbeginn erhalten Spieler persönliche QR-Codes, mit denen sie sich ihr Portal-Konto anlegen. Der Admin behält über die Check-in-Seite den Überblick wer anwesend ist und wer noch Zugangsprobleme hat.
QR-Codes drucken (vor dem Turniertag)
- Öffne das Turnier → Klicke auf den Tab „Check-in" (direkt neben „Spieler").
- Klicke auf „Alle QR-Codes drucken".
- Ein druckoptimiertes Fenster öffnet sich: 4 QR-Codes pro DIN A4-Seite, sortiert nach Verein.
- Jeder Zettel zeigt: Name, Verein und optional Startnummer.
- Verteile die Zettel vorab an die Betreuer oder lege sie am Turniertag aus.
Einzelnen QR anzeigen: Klicke auf „QR anzeigen" neben einem Spielernamen — ein Modal öffnet sich mit einem großen QR-Code, den Spieler mit dem Smartphone abfotografieren können.
Spieler-Status auf der Check-in-Seite
| Status-Badge | Bedeutung |
|---|---|
| Grau — Nicht registriert | Spieler hat seinen QR-Code noch nicht gescannt |
| Gelb — Ausstehend | Spieler hat sich registriert, wartet auf Admin-Freigabe |
| Grün — Verifiziert | Spieler hat ein aktives Portal-Konto |
Anwesenheit markieren
- Klicke auf den Toggle „Da" / „Nicht da" neben jedem Spieler.
- Die Statistik oben zeigt laufend: „X von Y Spielern anwesend".
- Die Anwesenheit ist turnierspezifisch — sie beeinflusst nicht andere Turniere.
Ausstehende Verifikationen freigeben
Wenn ein Spieler keinen TTR-Wert oder keine Lizenznummer hat, landet seine Registrierung im Status „Ausstehend". Du entscheidest dann, ob du ihn freigibst:
- Klicke auf „Freigeben" neben dem Spielernamen.
- Der Status wechselt sofort zu Grün.
QR-Code neu generieren
Wenn ein Zettel verloren gegangen ist oder ein Spieler versehentlich den QR eines anderen gescannt hat:
- Klicke auf „QR erneuern" neben dem Spielernamen.
- Bestätige den Dialog — der alte QR-Code wird sofort ungültig.
- Zeige dem Spieler den neuen QR im Modal.
2.34 Startnummern & Fast-Lane
Wenn du bei einem Turnier Startnummern vergeben möchtest, kannst du das Feature pro Turnier aktivieren. Damit entsteht ein effizienter Fast-Lane-Workflow am Turniertag.
Was ist der Fast-Lane-Gedanke?
Spieler, die sich online angemeldet haben, müssen am Turniertag nur noch kurz zur Fast Lane — kein QR-Scannen, kein Formular, nur Zettel abholen. Ein Helfer macht einen Klick.
Für den Admin / Veranstalter
- Beim Erstellen eines Turniers: Toggle „Startnummern vergeben" aktivieren.
- Startnummern werden automatisch sequenziell vergeben (1, 2, 3...) sobald Spieler hinzugefügt werden.
- Einzelne Nummern können manuell überschrieben werden (z. B. Ehrennummer für besondere Spieler).
- In der Check-in-Seite erscheint eine zusätzliche Spalte „Startnr. abgeholt" mit einem Toggle.
- Button „Fast Lane" öffnet eine gefilterte Ansicht: nur Spieler deren Startnummer noch nicht abgeholt wurde — für den Helfer an der Ausgabe.
- Statistik: „X von Y Startnummern abgeholt".
Für den Spieler
- Nach der Online-Anmeldung ist die zugewiesene Startnummer im Player-Portal sichtbar.
- Status: Gelb = noch nicht abgeholt / Grün = abgeholt.
- Der Spieler weiß vorab: „Ich bin Nummer 7 — ich muss nur noch den Zettel holen."
Für den Betreuer
- Der gedruckte QR-Bogen (aus 2.33) zeigt die Startnummer prominent über Name und Verein.
- Der Betreuer verteilt Zettel vorab — Spieler wissen schon vor dem Turniertag ihre Nummer.
2.35 Race-Turnierserie
Race-Turniere sind Tagesveranstaltungen im Schweizer System — alle Spieler spielen mehrere Runden, ohne ausscheiden zu können. Das System unterstützt zwei Algorithmen:
| System | Bundesländer | Besonderheit |
|---|---|---|
| TTVSH (Schleswig-Holstein) | SH | Badeni-Setzung R1, Sieggruppen R2–5 |
| MKTT Cup | NDS, BW, Hessen, Rheinland, Thüringen | Hälftenbildung R1, Badeni R2–4, Swiss R5–6 |
Race anlegen
- Navigiere zu Races im Admin-Dashboard.
- Klicke auf Neues Race.
- Fülle die Grunddaten aus:
| Feld | Hinweis |
|---|---|
| Name | Name des Turniers |
| Datum | Turniertag |
| Ort | Veranstaltungsort (optional) |
| Verband / System | TTVSH oder MKTT Cup |
| Max. Teilnehmer | Maximale Spielerzahl (z. B. 16) |
| Meldeschluss | Stichtag für Online-Anmeldungen (optional) |
| Satzformat | Anzahl Gewinnsätze (z. B. Best of 5) |
| TTR-Bereich | Mindest- und Maximal-TTR (optional) |
| Startnummern | Aktivierbar — dann mit Fast-Lane-Workflow |
| Tischzuordnung Pflicht | Wenn aktiviert: kein Match kann ohne zugeordneten Tisch gestartet werden. Empfohlen wenn ein Venue-Tischpool genutzt wird. Standard: aus. |
- Klicke auf Speichern — das Race erscheint mit Status Offen.
Öffentliche Anmeldeseite
Jedes Race hat eine öffentliche Anmeldeseite unter /races/[ID]. Spieler können sich dort ohne Login anmelden:
- Vorname, Nachname, Verein eingeben.
- LivePZ / Q-TTR als Setzwert eintragen.
- Turnierlizenz-Checkbox bestätigen.
- Datenschutz-Checkbox bestätigen.
- Auf Anmelden klicken.
Wenn die Maximalteilnehmerzahl erreicht ist, landen Spieler automatisch auf der Warteliste.
Hinweis: Admins können Spieler auch direkt über das Admin-Interface eintragen — ohne Consent-Checkbox.
Runden spielen
- Wechsle zum Tab Runden im Race-Detail.
- Klicke auf Runde generieren — das System berechnet automatisch die Paarungen nach dem gewählten Algorithmus.
- Die Paarungen erscheinen als Tabelle. Tragt die Ergebnisse ein (Sätze Heim : Gast).
- Nach Eintragung aller Ergebnisse: Runde abschließen.
- Das System berechnet die Rangliste und bereitet die nächste Runde vor.
Freilos: Bei ungerader Spielerzahl vergeben beide Systeme automatisch ein Freilos an den am niedrigsten platzierten Spieler ohne bisheriges Freilos.
Rangliste (Standings)
Der Tab Standings zeigt nach jeder Runde die aktuelle Rangliste:
| Spalte | Bedeutung |
|---|---|
| Siege | Gewonnene Matches |
| Buchholz | Summe der Siege aller Gegner |
| Feinbuchholz (MKTT) | Summe des Buchholz aller Gegner |
| Satzdiff. | Differenz gewonnener/verlorener Sätze |
Die Rangliste wird automatisch nach jedem Rundenabschluss neu berechnet.
Öffentliche Standings-Seite
Unter /races/[ID]/standings können Zuschauer die aktuelle Rangliste einsehen — ohne Login.
Spieler importieren
Statt Spieler einzeln einzutragen, kannst du sie aus einer Datei importieren. Öffne dazu im Race-Detail den Tab Teilnehmer und klicke auf Spieler importieren. Es öffnet sich ein Dialog mit drei Tabs:
CSV-Tab (MKTT):
- Exportiere die Spielerliste aus deiner Vereinsverwaltung als
spieler_import.csv. - Lade die Datei hoch — eine Vorschau zeigt alle erkannten Spieler.
- Klicke auf X Spieler importieren.
Das Format: Nachname;Vorname;Verein;Disziplin;Geburtsjahr;TTR;Geschlecht (Semikolon-getrennt).
XML-Tab (click-TT / MKTT):
- Exportiere die Teilnehmerliste aus click-TT als TournamentPortal-XML.
- Lade die XML-Datei hoch.
- Wenn die Datei mehrere Konkurrenzen enthält, wähle die gewünschte aus.
- Prüfe die Vorschau und klicke auf X Spieler importieren.
TTLive-Tab (TTVSH):
- Gib den Vereinsnamen ein — das System sucht in der TTVSH-Vereinsdatenbank.
- Wähle deinen Verein aus der Trefferliste.
- Die aktuelle Vereinsspielerliste wird direkt von TTLive abgerufen.
- Klicke auf X Spieler importieren.
Datenschutz-Hinweis: Die TTLive-Daten werden live abgerufen und nicht dauerhaft gespeichert — nur der Setzwert (LivePZ) fließt in den Spieler-Datensatz ein.
Ergebnisse exportieren
Nach Abschluss des Races kannst du die Ergebnisse exportieren. Öffne den Tab Export:
| Format | Verwendung |
|---|---|
| TournamentPortal-XML | Upload an click-TT (MKTT) für TTR-Aktualisierung |
| .ttlive | Import in TTLive (TTVSH) für LivePZ-Aktualisierung |
Tisch-Zuweisung für Race-Matches
Wenn du einen gemeinsamen Venue-Tischpool nutzt, kannst du Race-Matches direkt einem Tisch zuweisen:
- Wechsle im Race-Detail zum Tab Runden.
- Klicke bei einem Match auf das Tisch-Dropdown — es erscheint eine Liste freier Tische.
- Wähle einen Tisch aus (grün = frei, rot = bereits belegt).
- Das Match ist jetzt diesem Tisch zugeordnet. Tablet-Nutzer können über die Tisch-URL direkt zu diesem Match navigieren.
Hinweis: Ein Tisch kann nur von einem Match gleichzeitig belegt werden — egal ob Turnier, KRL oder Race. Bereits belegte Tische erscheinen rot und können nicht ausgewählt werden.
Race löschen
Du kannst ein Race endgültig aus dem System entfernen:
- Navigiere zu Races im Admin-Dashboard.
- Klicke auf das Papierkorb-Symbol (oben rechts auf der Race-Karte).
- Ein Bestätigungsdialog erscheint — lese die Warnung und klicke auf Endgültig löschen.
Warnung: Das Löschen entfernt das Race zusammen mit allen Runden, Matches und Anmeldungen unwiderruflich. Diese Aktion kann nicht rückgängig gemacht werden.
Hinweis: Ist das Race Teil einer Rennen-Serie, werden die zugehörigen Serienpunkte ebenfalls entfernt.
2.36 Kreisrangliste
Die Kreisrangliste ist eine regelmäßige Verbands-Veranstaltung — kein Einzelturnier, sondern eine Serie von Turniertagen. TT-Control unterstützt zwei Typen:
| Typ | Altersklasse | TTR-relevant | Besonderheit |
|---|---|---|---|
| D/H (Damen & Herren) | Erwachsene | Ja | 1 Qualifikation + 3 Kreiswertungsranglisten (KWR), Auf-/Abstieg nach jeder Runde |
| Senioren (KRTL) | ab 40 Jahre | Nein | 2–3 Turniere, Gruppeneinteilung nach LivePZ-Stichtag |
Kreisrangliste anlegen
- Navigiere zu Kreisranglisten im Admin-Dashboard (
/admin/kreisranglisten). - Klicke auf Neue Kreisrangliste.
- Fülle das Formular aus:
| Feld | Hinweis |
|---|---|
| Name | Bezeichnung der Rangliste, z. B. „Kreisrangliste D/H 2026/27" |
| Datum | Datum des ersten Turniertags |
| Typ | Damen & Herren oder Senioren (KRTL) |
| Satzformat | Bo5 (3 Gewinnsätze) oder Bo7 (4 Gewinnsätze) |
| LivePZ-Stichtag | Nur bei Senioren: Datum für die LivePZ-Einteilung |
| Wettspielordnung | Wird automatisch aus dem Typ vorbelegt — kann angepasst werden |
| Tischzuordnung Pflicht | Wenn aktiviert: kein Match kann gestartet werden ohne zugeordneten Tisch. Empfohlen wenn ein Venue-Tischpool genutzt wird. Standard: aus. |
- Klicke auf Speichern — die Rangliste erscheint mit Status Vorbereitung.
Teilnehmer importieren
Per CSV-Datei:
- Öffne die Kreisrangliste und wechsle zum Tab Teilnehmer.
- Klicke auf Spieler importieren → Tab CSV.
- Lade eine CSV-Datei hoch (Format: Nachname; Vorname; Verein; TTR-Wert).
- Klicke auf Vorschau — eine Tabelle zeigt die erkannten Spieler.
- Klicke auf Importieren um alle Spieler zu übernehmen.
Manuell:
- Klicke auf Spieler hinzufügen.
- Fülle Nachname, Vorname, Verein und TTR-Wert ein.
- Klicke auf Speichern — der Spieler erscheint sofort in der Liste.
Check-in am Turniertag
- Öffne die Kreisrangliste und wechsle zum Tab Check-in.
- Einzeln: Klicke für jeden anwesenden Spieler auf Anwesend — der Tab bleibt geöffnet.
- Alle auf einmal (Bulk): Aktiviere die Checkboxen links neben den Spielernamen, wähle alle gewünschten Spieler aus und klicke auf X Spieler einchecken in der Aktionsleiste unten.
- Der Live-Zähler oben zeigt die aktuelle Anwesenheitsquote.
Hinweis: Unentschuldigte Fehlende werden beim Auf-/Abstieg automatisch als erste Absteiger gewertet.
Gruppeneinteilung
- Wechsle zum Tab Gruppen.
- Klicke auf Gruppen generieren — das System teilt anwesende Spieler nach TTR (D/H) bzw. LivePZ (Senioren) in Gruppen ein.
- Du kannst Spieler per Drag & Drop zwischen Gruppen verschieben um die automatische Einteilung anzupassen.
- Klicke auf Gruppen freigeben — ab jetzt sind die Gruppen festgelegt und der Spielbetrieb kann starten.
Spielbetrieb — Ergebnisse eintragen
Wechsle zum Tab Spielbetrieb.
Klicke bei einem Spiel auf Ergebnis eintragen.
Wähle die Eingabemethode:
Kurzeingabe (Standard): Gib die gesamte Spielfolge in einem Feld ein — z. B.
+7 -9 +5 +11für 3:1. Das+steht für einen Gewinn-Satz,-für einen Verlust-Satz, die Zahl ist die Gegner-Bälle. Eine Live-Vorschau zeigt den Spielstand während der Eingabe.Satz für Satz: Wechsle auf den zweiten Tab um jeden Satz einzeln mit numerischen Feldern einzutragen. Werte aus der Kurzeingabe werden automatisch übernommen.
Klicke auf Speichern — die Tabelle aktualisiert sich sofort.
Die Tabelle zeigt die Rangfolge nach dem jeweils geltenden System:
- D/H: Siege → Satzdifferenz → Balldifferenz → Direktvergleich
- Senioren: Plus-Punkte → Siege/Niederlagen → Satzdifferenz → Balldifferenz → Direktvergleich
Druckbericht
Am Ende des Turniertags:
- Wechsle zum Tab Bericht.
- Klicke auf Bericht drucken — der Browser öffnet eine druckoptimierte Ansicht mit Kreuztabellen, Platzierungen und Auf-/Abstieg.
Ergebnisexport
Wechsle zum Tab Export um Ergebnisse zu exportieren:
| Format | Verwendung |
|---|---|
| TournamentPortal-XML | Upload an liga.nu / TournamentPortal des Verbands |
| .ttlive | Import in die TTLive-App für TTR-/LivePZ-Aktualisierung |
| WYSIWYG-CSV | Eigene Tabelle — Spalten auswählen, Reihenfolge per Drag & Drop, Trennzeichen wählen |
Für den CSV-Konfigurator: Wähle die gewünschten Spalten, ziehe sie in die richtige Reihenfolge und klicke auf CSV herunterladen. Konfigurationen können unter einem Namen gespeichert und wiederverwendet werden.
Zuschauer-Ansicht
- Im Spielbetrieb-Tab: Klicke auf Zuschauer-Ansicht — ein neues Browserfenster öffnet sich.
- Die Seite ist öffentlich und erfordert keinen Login — du kannst den Link oder einen QR-Code für Zuschauer bereitstellen.
- Die Ansicht aktualisiert sich alle 15 Sekunden automatisch.
Spieler-PIN-Bestätigung
Beim Anlegen einer Kreisrangliste kannst du die Spieler-PIN-Bestätigung aktivieren. Wenn eingeschaltet, müssen Spieler nach dem Spiel ihr Ergebnis mit ihrem PIN am Tablet bestätigen.
Hinweis: Die Kreisranglisten-Funktion steht ab dem Club-Tarif zur Verfügung.
Rote Karte rückgängig machen
Wenn im Spielbetrieb-Tab eine rote Karte vergeben wird, erscheint ein gelbes Warn-Banner mit einem 2-Minuten-Countdown. Innerhalb dieser Frist kannst du auf Rückgängig klicken um die Streichung aufzuheben — das Match wird wieder auf "Offen" gesetzt. Nach Ablauf der Frist ist die Streichung fixiert.
Ergebnis-Eingabe am Tablet (Tisch-Betrieb)
Jedes Spiel kann direkt am Tisch auf einem Tablet erfasst werden — ohne Login:
Klicke im Spielbetrieb-Tab bei einem Spiel auf das 📱-Symbol — die Tablet-Seite öffnet sich in einem neuen Tab.
Gib auf dem Tablet die Satzergebnisse Satz für Satz ein.
Kurzschreibweise:
+7→ 11:7,-6→ 6:11,+14→ 16:14 (Deuce). Eingabe im ersten Feld genügt.Klicke auf Ergebnis speichern — das Match wird direkt gespeichert und die Spielbetrieb-Ansicht aktualisiert sich.
Die Tablet-Seite erfordert keine Anmeldung und funktioniert auf jedem Smartphone oder Tablet mit Browser.
Tisch-Zuweisung für KRL-Matches
Wenn du einen gemeinsamen Venue-Tischpool nutzt, kannst du jedem KRL-Match einen konkreten Tisch zuweisen:
- Im Spielbetrieb-Tab, klicke bei einem Match auf das Tisch-Symbol.
- Wähle einen freien Tisch aus dem Pool aus.
- Das Match ist jetzt diesem Tisch zugeordnet — der 📱-Link führt Tablet-Nutzer direkt zu diesem Match.
TTR-Projektion in KRL-Spielen
Für D/H-Ranglisten (nicht Senioren) zeigt die Spielansicht eine ΔTTR-Vorschau bevor das Ergebnis eingetragen ist.
- Fahre mit der Maus über das ΔTTR-Symbol neben einem Match → ein Tooltip zeigt die erwartete TTR-Veränderung für beide Spieler, abhängig davon wer gewinnt.
- Der Wert basiert auf der aktuellen TTR-Differenz der Spieler und dem DTTB-Berechnungsverfahren.
- In der Tagesbilanz (sichtbar für eingeloggte Spieler in ihrer Spieler-Ansicht) erscheinen alle KRL-Spiele des Tages mit dem kumulierten ΔTTR.
Hinweis: Die Projektion ist eine Vorschau — der tatsächliche TTR-Wert wird erst nach offizieller Meldung an click-TT berechnet. Senioren-Ranglisten zeigen keine TTR-Projektion, da Senioren-KRLs nicht TTR-relevant sind.
Tisches-Tab in der KRL-Detailseite
Der Tab „Tische" erscheint in der KRL-Detailseite sobald die Kreisrangliste einen Ort und ein Datum hat.
Wenn noch kein Tischpool existiert:
Der Tab zeigt ein einfaches Formular:
- Trage die gewünschte Anzahl Tische ein.
- Klicke auf Pool anlegen.
- Der Pool wird automatisch für diesen Ort und dieses Datum erstellt — das Pool-Dashboard erscheint sofort.
Hinweis: Wenn "Tischzuordnung Pflicht" aktiv ist und noch kein Pool angelegt wurde, erscheint ein oranger Hinweis im Tab.
Wenn ein Tischpool vorhanden ist:
Der Tab zeigt das vollständige Pool-Dashboard:
- Alle Tische des Pools mit ihrem aktuellen Status (frei / belegt / laufend)
- Laufende KRL-Matches werden orange hervorgehoben
- Belegte Tische erscheinen rot, freie Tische grün
Ein vorhandener Pool wird automatisch erkannt wenn Ort und Datum übereinstimmen — keine manuelle Verknüpfung nötig.
Tischbelegung im Spielbetrieb-Tab
Die Tischbelegung-Sektion im Spielbetrieb-Tab zeigt — wenn ein Pool vorhanden ist — den echten Status der Pool-Tische:
- Grün: Tisch frei
- Rot: Tisch belegt (Match zugewiesen)
- Orange: Match läuft gerade
Jeder Tisch ist klickbar und öffnet die Tablet-Ansicht für diesen Tisch direkt in einem neuen Tab.
Kreisrangliste löschen
Du kannst eine Kreisrangliste endgültig aus dem System entfernen:
- Navigiere zu Kreisranglisten im Admin-Dashboard.
- Klicke auf das Papierkorb-Symbol (oben rechts auf der Ranglisten-Karte).
- Ein Bestätigungsdialog erscheint — lese die Warnung und klicke auf Endgültig löschen.
Warnung: Das Löschen entfernt die Rangliste zusammen mit allen Matches, Gruppen und Teilnehmern unwiderruflich. Diese Aktion kann nicht rückgängig gemacht werden.
2.37 Race-Seriewertung
Race-Turniere einer Saison können zu einer Turnierserie zusammengefasst werden. Die Serie vergibt nach jedem Race Punkte, führt eine Saisonrangliste und qualifiziert die besten Spieler für ein Finale.
Serie anlegen
- Navigiere zu Race-Serien im Admin-Dashboard (
/admin/races/series). - Klicke auf Neue Serie erstellen.
- Fülle das Formular aus:
| Feld | Hinweis |
|---|---|
| Name | Bezeichnung der Serie, z. B. „TTVSH Race-Serie 2026/27" |
| Saison | Jahr der Saison (z. B. 2026) |
| Verband / System | TTVSH oder MKTT Cup |
| Qualifikationsschwelle | Wie viele Spieler qualifizieren sich fürs Finale (Standard: 16) |
| Teilnahme-Bonus | Zusatzpunkte für reine Teilnahme (Standard: 1) |
- Klicke auf Erstellen.
Race zur Serie hinzufügen
- Öffne die Serie und wechsle zum Tab Turniere.
- Wähle ein Race aus der Dropdown-Liste aus.
- Optional: Aktiviere den Schalter Ist Finalrace — das Race zählt dann mit doppelten Punkten (TTVSH-Regel).
- Klicke auf Hinzufügen.
Punkteschema anpassen
Unter dem Tab Übersicht findest du das Punkteschema. Du kannst für jeden Platz eigene Punkte festlegen — zum Beispiel:
| Platz | Standard-Punkte |
|---|---|
| 1. | 13 |
| 2. | 10 |
| 3. | 8 |
| ... | ... |
Klicke auf Speichern um das Schema zu übernehmen.
Punkte berechnen
Nach jedem abgeschlossenen Race:
- Öffne die Serie und wechsle zum Tab Saisonrangliste.
- Klicke auf Neu berechnen — das System liest die Platzierungen aus allen zugeordneten Races und berechnet die Serienpunkte.
- Die Rangliste aktualisiert sich sofort.
Saisonrangliste (öffentlich)
Die Saisonrangliste ist öffentlich einsehbar — ohne Login — unter /races/series/[ID]/standings. Spieler mit Rang ≤ Qualifikationsschwelle erhalten einen grünen Qualifiziert-Badge.
Du kannst die Rangliste auch als CSV herunterladen: Klicke auf den CSV-Button oben rechts in der Rangliste.
Historien-Import
Falls ein vergangenes Race noch nicht in TT-Control erfasst war, kannst du die Ergebnisse nachträglich einrechnen:
- Im Tab Saisonrangliste: Scrolle zum Bereich Historien-Import.
- Gib ein Turnier-Label ein (z. B. „KWR1-2025") damit der Import später identifizierbar ist.
- Wähle eine Ergebnisdatei:
- .ttlive — TTVSH-Format, Platzierungen werden aus Sieg/Niederlage-Zählung rekonstruiert
- TournamentPortal-XML — MKTT-Format, Platzierungen direkt aus der XML
- Prüfe die Vorschau der berechneten Punkte.
- Klicke auf X Spieler importieren — die historischen Einträge fließen in die Saisonrangliste ein.
Hinweis: Historisch importierte Einträge werden getrennt von Live-Turnierdaten markiert und können jederzeit unterschieden werden.
2.38 Öffentliche Vereinsseite & Online-Voranmeldung
Jeder Verein hat eine eigene öffentliche Seite unter tt-control.de/verein/[vereins-url]. Diese Seite ist ohne Login zugänglich und zeigt alle Turniere, die für die Öffentlichkeit freigegeben wurden.
Vereins-URL einstellen
- Navigiere zu Einstellungen → Tab Vereinsseite.
- Trage unter Vereins-URL eine kurze, eindeutige Adresse ein (z. B.
tus-esingen). - Klicke auf Speichern. Deine Vereinsseite ist danach unter
tt-control.de/verein/tus-esingenerreichbar.
Hinweis: Die URL darf nur Kleinbuchstaben, Ziffern und Bindestriche enthalten. Sie kann später geändert werden — alte Links funktionieren danach nicht mehr.
Turnier auf der Vereinsseite anzeigen
Beim Anlegen eines Turniers (oder nachträglich unter Turnier → Einstellungen) kannst du das Turnier öffentlich sichtbar machen:
- Aktiviere Auf Vereinsseite anzeigen → das Turnier erscheint sofort auf der öffentlichen Seite.
- Stelle bei Bedarf einen Meldeschluss ein — nach diesem Datum können sich Spieler nicht mehr anmelden.
- Aktiviere Anmeldungen automatisch bestätigen wenn du die Anmeldungen ohne manuelle Prüfung bestätigen möchtest.
Online-Voranmeldung für Spieler
Wenn ein Turnier auf der Vereinsseite sichtbar ist und der Meldeschluss noch nicht abgelaufen ist, erscheint auf der Turnierseite eine Jetzt anmelden-Schaltfläche.
Spieler füllen das Anmeldeformular aus:
| Feld | Beschreibung |
|---|---|
| Vorname / Nachname | Pflichtfelder |
| Verein | Name des Vereins |
| Geburtsjahr | Pflichtfeld |
| TTR-Wert | Optional (oder Pflicht wenn Turnier TTR-relevant ist) |
| Lizenznummer | Optional (Pflicht wenn Turnier TTR-relevant ist) |
| DSGVO-Zustimmung | Pflichtfeld — Zustimmung zur Datenschutzerklärung |
Nach dem Absenden:
- Bei automatischer Bestätigung: Spieler erhält sofort eine Bestätigungs-E-Mail mit QR-Code für den Check-in am Turniertag.
- Bei manueller Prüfung: Spieler erhält eine E-Mail mit dem Hinweis, dass seine Anmeldung eingegangen ist und geprüft wird.
2.39 Online-Anmeldungen verwalten
Wenn Spieler sich über die öffentliche Vereinsseite für ein Turnier angemeldet haben, findest du ihre Anmeldungen unter Turniere → gewünschtes Turnier → Tab Anmeldungen.
Anmeldung bestätigen
- Klicke auf Bestätigen neben der Anmeldung.
- Der Spieler erhält automatisch eine Bestätigungs-E-Mail mit QR-Code.
- Der Spieler wird in die Spielerliste des Turniers eingetragen und kann in die Auslosung aufgenommen werden.
Anmeldung ablehnen
- Klicke auf Ablehnen neben der Anmeldung.
- Es öffnet sich ein Dialog — gib optional eine Begründung ein (wird dem Spieler per E-Mail mitgeteilt).
- Klicke auf Bestätigen. Der Spieler wird aus der Bewerberliste entfernt.
Statusübersicht
| Status | Bedeutung |
|---|---|
| Ausstehend | Anmeldung eingegangen, noch nicht bearbeitet |
| Bestätigt | Anmeldung angenommen, Spieler in Turnierliste eingetragen |
| Abgelehnt | Anmeldung abgelehnt, Spieler informiert |
Hinweis: Anmeldungen die direkt vom Admin über die Spielerverwaltung eingetragen werden, erscheinen nicht im Anmeldungen-Tab — nur Online-Anmeldungen über die Vereinsseite.
3. Spieler-Anleitung
3.1 Registrierung
Weg A — QR-Code scannen (empfohlen am Turniertag)
Wenn dein Verein QR-Code-Zettel ausdruckt oder der Admin deinen QR am Bildschirm zeigt:
- Scanne den QR-Code mit deinem Smartphone.
- Die Seite zeigt: „Du registrierst dich als: [Dein Name] ([Verein])" — prüfe, dass dein Name stimmt.
- Fülle das Formular aus:
| Feld | Hinweis |
|---|---|
| Deine persönliche E-Mail-Adresse | |
| Passwort | Mindestens 8 Zeichen |
| Geburtsjahr | Zur Sicherheitsprüfung — muss mit deinem hinterlegten Jahrgang übereinstimmen |
| Lizenznummer (optional) | Falls vorhanden, wirst du sofort auto-verifiziert |
- Klicke auf Registrieren.
- Bei korrektem Geburtsjahr + Lizenznummer: Du bist sofort aktiv. Bei korrektem Geburtsjahr ohne Lizenznummer: Konto ist angelegt, wartet auf Admin-Freigabe.
Wichtig: Dein Geburtsjahr muss mit dem im System hinterlegten Jahrgang übereinstimmen. Stimmt es nicht, wird kein Konto angelegt — wende dich an den Admin.
Weg B — Manuell registrieren (ohne QR-Code)
Wenn du noch kein Konto hast und keinen QR-Code erhalten hast:
- Öffne
/player/register. - Fülle das Formular aus:
| Feld | Hinweis |
|---|---|
| Vorname / Nachname | Wie auf der Meldeliste angegeben |
| Verein | Optional |
| Für Anmeldung und Passwort-Wiederherstellung | |
| Passwort | Mindestens 8 Zeichen |
| PIN (4-stellig) | Für die Spielbestätigung — gut merken! |
- Klicke auf Registrieren.
- Du erhältst eine Bestätigungs-E-Mail — klicke auf den Link darin.
Hinweis: Ohne QR-Code muss der Admin dein Konto manuell mit deinem Spieler-Datensatz verknüpfen. Informiere den Turnierleiter über deine E-Mail-Adresse.
3.2 Anmeldung & Passwort vergessen
Anmeldung:
- Öffne
/player/login. - Gib deine E-Mail-Adresse und dein Passwort ein.
- Klicke auf Anmelden — du wirst zum Dashboard weitergeleitet.
Passwort vergessen:
- Klicke auf der Login-Seite auf Passwort vergessen.
- Gib deine E-Mail-Adresse ein.
- Du erhältst eine E-Mail mit einem Reset-Link (gültig für 1 Stunde).
- Klicke auf den Link und gib ein neues Passwort ein (mindestens 8 Zeichen, zweimal bestätigen).
3.3 Mein Dashboard
Das Dashboard unter /player/dashboard ist deine zentrale Anlaufstelle während des Turniers.
Was du siehst:
- Meine Partien: Alle deine Spiele im aktuellen Turnier, sortiert nach Status
- Aufgerufen-Meldung: Wenn dein Spiel aufgerufen wurde, erscheint ein gelber Banner: „Dein Spiel wurde aufgerufen! → Tisch X". Bei Überschreitung von 10 Minuten wird der Banner rot.
- Gegnerstatus: Siehst du, ob dein nächster Gegner gerade spielt und wie sein aktuelles Ergebnis ist.
- W/L-Bilanz: Siege und Niederlagen deiner Gegner im laufenden Turnier.
- Turnierbeschränkungen: Falls das Turnier TTR- oder Jahrgangs-Einschränkungen hat, werden diese als Badges neben dem Turniernamen angezeigt (z. B. „TTR: 1100–1300", „Jg.: 2005–2010").
Tabs:
| Tab | Inhalt |
|---|---|
| Partien | Deine eigenen Spiele mit Status, Tisch und Gegner |
| Bracket | Gesamter Turnierplan — dein Name ist hervorgehoben |
| Gegner | Detaillierte Live-Übersicht aller deiner Gegner |
Das Dashboard aktualisiert sich automatisch alle 10 Sekunden.
3.4 Spielergebnis bestätigen (PIN)
Nach einer Partie erscheint im Dashboard eine Bestätigungskarte mit dem Ergebnis.
Bestätigung im Portal:
- Die Karte zeigt: Ergebnis, Gegner, Rundenbezeichnung und dein Ergebnis (Sieg/Niederlage).
- Klicke auf Ergebnis bestätigen.
- Gib deine 4-stellige PIN über das Nummernfeld ein.
- Klicke auf Bestätigen (oder warte, bis das 4. Zeichen eingegeben ist).
- Bei korrekter PIN erscheint: „Warte auf Bestätigung des Gegners".
- Sobald auch der Gegner bestätigt hat, wechselt der Status auf „Bestätigt".
Automatische Bestätigung:
Wenn du innerhalb von 5 Minuten nach Spielende nicht bestätigst und keinen Einspruch einreichst, wird das Ergebnis automatisch auf deinen Namen bestätigt. Das System zeigt dir dann: „Automatisch bestätigt (kein Einspruch innerhalb von 5 Minuten)".
PIN-Fehler:
- Nach 3 Fehlversuchen wird die Eingabe gesperrt.
- Du musst dann den Turnierleiter kontaktieren, der deine PIN zurücksetzen kann.
Bestätigung am Tablet:
Wenn du kein Portal-Konto hast oder bevorzugst direkt am Tisch zu bestätigen:
- Nach Spielende am Tablet erscheint automatisch das Bestätigungsfeld.
- Spieler 1 gibt seine PIN ein → Spieler 2 gibt seine PIN ein.
- Nach beiden Bestätigungen erscheint „Ergebnis bestätigt".
3.5 Einspruch erheben
Wenn das eingetragene Ergebnis nicht stimmt:
- Klicke auf der Bestätigungskarte auf Einspruch erheben.
- Ein Dialog öffnet sich — du kannst optional einen Kommentar eingeben (max. 500 Zeichen), z. B. „Ergebnis war 3:1, nicht 3:2".
- Klicke auf Einspruch absenden.
Was danach passiert:
- Das Spiel erhält den Status „Einspruch".
- Der Turnierleiter wird benachrichtigt und bearbeitet den Einspruch im Admin-Dashboard.
- Du siehst in deinem Dashboard: „Einspruch eingereicht. Der Turnierleiter wurde benachrichtigt."
- Nach der Entscheidung des Turnierleiters wird das Ergebnis entsprechend angepasst.
3.6 Profil & PIN verwalten
Unter /player/settings kannst du dein Konto verwalten:
Profil bearbeiten:
- Vorname, Nachname und Verein können geändert werden.
- E-Mail-Adresse ist nicht editierbar.
TTR-Wert & weitere Daten (nur Anzeige):
Im Profil werden zusätzlich folgende Felder angezeigt, die nur vom Admin gepflegt werden können:
| Feld | Beschreibung |
|---|---|
| TTR-Wert | Deine aktuelle Ranglistenwertung mit farbiger Level-Einordnung (Anfänger / Vereinsspieler / Leistungsspieler / Spitzenspieler) |
| Jahrgang | Dein Geburtsjahr |
| Lizenznummer | Deine Verbands-Lizenznummer |
| Verband | Dein Tischtennisverband |
Hinweis: Diese Felder sind im Spieler-Portal nicht editierbar. Wende dich an den Turnierleiter, wenn ein Wert korrigiert werden muss.
Der TTR-Wert wird zusätzlich als Badge neben deinem Spielernamen im Dashboard angezeigt, sodass du und andere Spieler die Spielstärke auf einen Blick sehen können.
Passwort ändern:
- Gib dein aktuelles Passwort ein.
- Gib das neue Passwort ein (mindestens 8 Zeichen).
- Bestätige das neue Passwort.
- Klicke auf Passwort ändern.
PIN ändern:
- Gib zur Sicherheit dein Passwort ein (nicht die alte PIN).
- Gib die neue 4-stellige PIN ein.
- Bestätige die neue PIN.
- Klicke auf PIN ändern.
Hinweis: Die neue PIN gilt sofort für alle zukünftigen Spielbestätigungen.
3.7 Betreuer verknüpfen
Die Betreuer-Suche findest du direkt auf deinem Dashboard (/player/dashboard), unterhalb der Turnier-Tabs.
Per Name suchen (Standard):
- Gib mindestens 2 Buchstaben des Vor- oder Nachnamens ein.
- Klicke auf Suchen oder drücke Enter.
- Alle passenden Betreuer werden angezeigt — klicke auf Anfrage senden.
Per Coach-ID suchen:
- Wechsle auf den Tab Per Coach-ID.
- Gib die 6-stellige Betreuer-ID ein (bekommst du vom Betreuer) und klicke auf Anfrage senden.
Vereinsbetreuer (gleicher Verein) werden automatisch aufgelistet — klicke auf Verknüpfen, kein Code nötig.
Der Betreuer muss die Anfrage in seinem Dashboard bestätigen. Status zeigt: „Anfrage ausstehend" → „Aktiver Betreuer: [Name]".
Eine bestehende Verknüpfung kann jederzeit auf dem Dashboard aufgehoben werden.
4. Betreuer-Anleitung
4.1 Registrierung als Betreuer
- Öffne
/player/register. - Aktiviere die Checkbox „Ich bin Betreuer, kein aktiver Turnierspieler".
- Fülle das Formular aus (Vorname, Nachname, Verein, E-Mail, Passwort).
- Klicke auf Registrieren und bestätige deine E-Mail-Adresse.
Nach der Registrierung erhältst du eine eindeutige 6-stellige Betreuer-ID (z. B. A3X7KP), die du an deine Spieler weitergeben kannst.
Als Betreuer erscheinst du nicht in Turnier-Teilnehmerlisten. Du hast keinen Spieler-Datensatz und kannst daher nicht in Turnieren angemeldet werden.
4.2 Betreuer-Dashboard
Das Dashboard unter /betreuer/dashboard zeigt dir eine Echtzeit-Übersicht aller betreuten Spieler.
Was du siehst:
- Spieler-Liste: Alle dir zugewiesenen Spieler mit ihrer nächsten Partie (Gegner, Tisch, Runde)
- Live-Spielstand: Für laufende Spiele wird der aktuelle Punktestand aus Spieler-Perspektive angezeigt (orange, gut erkennbar), z. B. „7 : 5". Darunter erscheinen die Satzergebnisse der bisherigen Sätze, z. B. „11:8 · 9:11 · 11:7".
- Tischnummer: Die Tischnummer des laufenden Spiels wird direkt in der Spieler-Karte angezeigt.
- Aufgerufen-Alarm: Wenn ein Spieler aufgerufen wird und noch nicht spielt, erscheint ein Hinweis: „⚠ [Spielername] wurde aufgerufen → Tisch X". Du kannst den Alarm manuell schließen oder er erlischt, wenn das Spiel beginnt.
- Ausstehende Anfragen: Spieler, die dich als Betreuer angefragt haben, erscheinen im Bereich Anfragen.
Das Dashboard aktualisiert sich automatisch alle 10 Sekunden.
4.3 Spieler-Anfragen annehmen
- Im Tab Anfragen erscheinen alle offenen Anfragen mit Name und Verein des Spielers.
- Klicke auf Annehmen, um den Spieler deiner Betreuungsliste hinzuzufügen.
- Klicke auf Ablehnen, um die Anfrage abzuweisen.
- Mit dem Sperren-Symbol kannst du einen Spieler für zukünftige Anfragen sperren.
4.4 Spieler betreuen & Bracket verfolgen
Bracket-Ansicht:
- Klicke auf den Tab Bracket im Betreuer-Dashboard.
- Das vollständige Turnier-Bracket wird angezeigt.
- Deine betreuten Spieler sind orange hervorgehoben (oranger Ring und Schatten am Spieler-Feld).
Bracket-Popup:
- Klicke auf ein beliebiges Spiel im Bracket — ein Overlay öffnet sich mit:
- Spielernamen und aktuelles Spielergebnis
- Satzergebnisse der bereits gespielten Sätze
- Status-Badge (z. B. „Läuft", „Beendet", „Bestätigt")
- Das Overlay schließt sich mit dem X-Button oder einem Klick außerhalb.
Spieler entfernen:
- Klicke neben einem Spieler auf das Entfernen-Symbol, um die Betreuung zu beenden.
5. Tablet-Bedienung (Spieleingabe am Tisch)
Das Tablet am Tisch benötigt keine Anmeldung — einfach die URL des entsprechenden Tisches im Browser öffnen.
5.0 Modus-Auswahl
Beim ersten Öffnen eines Tablets erscheint ein Auswahlscreen:
| Modus | Beschreibung |
|---|---|
| Schiedsrichteransicht | Punkt-für-Punkt-Eingabe mit Timer, Karten, Timeout — wenn ein Schiedsrichter oder Operator am Tisch ist |
| Spieleransicht | Satzweiser Eintragage am Ende jedes Satzes — wenn Spieler selbst das Ergebnis eingeben |
Die Wahl wird für diesen Tisch gespeichert. Beim nächsten Öffnen startet das Tablet direkt im gewählten Modus. Über den Modus wechseln-Button oben rechts kann die Auswahl jederzeit zurückgesetzt werden.
Spieleransicht — Satzeingabe mit +N/-N Notation
In der Spieleransicht wird nach jedem Satz das Ergebnis mit einer kurzen Notation eingegeben:
| Eingabe | Bedeutung | Ergebnis |
|---|---|---|
+7 |
Spieler A gewinnt, Verlierer hat 7 Punkte | 11:7 |
-9 |
Spieler A verliert, Spieler A hat 9 Punkte | 9:11 |
+10 |
Spieler A gewinnt im Deuce | 12:10 |
+14 |
Spieler A gewinnt im langen Deuce | 16:14 |
Das Ergebnis wird nach der Eingabe kurz angezeigt und dann automatisch der nächste Satz aufgerufen. Das Match endet automatisch wenn die Gewinnsatz-Anzahl erreicht ist (Best-of-3: 2 Sätze, Best-of-5: 3 Sätze, Best-of-7: 4 Sätze).
Hinweis: In der Spieleransicht gibt es keine Punkt-für-Punkt-Eingabe, keine Karten und keinen Timer. Für den vollen Schiedsrichter-Funktionsumfang die Schiedsrichteransicht wählen.
Zeitslots & Überfälligkeitsanzeige:
Jedes Spiel zeigt den geplanten Beginn als Uhrzeit an (z. B. „14:30 Uhr"). Die Zeitslots werden automatisch vom System berechnet, basierend auf der Turnier-Startzeit, dem Spielformat und der Tischanzahl.
- Pünktlich: Die Uhrzeit wird normal angezeigt.
- Überfällig: Wenn die geplante Startzeit überschritten ist und das Spiel noch nicht begonnen hat, blinkt die Anzeige rosa — sowohl auf dem Tablet als auch im Admin-Dashboard. Dies hilft dem Turnierleiter, Verzögerungen schnell zu erkennen.
Hinweis: Die Zeitslots sind Schätzwerte. Die tatsächliche Spieldauer kann abweichen. Die Berechnung berücksichtigt das Spielformat (Best-of-3/5/7) und die durchschnittliche Satzdauer.
5.1 Aufschlag festlegen
Beim Start eines neuen Spiels erscheint automatisch ein Vollbild-Popup zur Aufschlagauswahl.
- Das Popup zeigt beide Spielernamen mit einer orangenen Schaltfläche.
- Tippe auf den Spieler, der den ersten Aufschlag hat.
- Das Popup schließt sich und das Scoreboard wird freigegeben.
Aufschlag-Anzeige während des Spiels:
- Ein oranger Punkt zeigt immer an, wer gerade aufschlägt.
- Der Aufschlag wechselt automatisch alle 2 Punkte (Regelkonform).
- Im Entscheidungssatz (z. B. Satz 5 bei Best-of-5) wechselt der Aufschlag ab 5:5 nach jedem Punkt.
Hinweis: Das Popup erscheint bei jedem neuen Satz erneut, wenn das Tablet neu geladen wird. Bei einem laufenden Spiel nach Seitenwechsel in der Mitte des Satzes einfach den aufschlagenden Spieler erneut auswählen.
5.2 Spielstand eingeben
Das Scoreboard zeigt links Spieler 1 und rechts Spieler 2.
| Schaltfläche | Funktion |
|---|---|
| P1 + | Punkt für Spieler 1 |
| P2 + | Punkt für Spieler 2 |
| P1 − | Letzten Punkt von Spieler 1 entfernen |
| P2 − | Letzten Punkt von Spieler 2 entfernen |
| ↩ Rückgängig | Letzten eingetragenen Punkt rückgängig machen (nur der letzte Punkt) |
| ⇄ Tauschen | Spielerpositionen tauschen (Spieler wechseln die Seite) |
5.3 Satzende & Spielende
Automatisches Satzende:
- Ein Satz endet automatisch, wenn ein Spieler 11 Punkte erreicht und mindestens 2 Punkte Vorsprung hat.
- Bei 10:10 wird weitergespielt bis zur 2-Punkte-Differenz (Verlängerung).
- Nach Satzende startet automatisch ein 60-Sekunden-Satztimer (Pause zwischen den Sätzen).
Satz-History:
- Alle bereits gespielten Sätze werden in der Mitte des Tablets mit Satznummer und Ergebnis angezeigt (z. B. „1. 11:9", „2. 11:7").
- Die Darstellung ist groß und gut lesbar — auch auf Distanz erkennbar.
Manuelles Satzende:
- Schaltflächen S1 und S2 vergeben einen Satzgewinn manuell (z. B. bei Regelentscheidung des Schiedsrichters).
Spielende:
Das Spiel endet automatisch, wenn ein Spieler die erforderliche Anzahl Sätze gewonnen hat:
- Best-of-3: 2 Sätze
- Best-of-5: 3 Sätze
- Best-of-7: 4 Sätze
Nach dem Spielende erscheint das Ergebnis-Display, gefolgt vom Bestätigungsfeld.
Reset:
- Über die Schaltfläche Reset kann das Spiel komplett zurückgesetzt werden (z. B. bei Fehlstart).
- Es erscheint ein Bestätigungsdialog vor dem endgültigen Reset.
5.4 Auszeit & Timer
| Schaltfläche | Funktion |
|---|---|
| T1 | Auszeit für Spieler 1 starten (60 Sekunden, max. 1 pro Spiel) |
| T2 | Auszeit für Spieler 2 starten (60 Sekunden, max. 1 pro Spiel) |
- Der Timer wird als Overlay auf dem gesamten Bildschirm angezeigt.
- Nach Ablauf des Timers kehrt das Scoreboard automatisch zur Eingabe zurück.
- Der Auszeit-Indikator neben dem Spielernamen zeigt deutlich sichtbar:
- Orange / aktiv — Auszeit noch verfügbar
- Grau / durchgestrichen — Auszeit bereits verbraucht
- Die Anzeige ist auch auf Armeslänge gut erkennbar (großes Format, hoher Kontrast).
5.5 Schiedsrichter-Funktionen
Ein offizieller Schiedsrichter kann das Spiel am Tablet mit einer 4-stelligen PIN übernehmen.
Schiedsrichter-Übernahme:
- Am unteren Rand des Tablets erscheint die Schaltfläche „Schiedsrichter übernehmen".
- Klicke darauf — ein Overlay öffnet sich.
- Gib die 4-stellige Schiedsrichter-PIN ein (vom Turnierleiter erhalten).
- Nach erfolgreicher Übernahme wird der Schiedsrichtername in der Leiste angezeigt.
Karten ausstellen:
Nach der Übernahme erscheint die Schaltfläche „Karte" in der Schiedsrichterleiste.
- Klicke auf „Karte" — das Karten-Overlay öffnet sich.
- Wähle den Spieler und die Kartenfarbe:
| Karte | Bedeutung |
|---|---|
| Gelb | Verwarnung — kein Punktverlust |
| Gelb-Rot | Punkt-Strafe — Gegner erhält einen Punkt |
| Rot | Spieler scheidet aus |
Klicke anschließend auf Ausstellen — die Karte wird protokolliert und der Spielstand ggf. angepasst. Das Overlay schließt sich mit dem X-Button.
Satzende durch Kartenpunkt: Wenn der Strafpunkt (Gelb-Rot oder Rot) zum 11. Punkt mit mindestens 2 Punkten Vorsprung führt, wird der Satz automatisch abgeschlossen — inklusive Satzwechsel, Satzpause-Timer und ggf. Spielende. Dies gilt auch für Verlängerungen (ab 10:10).
Karten bei Reset: Beim Zurücksetzen eines Spiels (Reset-Button) erscheint ein zusätzlicher Dialog: "Sollen die ausgesprochenen Karten auch gelöscht werden?" Du kannst wählen zwischen "Karten behalten" und "Karten auch löschen".
Karten auf der Zuschauer-Anzeige: Karten werden auch auf der Tisch-Display-Seite (/display/table/...) neben dem Spielernamen als farbiges Badge angezeigt.
Ergebnis-Bestätigung als Schiedsrichter:
Nach dem Spielende erscheint für den zugewiesenen Schiedsrichter eine zusätzliche Schaltfläche „Ergebnis als Schiedsrichter bestätigen". Diese Bestätigung wird separat protokolliert.
Hinweis: Die Schiedsrichter-PIN ist 4-stellig und numerisch. Sie unterscheidet sich von der Spieler-PIN und wird zentral im Schiedsrichter-Dashboard verwaltet.
5.6 Ergebnisbestätigung am Tablet
Nach dem Spielende erscheint automatisch das Bestätigungsfeld (sequenziell):
Schritt 1 — Spieler 1:
- Spieler 1 gibt seine 4-stellige PIN über das Nummernfeld ein.
- Klickt auf Bestätigen.
- Bei korrekter PIN: ✓ „Spieler 1 hat bestätigt" erscheint.
Schritt 2 — Spieler 2:
- Spieler 2 gibt seine 4-stellige PIN über das Nummernfeld ein.
- Klickt auf Bestätigen.
- Bei korrekter PIN: ✓ „Ergebnis bestätigt — Beide Spieler haben das Ergebnis bestätigt."
Bei Fehler:
- Nach 3 Fehlversuchen wird die PIN-Eingabe gesperrt.
- Es erscheint: „Admin erforderlich — Bitte den Turnierleiter kontaktieren."
- Der Administrator kann die PIN zurücksetzen.
Wenn ein Spieler kein Portal-Konto hat oder vergessen hat zu bestätigen: Das Ergebnis wird 5 Minuten nach Spielende automatisch bestätigt, sofern kein Einspruch eingereicht wurde.
6. Häufige Fragen & Fehlerbehandlung
„Kein aktives Turnier" wird angezeigt: → Der Administrator hat das Turnier noch nicht auf „Aktiv" gesetzt. Bitte den Turnierleiter kontaktieren.
„Spieler-Profil nicht gefunden" nach Login: → Deine E-Mail-Adresse wurde noch nicht mit einem Spieler-Datensatz verknüpft. Gib dem Turnierleiter deine registrierte E-Mail, damit er die Verknüpfung vornehmen kann.
PIN-Eingabe gesperrt:
→ Du hast 3 Mal die falsche PIN eingegeben. Wende dich an den Turnierleiter, der deine PIN zurücksetzen kann (Admin-Dashboard → Spieler → Schlüssel-Symbol).
Bestätigungsfenster erscheint nicht, obwohl das Spiel beendet ist: → Lade das Dashboard einmal neu (Seite aktualisieren). Das Dashboard pollt alle 10 Sekunden — bei langsamer Verbindung kann es kurz verzögert sein.
Tablet zeigt kein Spiel an / Seite ist leer: → Prüfe, ob die korrekte Tisch-URL geöffnet ist. Stelle sicher, dass dem Tisch eine aktive Partie zugewiesen wurde (sichtbar im Admin-Dashboard → Turnier → Bracket).
WLAN-Verbindung unterbrochen: → Das System kann ohne WLAN nicht genutzt werden. Stelle die Verbindung wieder her und lade die Seite neu. Alle Eingaben seit der letzten Synchronisierung können verloren gegangen sein — überprüfe den Spielstand nach Reconnect.
Einspruch wurde versehentlich eingereicht: → Informiere sofort den Turnierleiter. Ein Einspruch kann im Admin-Dashboard mit der Aktion „Ergebnis bestätigen (Original)" geschlossen werden.
Das Turnier zeigt nach der Auslosung falsche Ergebnisse: → Wende dich an den Administrator. Korrekturen sind über den Einspruchs-Mechanismus oder eine Admin-Überschreibung möglich.
Schiedsrichter-PIN funktioniert nicht / wird abgelehnt: → Die Schiedsrichter-PIN ist 4-stellig und numerisch. Stelle sicher, dass nicht versehentlich die 6-stellige Betreuer-ID oder die 4-stellige Spieler-PIN eingegeben wurde. Die Schiedsrichter-PIN wird im Schiedsrichter-Dashboard unter dem eigenen Profil angezeigt.
Das Aufschlag-Popup erscheint bei jedem Seitenaufruf: → Nur noch bei frischen Matches (Satz 1, kein Punkt gespielt). Nach einem Reload eines laufenden Spiels erscheint das Popup nicht mehr. Bei Doppel-Matches erfolgt die Aufschlagwahl in 3 Schritten: 1. Welches Doppel hat Aufschlag? → 2. Welcher Spieler schlägt auf? → 3. Wer ist Rückschläger? Ab Satz 2 erscheint das Popup erst nach der Satzpause — nur der Aufschläger wird gefragt, der Rückschläger ergibt sich automatisch (DTTB ITR 2.13.7).
Beim Einschreiben eines Spielers erscheint eine TTR- oder Jahrgangs-Warnung: → Das ist kein Fehler — der Spieler erfüllt die Teilnahmebeschränkungen des Turniers nicht vollständig. Als Admin kannst du ihn trotzdem einschreiben, indem du auf „Trotzdem einschreiben" klickst. Die Warnung wird nur protokolliert, verhindert die Anmeldung aber nicht.
Ein Spieler hat keinen TTR-Wert oder keinen Jahrgang eingetragen: → Öffne unter Spieler den Bearbeitungsdialog des Spielers und trage den fehlenden Wert nach. Danach kann die Turnierbeschränkung korrekt geprüft werden.
Wie komme ich zur Login-Seite meiner Rolle?
→ Öffne die Startseite / im Browser. Im Abschnitt „Direkt einsteigen" findest du Login-Karten für jede Rolle (Admin, Spieler, Betreuer, Schiedsrichter) mit direkten Links.
TTR-Wert wird bei Mouseover auf Spielernamen angezeigt — woher kommt der? → Der TTR-Wert wird vom Admin in der Spielerverwaltung hinterlegt. Im Bracket und in den Gruppentabellen erscheint er als Tooltip (Mouseover auf den Namen).
Wie teile ich den Turnierstand mit Zuschauern?
→ Öffne die Turnier-Detailseite im Admin-Dashboard und klicke auf „Link kopieren" oder den QR-Code-Button. Die öffentliche Seite unter /tournament/[Turnier-ID] zeigt Gruppen und KO-Bracket live — kein Login nötig. Ideal für TV-Displays mit dem Vollbild-Modus.
Wo sehe ich meinen TTR-Wert?
→ Im Spieler-Portal unter Profil (/player/settings). Der TTR-Wert wird mit einer farbigen Level-Einordnung angezeigt (Anfänger, Vereinsspieler, Leistungsspieler, Spitzenspieler). Der Wert wird vom Admin gepflegt und ist im Portal nicht editierbar.
Vollbild-Modus am Tablet: → In der Steuerleiste unter dem Spielfeld gibt es einen Vollbild-Button (⛶). Einmal antippen aktiviert den Vollbildmodus, erneutes Antippen oder Escape beendet ihn. Ideal für Tablets und Zuschauer-Displays.
Automatischer Seitenwechsel im Doppel (entscheidender Satz): → Im letzten möglichen Satz (z. B. Satz 3 im BO3) erscheint bei 5 Punkten einer Partei automatisch ein Hinweis zum Seitenwechsel. Die Seiten werden per Klick getauscht. Nach jedem Satzende wird automatisch gewechselt.
Vorgabe-Punkte im Dynamischen Doppel: → Werden in jedem Satz erneut voreingestellt, nicht nur im ersten. Die Vorgabe wird auf dem Tablet angezeigt und in der Aufschlagrotation korrekt berücksichtigt.
Ausgewogene Gruppenspiel-Reihenfolge (Gruppe+KO): → Bei neuen Auslosungen werden Gruppenspiele runden-weise über alle Gruppen verteilt: Runde 1 aller Gruppen, dann Runde 2, usw. So laufen alle Gruppen parallel auf gleichem Fortschritt.
Impressum, Datenschutz & AGB: → Über den Footer der Startseite erreichbar. Bei der Registrierung (Spieler, Betreuer, Schiedsrichter) müssen AGB und Datenschutzerklärung bestätigt werden — der Registrieren-Button ist erst aktiv, wenn beide Checkboxen gesetzt sind.
Tischbelegung im Auslosungs-Tab (alle Formate): → Die Tischzuweisung im Auslosungs-Tab nutzt jetzt überall die gleiche Dropdown-Komponente mit grünen (frei) und roten (belegt) Punkten — auch in der Gruppendetail-Ansicht und bei Jeder-gegen-Jeden. Die Belegung wird pool-weit erkannt: Ein Tisch der in Turnier A belegt ist, erscheint auch in Turnier B als rot markiert.
Karten auf Display + Satzende durch Kartenpunkt:
→ Gelbe, Gelb-Rote und Rote Karten werden jetzt auf der Tisch-Zuschauer-Anzeige (/display/table/...) als Badge neben dem Spielernamen angezeigt. Wenn eine Gelb-Rote oder Rote Karte zum Satzgewinn führt (11. Punkt mit 2 Vorsprung oder Verlängerung), wird der Satz automatisch abgeschlossen — inkl. Satzpause-Timer und Seitenwechsel.
Reset mit Karten-Option: → Beim Zurücksetzen eines Spiels am Tablet wird in einem zweiten Dialog gefragt, ob die ausgesprochenen Karten ebenfalls gelöscht werden sollen. Diese Option erscheint nur wenn tatsächlich Karten vergeben wurden.
Endergebnis auf Tisch-Display (30 Sekunden): → Nach Spielende zeigt die Tisch-Anzeige den vollständigen Endstand 30 Sekunden lang an — inkl. aller Sätze (auch des letzten entscheidenden Satzes). Danach wechselt die Anzeige zurück auf "Bereit" oder das nächste anstehende Spiel.
7. UAT-Testsuite — Automatische Regressionstests (PROJ-68)
Die UAT-Testsuite prüft vollautomatisch alle kritischen Funktionen auf der Staging-Umgebung (staging.tt-control.de). Sie legt einen temporären Test-Tenant mit eigenen Accounts an, führt alle Tests durch und räumt danach wieder auf.
Voraussetzungen
- Node.js ≥ 18 installiert
- Abhängigkeiten installiert:
npm install - Playwright-Browser installiert:
npx playwright install chromium - Zugang zur Staging-Umgebung (Netzwerk / VPN falls nötig)
- Superadmin-Account auf Staging vorhanden (z. B.
dirk.quitschau@coffeemaster.de)
Umgebungsvariablen
Vor dem Start müssen folgende Variablen gesetzt sein:
| Variable | Beschreibung | Beispiel |
|---|---|---|
STAGING_URL |
URL der Staging-Umgebung | https://staging.tt-control.de |
STAGING_SUPERADMIN_EMAIL |
E-Mail des Superadmin-Accounts | <deine-superadmin-email> |
STAGING_SUPERADMIN_PASSWORD |
Passwort des Superadmin-Accounts | *** |
UAT_TEST_PASSWORD |
Passwort für alle Test-Accounts (wird angelegt) | *** |
Testsuite starten
STAGING_URL=https://staging.tt-control.de \
STAGING_SUPERADMIN_EMAIL=<deine-superadmin-email> \
STAGING_SUPERADMIN_PASSWORD="***" \
UAT_TEST_PASSWORD="***" \
npx playwright test --config=playwright.config.ts
Oder als npm-Skript (falls konfiguriert):
npm run test:uat
Was passiert intern (Global Setup & Teardown)
Setup (einmalig vor allen Tests):
- Browser startet, Superadmin loggt sich auf Staging ein
- Temporärer Test-Tenant wird angelegt (z. B.
UAT-Test-1234567890) - Superadmin wechselt in den Test-Tenant-Kontext
- Vier Test-Accounts werden erstellt: Admin, Schiedsrichter, Betreuer, Spieler
- Zwei Test-Turniere werden angelegt: KO und Double-Elimination
- Alle Daten werden in
playwright-report/.fixtures.jsongespeichert - Tests laufen gegen diese Fixtures
Teardown (einmalig nach allen Tests):
- Superadmin loggt sich erneut ein
- Test-Tenant wird vollständig gelöscht (inkl. aller Accounts, Turniere, Matches per CASCADE)
- Fixture-Datei wird gelöscht
Ergebnisse & Reports
Nach dem Testlauf stehen folgende Reports bereit:
| Datei | Inhalt |
|---|---|
playwright-report/index.html |
HTML-Report mit Screenshots bei Fehlern — öffnen mit npx playwright show-report |
playwright-report/results.json |
Maschinenlesbares JSON-Ergebnis |
playwright-report/uat-report.md |
Markdown-Zusammenfassung mit Go/No-Go-Empfehlung |
playwright-report/qa-input.md |
Strukturierter Input für manuelle QA-Nachbereitung |
Testabdeckung (Stand 2026-04-25)
| Bereich | Tests | Status |
|---|---|---|
| Admin-Login (korrekte & falsche Credentials) | 2 | ✅ |
| Rollenwechsel Admin | 1 | ✅ |
| Spielerverwaltung (Liste, Form, CSV-Import) | 3 | ✅ |
| Turniere (Erstellen, TTR-Range, Klonen) | 3 | ✅ |
| Berichte (Statistik-Dashboard) | 1 | ✅ |
| Einstellungen (Settings, i18n) | 2 | ✅ |
| Öffentliche Seiten (Landingpage, Pricing, Health) | 3 | ✅ |
| Schiedsrichter-Login | 1 | ✅ |
| Auth-Guards (Redirects, RLS-401) | 4 | ✅ |
| Betreuer-Login | 1 | ⚠️ Skip (E-Mail-Confirm auf Staging) |
| Spieler-Login | 1 | ⚠️ Skip (E-Mail-Confirm auf Staging) |
| Dark-Mode-Toggle | 2 | ⚠️ Skip (nicht im Default-View) |
| Plan-Anzeige (Billing) | 1 | ⚠️ Skip (Mollie-Abhängigkeit) |
| Tablet-Score / PIN-Bestätigung | 2 | ⚠️ Skip (aktives Match nötig) |
Hinweis: Intentionale Skips sind keine Fehler — sie dokumentieren Testbedingungen, die auf Staging nicht ohne weiteres herstellbar sind (E-Mail-Auslieferung, aktive Matches).
Einzelne Test-Dateien ausführen
# Nur Admin-Tests
npx playwright test tests/uat/admin/ --config=playwright.config.ts
# Nur Public-Pages
npx playwright test tests/uat/public/ --config=playwright.config.ts
# Nur einen bestimmten Test
npx playwright test --grep "AUTH-01" --config=playwright.config.ts
Häufige Probleme
Setup schlägt fehl mit „Superadmin-Login fehlgeschlagen":
→ Prüfe ob STAGING_SUPERADMIN_EMAIL und STAGING_SUPERADMIN_PASSWORD korrekt sind. Der Account muss auf Staging als Superadmin (role: super_admin) angelegt sein.
Setup schlägt fehl mit „403 Zugriff verweigert":
→ Der Superadmin-Account hat nicht die Rolle super_admin in den App-Metadaten oder die Staging-Umgebung läuft noch auf einem alten Container-Build. Staging neustarten und erneut versuchen.
Tests laufen, aber alle scheitern:
→ Überprüfe ob STAGING_URL erreichbar ist (curl https://staging.tt-control.de). Bei SSL-Problemen ist ignoreHTTPSErrors: true bereits konfiguriert.
Playwright-Browser fehlt:
→ npx playwright install chromium ausführen.
Fixture-Datei von vorherigem Run noch vorhanden:
→ rm playwright-report/.fixtures.json löscht die Altdaten manuell. Das Teardown hätte sie normalerweise entfernt.
Stand: 2026-04-25 — TT-Control Turniersystem MVP
