Docs Admin-Handbuch
Admin-Handbuch

FightReg Administration

Vollständige Anleitung zur Einrichtung, Durchführung und Nachbereitung eines Turniers mit FightReg.

⚙️ Admin 👔 Staff 💶 Billing 🔐 RBAC
Veranstaltungsablauf — Übersichtsdiagramm
6 Phasen von der Ersteinrichtung bis zur Nachbereitung — als druckbare SVG-Grafik.
Ablauf-Diagramm öffnen
⚙️

1. Ersteinrichtung

Diese Schritte sind einmalig notwendig, bevor das erste Turnier angelegt werden kann.

Veranstalter-Profil

Unter Einstellungen → Veranstalter die Stammdaten hinterlegen:

  • Firmenname, Anschrift, Logo
  • E-Mail, Telefon, Website
  • Steuer-ID / USt-IdNr. (für Rechnungen)

Rechnungssteller

Unter Einstellungen → Rechnungssteller die Rechnungsdaten erfassen. Diese werden auf allen generierten Rechnungen (PDF) gedruckt. Mehrere Rechnungssteller möglich (z.B. für verschiedene Standorte).

SMTP-Konfiguration

Unter Einstellungen → Mail die SMTP-Zugangsdaten konfigurieren. Mit „Test-Mail senden" prüfen, ob der Versand funktioniert.

⚠️
Ohne SMTP-Konfiguration können keine Einladungslinks, Buchungsbestätigungen oder Rechnungen per Mail versendet werden.

Super-Admin anlegen

Beim ersten Start legt install.php automatisch einen Super-Admin an. Weitere Admins können unter System → Benutzer angelegt werden.

🔐

2. Rollen & Rechte (RBAC)

FightReg verwendet ein feingranulares Rollenmodell mit 67 Permission-Slugs in 14 Modulen. Jede Rolle hat eine individuell konfigurierbare Permission-Matrix.

Systemrollen (Standardrollen)

RolleBeschreibungTypische Permissions
super_admin Vollzugriff auf alles — systemweite Einstellungen, alle Wettkämpfe, Benutzerverwaltung Alle Permissions
admin Veranstaltungs-Admin — vollständige Kontrolle über zugewiesene Wettkämpfe Alle außer system.manage
trainer Vereinsvertreter — eigene Teilnehmer, Anmeldungen, Check-in participants.*, checkin.perform, startlists.view
staff Hilfspersonal am Wettkampftag — Check-in, Brackets, Ansagen checkin.*, brackets.score, announce.*
billing Buchhaltung — nur Rechnungsbereich billing.*
athlete Athlet — nur eigene Daten, keine Admin-Funktionen Eigenes Profil, Buchungen
spectator Zuschauer / Gast — nur Lesezugriff auf öffentliche Bereiche competition.view, brackets.view

Permission-Module im Überblick

competition

view, edit, create, delete, duplicate, stats, dashboard

categories

view, edit, merge, status

brackets

view, edit, generate, score, revert, settings, fightorder

checkin

view, perform, call, documents

billing

view, edit, send, surcharges, discounts, stats

announce

view, manage, speak, settings

participants

view, edit, enroll, documents

arenas

view, manage, assign, status, notify

settings / system

view, edit, ai, languages, mail · manage

Staff einem Wettkampf zuweisen

  1. Wettkampf öffnen → Tab „Staff".
  2. Benutzer suchen oder neu anlegen (OTP-Einladung per Mail).
  3. Rolle auswählen und ggf. einzelne Permissions überschreiben.
  4. Speichern — der Benutzer hat sofort Zugriff.

3. Wettkampf anlegen

  1. Navigation → Wettkämpfe → „+ Neuer Wettkampf".
  2. Grunddaten eingeben: Name (DE/EN), Datum, Uhrzeit, Ort, max. TN.
  3. Veranstalter und Rechnungssteller zuweisen.
  4. Anmeldefrist setzen (Deadline — danach kein Trainer-Selfservice mehr).
  5. Sprachen aktivieren (DE, EN oder beides).
  6. Turnier-Typ für Ranking setzen: regional / national / international.
  7. Speichern — Wettkampf ist jetzt in der Liste sichtbar.
💡
Bestehende Wettkämpfe können dupliziert werden — inklusive aller Kategorien und Einstellungen. Ideal für Serienveranstaltungen.

Wettkampf-Dashboard

Im Dashboard eines Wettkampfs siehst du in Echtzeit: Angemeldete Schulen, TN-Zahlen, Check-in-Fortschritt, Bracket-Status und KPI-Charts.

📁

4. Kategorien

Kategorien sind zweistufig aufgebaut: Hauptkategorien (z.B. „Kata") enthalten Unterkategorien (z.B. „Kata Einzel U12 weiblich").

Unterkategorie anlegen

  1. Wettkampf → Kategorien → „+ Kategorie".
  2. Name (DE + EN), Disziplin, Alters-Limits, Gewichts-Limits, Grad setzen.
  3. Bracket-Typ wählen: Single Elimination (KO) oder Round Robin (Jeder gegen Jeden).
  4. Max. TN pro Kategorie setzen (optional).
  5. Partner/Team-Flag aktivieren für Partnerübungen (Sprint 48).

Kategorien zusammenführen (Merge)

Wenn zu wenig TN in einer Kategorie sind, können zwei Kategorien zusammengeführt werden:

  1. Kategorien → „Merge" wählen.
  2. Quell- und Zielkategorie auswählen.
  3. Merge bestätigen — TN werden in die Zielkategorie übertragen, Merge-History wird protokolliert.

Kategorie-Status

StatusBedeutung
openAnmeldungen möglich
closedAnmeldungen gesperrt (manuell oder nach Deadline)
runningWettkampf läuft gerade
completedAbgeschlossen — Ergebnisse finalisiert
🏫

5. Schulen verwalten

Schulen (Vereine) sind die organisatorische Einheit in FightReg. Jeder Trainer ist einer Schule zugeordnet.

Schule für Wettkampf freischalten

Wenn eine Schule sich für einen Wettkampf anmeldet, muss sie vom Admin bestätigt werden:

  1. Wettkampf → Tab „Schulen".
  2. Schule mit Status pending suchen.
  3. „Bestätigen" klicken → Status wird zu confirmed.
  4. Trainer kann jetzt Teilnehmer anmelden.

Schul-Kürzel (für Athlet-ID)

Jede Schule hat ein 3-buchstabiges Kürzel (short_code), das Teil der Athlet-IDs ihrer Mitglieder wird. Das Kürzel muss systemweit eindeutig sein.

⚠️
Einmal vergebene Kürzel sollten nicht geändert werden, da sonst bestehende Athlet-IDs ungültig werden.
👥

6. Teilnehmer

Admins können alle Teilnehmer aller Schulen einsehen und bearbeiten. Zusätzlich zu den Trainer-Funktionen stehen folgende Admin-Funktionen zur Verfügung:

FunktionBeschreibung
Bulk-EinladungAlle Trainer einer Schule per Mail einladen
Teilnehmer zurücksetzenBuchung stornieren und TN aus Kategorie entfernen
Walkover setzenTN als kampflos gewonnen oder verloren markieren
GastteilnehmerAußerhalb der normalen Anmeldung einbuchen
Athlet-ID zuweisenBestehenden TN ohne ID eine ID vergeben (Bulk möglich)
🔢

7. Startnummern

Startnummern sind physische Nummern — ein Vorrat von etwa zweihundert Stück, der jedes Jahr wiederverwendet wird. FightReg verwaltet den Vorrat, nicht eine fortlaufende Zahl.

Vorrat anlegen

  1. Einstellungen → Veranstaltung → Startnummern: Bereich festlegen.
  2. Zustände je Nummer: frei, vergeben, verloren, defekt. Eine defekte Nummer bleibt im Vorrat und wird nicht vergeben.

Vergeben — vor dem Check-in, nicht dabei

  1. Verwaltung → Vereine, Werkzeugleiste rechts, Knopf Startnummern.
  2. Serienvergabe je Verein: ein Knopf am Vereinskopf vergibt für alle Gemeldeten auf einmal.
  3. Unten im Dialog Aufstellung — das Blatt für den Trainer: wer trägt welche Nummer.
Zieht ein Sportler zurück, wird seine Nummer sofort wieder frei. Die Nummer steht außerdem auf der Teilnehmerkarte und auf dem Wertungsbogen.
📋

8. Startlisten

Startlisten zeigen die Reihenfolge der Teilnehmer pro Kategorie am Wettkampftag.

  1. Wettkampf → Startliste.
  2. Kategorie auswählen.
  3. Reihenfolge per Drag & Drop anpassen.
  4. Als PDF exportieren (Ausgabeliste für Kampfrichter).
💡
Die Startliste wird als Ausgangspunkt für das Bracket-Seeding genutzt. Die manuelle Reihenfolge hier bestimmt die automatische Bracket-Verteilung.
🏆

9. Brackets & Kampfsystem

Bracket generieren

  1. Wettkampf → Kategorie → „Bracket generieren".
  2. Typ wählen: Single Elimination (Standard-KO) oder Round Robin (Rundenspiel).
  3. Seeding-Reihenfolge kontrollieren (Drag & Drop der TN).
  4. Generieren — SVG-Brackettree wird erstellt.

Single Elimination (KO-Baum)

Visualisiert als SVG-Brackettree mit interaktiven Match-Karten (260×72px). Features:

  • Zoom und Pan (Mouse + Touch)
  • Match-Ergebnis direkt in der Karte eintragen
  • Gewinner-Hervorhebung (grüne Leiste + Sieger-Badge)
  • Verlierer gedimmt (50% Opacity)
  • Seed-Nummern (①②) und Match-Nummern
  • Bracket als PDF exportierbar

Round Robin (Rundenspiel)

Horizontaler Wizard mit Rundennavigation. Features:

  • Automatische Tabellengenerierung
  • Punktestand-Tabelle in Echtzeit
  • Nächste Runde manuell starten
  • Abschluss → Platzierungen werden in Rankingtabelle übernommen

Bracket-Einstellungen pro Wettkampf

EinstellungBeschreibung
Loser-BracketTrostrunde aktivieren (3. Platz Kampf)
Freilos-LogikAutomatisches Freilos bei ungerader TN-Zahl
Ergebnis-FormatPunkte / Technik / Flags konfigurieren
🏟

10. Arenen & Matten

Arenen sind Bereiche in der Halle (z.B. „Bereich A"), Matten/Ringe sind die konkreten Wettkampfflächen innerhalb einer Arena.

  1. Wettkampf → Arenen → „+ Arena anlegen".
  2. Arena benennen und Matten hinzufügen.
  3. Kategorien zu Matten zuordnen (Drag & Drop).
  4. Geschätzte Startzeiten pro Kategorie setzen.
  5. Status: pending → active → completed (auch manuell setzbar).
💡
Brackets können direkt einer Matte zugeordnet werden. Auf dem Hauptscreen-Modul wird dann pro Matte der aktuelle Kampf angezeigt.
🗺

11. Hallenplan & Flächenbelegung

Der Hallenplan ist der zweite Weg zu den Flächen: dieselben Daten wie die Flächenliste, nur räumlich. Eigene Seite, eigener Menüpunkt — die Listenansicht bleibt unangetastet und weiterhin der Weg, der am Turniertag sicher funktioniert.

Plan bauen

  1. Seitenverhältnis der Halle wählen, wahlweise ein Hintergrundbild hinterlegen.
  2. Flächen aus der Ablageleiste links auf den Plan ziehen, drehen, in der Größe anpassen.
  3. Objekte für alles, was keine Fläche ist: Eingang, Waage, Siegerehrung, Sanitäter, Verkauf, WC — mit Symbol, Bild oder Sponsorenband.
  4. Einmal speichern. Der Plan schreibt nicht bei jedem Ziehen: ein Umbau wären sonst fünfzig Anfragen über das Hallen-WLAN.

Wo er am Wettkampftag erscheint

  • Beamer — als Inhalt in der Warteschlange des Bildschirms, mit Live-Status je Fläche.
  • Telefon der Zuschauer — auf der Live-Seite, die eigene Fläche farbig, der Rest gedämpft.
  • Aushang — als Ausdruck für den Eingang.
ℹ️
Der Plan gehört in die Wechselanzeige des Beamers, nicht als Dauerbild: ein stehender Hallenplan verbraucht Bildschirmzeit, die dem laufenden Kampf gehört.
⚔️

12. Kampfreihenfolge

Die Kampfreihenfolge bestimmt, welcher Kampf wann auf welcher Matte stattfindet. Sie ist über alle Kategorien und Matten hinweg optimiert.

  1. Wettkampf → Kampfreihenfolge.
  2. Automatische Reihenfolge wird generiert (basierend auf Bracket-Stand und Arena-Zuordnung).
  3. Manuell per Drag & Drop umsortieren.
  4. Als PDF exportieren (Tagesplan für Kampfrichter).
  5. Reset möglich → automatische Reihenfolge wiederherstellen.
⚠️
Wenn ein Teilnehmer gleichzeitig auf zwei Matten kämpfen müsste, wird ein Parallelkonflikt angezeigt. Diesen manuell durch Umsortierung auflösen.
⚔️

13. Kampfarten & Kampfbewertung

Leichtkontakt und Vollkontakt sind eigene Kampfarten — nicht zwei Namen für dasselbe. Sie unterscheiden sich in der Erfassung, und deshalb hängt die Bewertungsmaske an der Kampfart der Kategorie.

Was eingetragen wird

  • Runden — je Runde eine Wertung, nicht nur ein Endergebnis.
  • Fahnen — die Entscheidung der Kampfrichter je Runde.
  • Kampfgericht je Kampf — wer an diesem Kampf gewertet hat, steht am Kampf und nicht an der Fläche: Besetzungen wechseln im Lauf des Tages.
  • Startnummer — sie steht auf dem Wertungsbogen, damit das Blatt ohne Rückfrage zuzuordnen ist.

Am Kampfrichtertisch

Ein eigener Monitor zeigt den aktuellen Starter und seine Wertung — die Ansicht für den Tisch, nicht für die Halle. Sie ist gesondert aufrufbar und braucht keinen Platz auf dem Beamer.

14. Check-in Verwaltung

Check-in Dashboard

Das Check-in-Modul zeigt in Echtzeit den Eincheck-Status aller Teilnehmer. Suche nach Name, Athlet-ID oder Schule. Status-Filter: Alle / Noch nicht / Eingecheckt.

Dokumente prüfen

Beim Check-in können hochgeladene Dokumente (Startpass, Arztzeugnis etc.) direkt eingesehen und der Status gesetzt werden (geprüft / fehlt).

Kampfaufrufe

Über das Check-in-Modul können manuelle Kampfaufrufe an Teilnehmer gesendet werden (Erscheint auf der Teilnehmerkarte als Push-Nachricht).

📺

15. Bildschirme & Beamer

Eine Veranstaltung kann mehrere Bildschirme haben, und jeder hat seine eigene Warteschlange. Der Beamer über der Fläche zeigt etwas anderes als der im Eingangsbereich.

Einrichten

  1. Einstellungen → Hauptscreen: Bildschirm anlegen und seine Warteschlange zusammenstellen.
  2. Inhalte: Startbild, aktueller Kampf, Baum, Tabelle, Kampfreihenfolge, Flächenübersicht, Hallenplan, Sponsorenseite.
  3. Wechseltakt je Bildschirm einstellen (Vorgabe 30 Sekunden).
  4. Schriftgröße je Bildschirm — ein Beamer in einer großen Halle braucht andere Werte als ein Fernseher am Eingang.

Aufrufen

Der Bildschirm läuft ohne Anmeldung und wird über einen Token in der Adresse geöffnet — wer den Link hat, sieht diesen einen Bildschirm und sonst nichts. Der Rechner am Beamer braucht damit keinen Zugang.

ℹ️
Zwei Dinge heißen leicht gleich und sind es nicht: der Beamer in der Halle und die Live-Seite auf den Telefonen der Zuschauer. Zwei Publika, zwei Ansichten — was auf dem einen läuft, läuft nicht automatisch auf dem anderen.
🔊

16. Hallenansage

Die Ansage ist keine Folge einzelner Knöpfe mehr, sondern eine Warteschlange: Ansagen reihen sich ein, laufen in einer festgelegten Reihenfolge und halten Pausen ein.

Einrichten

  1. Einstellungen → Veranstaltung → Ansage / KI: Schlüssel für die Sprachausgabe hinterlegen. Ohne eigenen Schlüssel greift der der Installation — welcher gerade gilt, zeigt ein Abzeichen an der Karte.
  2. Stimme wählen — je Veranstaltung, aus dem hinterlegten Konto.
  3. Vorlagen und Ausspracheregeln pflegen: „{vorname} {nachname} von {schule} — bitte auf Fläche {flaeche}".
  4. Pausen setzen: zwischen zwei Ansagen und um den Kampfaufruf herum.

Am Wettkampftag

  • Ansagen entstehen aus der Kampfreihenfolge oder von Hand.
  • Die Reihenfolge in der Warteschlange ist änderbar; Dringendes geht vor.
  • Wiederkehrende Texte kommen aus dem Zwischenspeicher — sie kosten kein zweites Mal.
⚠️
Das Kontingent hängt am Schlüssel. Ist es erschöpft, betrifft das nur die Veranstaltung mit diesem Schlüssel — nicht alle.
📣

17. Kampfaufruf & Push-Benachrichtigungen

Der Kampfaufruf erreicht Trainer und Sportler auf dem eigenen Telefon — zusätzlich zur Ansage in der Halle, nicht an ihrer Stelle.

Einschalten

  1. Push ist je Veranstaltung ausgeschaltet vorbelegt. Wer Nachrichten an Trainer und Sportler schickt, entscheidet das bewusst.
  2. Voraussetzung ist ein hinterlegter VAPID-Schlüssel. Fehlt er, bricht jede Anmeldung eines Geräts still ab — die Gegenprobe ist die Abfrage des öffentlichen Schlüssels.
  3. Der Aufruf kann automatisch aus der Kampfreihenfolge kommen oder von Hand ausgelöst werden.

Nachweis

Die Zustellung wird je Gerät protokolliert — gesendet ist nicht angekommen, und ohne Protokoll fällt ein abgelaufenes Abo niemandem auf.

⚠️
Auf iOS hat nur ein Teil der Geräte ein Push-Abo. Für diese Teilnehmer bleibt die Hallenansage der verlässliche Weg — der Aufruf ersetzt sie nicht.
💶

18. Billing & Rechnungen

Preisregeln

Für jeden Wettkampf können flexible Preisregeln definiert werden:

  • Grundpreis pro Kategorie/Buchung
  • Aufschläge (Surcharges): z.B. „Spätbuchung +10%"
  • Rabatte (Discounts): z.B. „Vereinsmitglied -5€"
  • Selbstzahler-Kennzeichnung (separate Rechnung direkt an Athlet)

Rechnungsgenerierung

  1. Billing → Schule auswählen → „Rechnung generieren".
  2. Positionen prüfen (alle Buchungen als Rechnungspositionen).
  3. PDF wird via TCPDF erstellt — professionelles Layout mit Firmenlogo.
  4. Rechnung per Mail senden oder manuell als PDF herunterladen.
💡
Rechnungen werden in storage/invoices/ als PDF gespeichert und können jederzeit erneut heruntergeladen werden.

Rechnungsstatus

StatusBedeutung
draftEntwurf — noch nicht versendet
sentPer Mail versendet
paidBezahlt (manuell markierbar)
cancelledStorniert
🤝

19. Sponsoren

Unter Einstellungen → Sponsoren. Es gibt drei Flächen, und sie werden einzeln gebucht — dieselbe Firma kann auf einer laufen und auf einer anderen nicht.

FlächeWas verkauft wirdNachweis
BandPlatz: wie oft das Logo je Durchlauf vorkommtnein — eine dauerhafte Zusage braucht keinen
Zuschauer-VollbildZeit: Sekunden je Einblendung, mit Mindestabstandja, je Einblendung
BeamerZeit, als eigene Seite in der Warteschlangeja, je Einblendung
ℹ️
Der Takt zählt je Sponsor und je Fläche. Wer zwei Flächen bucht, bekommt zweimal die zugesagte Menge — nicht dieselbe einmal geteilt. Der Veranstalter platziert, der Vertrag bestimmt die Menge.
⚠️
Der Nachweis zählt nur, was im laufenden Betrieb lief. Aufbau und Proben gehören nicht in eine Rechnung.
🖨

20. Drucken: Print Agent, Karten, Listen

Am Check-in-Tisch stört jeder Druckdialog. Der Print Agent ist ein kleines Programm auf dem Windows-Rechner des Arbeitsplatzes; die Anwendung schickt ihm das fertige PDF, er druckt es ohne Vorschaufenster.

Einrichten

  1. Agent herunterladen und installieren. Er ist signiert — der SmartScreen-Hinweis von Windows entfällt damit.
  2. Im Agent Druckerrollen zuordnen: Rechnung, Quittung, Urkunde, Teilnehmerkarte. Die Anwendung kennt nur die Rolle, nie den Gerätenamen — ein ausgetauschter Drucker ist damit eine Änderung am Arbeitsplatz und keine an der Anwendung.
  3. Mehrere Profile je Arbeitsplatz sind möglich (A4 und Bondrucker nebeneinander).

Was gedruckt wird

  • Teilnehmerkarte — 85 × 90 mm, zwei mal drei auf A4, oder vom Bondrucker mit 80-mm-Rolle. Mit Athleten-ID, Startnummer und QR-Code.
  • Rechnungen und Quittungen — mit dem Belegbild des jeweiligen Rechnungsstellers.
  • Urkunden — einzeln, je Kategorie oder für einen ganzen Verein.
  • Listen und Aushänge — Startlisten, Kampfreihenfolge, Hallenplan.
ℹ️
Ausdrucke folgen der Sprache der Veranstaltung, nicht der Sprache der Oberfläche: das Blatt hängt in der Halle, und wer es liest, hat die Oberfläche nie gesehen.
✉️

21. Mail-Templates & CI

Alle automatisch versendeten Mails können individuell gestaltet werden — pro Wettkampf oder global.

Verfügbare Mail-Typen

TypAuslöser
invitationTrainer/Staff-Einladung (OTP-Link)
booking_confirmationBuchungsbestätigung für Trainer
password_resetPasswort-Reset-Link
invoiceRechnung per Mail
participant_inviteEinladung an Athleten (Athlet-Link)

Corporate Identity

Unter Einstellungen → Mail-Design kannst du:

  • Logo hochladen (wird in Mail-Header angezeigt)
  • Farbschema wählen (8 vordefinierte CI-Presets)
  • Absendername und Footer-Text anpassen

Wettkampf-spezifische Designs überschreiben globale Einstellungen.

👔

22. Staff & Personalverwaltung

Für jeden Wettkampf kann ein eigenes Staff-Team mit individuellen Rechten zusammengestellt werden.

  1. Wettkampf → Staff → Benutzer suchen oder neu anlegen.
  2. Rolle auswählen (aus globaler Rollenliste).
  3. Optional: Einzelne Permissions für diesen Benutzer in diesem Wettkampf überschreiben.
  4. Einladungsmail wird automatisch versendet (OTP-Einmallink).
🔐
Die RBAC-Audit-Funktion (System → RBAC-Audit) prüft, ob alle im Code verwendeten Permission-Slugs korrekt in der Datenbank eingetragen sind.
👥

23. Coaches

Ein Coach betreut am Wettkampftag, ohne die Rechnung des Vereins zu sehen. Er hat die Rechte des Trainers ohne billing.view — er betreut, er zahlt nicht.

  • Angelegt wird er vom Trainer, nicht von einem anderen Coach.
  • Ein Coach kann zwei Vereine begleiten — deshalb hängt er an einer eigenen Zuordnung und nicht am Trainereintrag.
  • Er ist eine Grundrolle, keine Turnierrolle: unter „Mitglieder" einer Veranstaltung taucht er nicht auf.
🏅

24. Ranking-System

FightReg berechnet automatisch Ranking-Punkte, wenn ein Bracket abgeschlossen wird.

Punkte-Konfiguration

  1. Wettkampf → Ranking-Einstellungen.
  2. Turnier-Typ festlegen: regional (Faktor 1.0), national (1.5), international (2.0).
  3. Punkte pro Platzierung definieren (1. Platz = 100, 2. Platz = 70 usw.).
  4. Bei Bracket-Abschluss: Punkte werden automatisch in athlete_rankings geschrieben.

Globales Ranking

Das globale Ranking aggregiert alle Ergebnisse aller Wettkämpfe. Unter Ranking in der Navigation findest du die Gesamtrangliste — filterbar nach Kategorie, Zeitraum und Verband.

🌐

25. Verbände

Verbände können Schulen und Wettkämpfe organisieren und eigene Ranglisten führen.

FunktionBeschreibung
Verband anlegenName, Logo, Kontakt, übergeordneter Verband (Hierarchie)
Schulen zuordnenVereine einem Verband zuweisen
Wettkämpfe verknüpfenTurniere einem Verband zuordnen (für Verbandsranking)
VerbandsrankingRanking nur innerhalb der Verbands-Wettkämpfe
Verbands-AdminsSeparate Admins für Verbandsebene (Sprint 43+)
🔧

26. Einstellungen

BereichInhaltBerechtigung
AllgemeinTimezone, Währung, Sprachensettings.edit
VeranstalterFirmenname, Logo, Adresseorganizer.edit
MailSMTP-Zugangsdaten, Test-Mailsettings.mail
Mail-DesignCI-Farben, Logo für Mailssettings.mail
KI-AssistentAPI-Keys (Anthropic/OpenAI), Chat aktivierensettings.ai
TTSElevenLabs API-Key, Stimme, Templatesannounce.settings
ÜbersetzungenLokale Texte anpassen, Übersetzereinladungentranslations.*
🔑

27. Zugang: Selbstanmeldung & Einmalkennwort

Selbstanmeldung

Unter Einstellungen → Plattform. Ist sie aus, verschwindet der Registrieren-Knopf von der Startseite und die Zugänge legt der Veranstalter an. Ist sie an, melden sich Vereine selbst an.

ℹ️
Die Sperre wirkt serverseitig, nicht nur am Knopf: fällt die Abfrage aus, gilt zu. Ein Fehlschlag darf niemanden hereinlassen.

Einmalkennwort als zweiter Faktor

Ebenfalls unter Plattform: erzwingbar für alle oder freiwillig. Ist das Schema noch nicht eingespielt, verhält sich die Anmeldung wie vorher — ein Fehlschlag darf hier niemanden aussperren. Das ist derselbe Bauplan mit umgekehrtem Vorzeichen wie bei der Selbstanmeldung, und beide Richtungen sind Absicht.

🈯

28. Übersetzungen

Elf Sprachen. Die Sprachdateien sind die Grundlage, die Datenbank legt sich darüber — was auf der Übersetzungsseite geändert wird, wirkt sofort und überlebt jeden Deploy.

  • Übersetzt wird am laufenden System, nicht in einer Kopie.
  • Die Arbeit steht damit zunächst nur in der Produktivdatenbank und gehört regelmäßig in die Sprachdateien zurückgeholt.
  • Einladungen an Übersetzer sind ohne eigenen Zugang möglich.
⚠️
Ein englischer Text an einer englischen Stelle sieht richtig aus, auch wenn er unübersetzt ist. Lücken fallen deshalb nicht beim Ansehen auf, sondern nur beim Zählen.
🧪

29. Demo-Zweig

Für Vorführungen und zum Ausprobieren gibt es Demo-Veranstaltungen mit eigenen Zugängen. Ein Demo-Zugang sieht ausschließlich Demo-Veranstaltungen.

⚠️
Aus einer Demo geht keine echte Post raus. Der Mailversand ist dort gesperrt — sonst bekommt ein Verein eine Rechnung für ein Turnier, das es nicht gibt.
🖥

30. System-Modul (Super-Admin)

Das System-Modul ist nur für Super-Admins sichtbar (system.manage-Permission).

TabInhalt
BenutzerAlle Benutzer auflisten, deaktivieren, löschen, neue anlegen
RollenSystemrollen und ihre Permission-Matrix bearbeiten
RBAC-AuditKonsistenz-Check: Code-Permissions vs. DB-Permissions
Chat-LogsKI-Assistent-Protokoll einsehen und löschen
Audit-LogAlle Admin-Aktionen nachverfolgen
Service WorkerCache-Version einsehen, Force-Update auslösen
🤖

31. KI-Einstellungen

FightReg unterstützt zwei KI-Provider für den Chat-Assistenten:

Anthropic Claude

Standard-Provider. Modell: claude-sonnet-4-20250514. Tool-Use für DB-Abfragen.

OpenAI

Alternativ-Provider — austauschbar. Gleiche Tool-Definitionen.

Den Chat aktivieren/deaktivieren unter Einstellungen → KI (chat_enabled). Chat-Logs unter System → Chat-Logs.

🎓

32. Urkunden & Zertifikate

FightReg generiert individuell gestaltete Urkunden für Platzierungen und Teilnahmen — als druckfertige PDFs mit QR-Verifizierungscode.

Template-Designer

Unter Einstellungen → Urkunden → Template-Designer (URL: /certificate-designer) erstellst du visuelle Urkunden-Vorlagen:

  1. Preset auswählen — Vorlagen für Platzierung (placement) oder Teilnahme (participation), Hoch- oder Querformat (A4/A5).
  2. Elemente positionieren — Drag & Drop auf dem Canvas: Textfelder, Athletenname, Kategorie, Platzierung, Datum, Logo, Siegerbild.
  3. Akzentfarbe & Schriften — Primärfarbe und Schriftgröße pro Element einstellbar.
  4. Vorschau — Echtzeit-PDF-Vorschau mit Beispieldaten.
  5. Speichern — Template wird unter einem Namen gespeichert und steht für Zuweisungen bereit.
💡
Undo-Funktion: Strg+Z bzw. DEL-Taste zum Löschen markierter Elemente. Sprache der Kategoriebeschriftung (DE/EN) per Toggle wählbar.

Template-Zuweisung

Ein Template wird einem Wettkampf (global) oder einer einzelnen Kategorie zugewiesen:

  1. Wettkampf → Urkunden → Template auswählen.
  2. Wahlweise: Kategorie-spezifisches Template überschreibt das Wettkampf-Template.
  3. Templates können dupliziert und angepasst werden.

Urkunden generieren

AktionBeschreibung
Einzel-PlatzierungsurkundeWettkampf → Kategorie → Teilnehmer → „Urkunde (Platzierung)"
Einzel-TeilnahmeurkundeWettkampf → Kategorie → Teilnehmer → „Urkunde (Teilnahme)"
Bulk: alle PlatziertenWettkampf → Urkunden → „Alle Platzierungs-Urkunden (PDF)"
Bulk: alle TeilnehmerWettkampf → Urkunden → „Alle Teilnahme-Urkunden (PDF)"
Bulk: komplettKombiniertes PDF mit Platzierungs- + Teilnahmeurkunden
⚠️
PDFs werden serverseitig mit TCPDF generiert und als Download bereitgestellt. Großer Bulk-Export kann einige Sekunden dauern.

QR-Verifizierung

Jede Urkunde enthält einen QR-Code, der auf /verify/{uuid} zeigt. Über diese URL kann jedermann die Echtheit und den Inhalt der Urkunde prüfen — ohne Login.

🔒
QR-Codes werden lokal über den internen /api/qr-Endpoint generiert (kein externer Service — DSGVO-konform).
📐

33. Forms- & Kata-Bewertung

Für Kata- und Forms-Kategorien (Technik-Bewertung durch Kampfrichter) steht ein eigenes Bewertungssystem zur Verfügung — unabhängig vom KO/Round-Robin-Bracket.

Bewertungs-Session erstellen

  1. Wettkampf → Forms → „+ Neue Session".
  2. Kategorie auswählen (muss Typ forms oder kata haben).
  3. Anzahl Kampfrichter festlegen (3–7).
  4. Kampfrichter per Name oder Benutzer zuweisen.
  5. Arena/Matte optional zuweisen.
  6. Startreihenfolge aus Startliste übernehmen oder manuell anpassen.

Bewertung durchführen

Jeder Kampfrichter bewertet über /judge (separater Tablet-Bildschirm, keine Navigation):

  1. Session-Code eingeben oder per QR-Link öffnen.
  2. Aktuellen Teilnehmer auswählen.
  3. Punktzahl eingeben (konfigurierbares Dezimalformat, z.B. 8,5–10,0).
  4. Bewertung abschicken — sofort in Echtzeit auf Admin-Übersicht sichtbar.
💡
Die Richter-Ansicht (/judge) lädt kein globales Haupt-JS — kein Session-Timeout, optimiert für Tablet.

Ergebnisse & Abschluss

FunktionBeschreibung
Live-ÜbersichtAdmin sieht alle Bewertungen in Echtzeit (Durchschnitt, Einzel-Noten)
Vorschau-RankingZwischenergebnis sortiert nach Durchschnittspunkten
Session finalisierenErgebnisse einfrieren — Ranking wird fixiert, Urkunden freigegeben
Session zurücksetzenAlle Bewertungen löschen und neu starten (nur vor Finalisierung)
NotizenFreitext-Notizen pro Teilnehmer für Kampfrichter

Kategorien-Einrichtung für Forms

Beim Anlegen der Kategorie den Typ forms (statt fight) wählen. Forms-Kategorien erscheinen automatisch im Forms-Tab und erzeugen kein KO-Bracket.