FightReg Administration
Complete guide to setting up, running and wrapping up a tournament with FightReg.
Inhalt
- Ersteinrichtung
- Rollen & Rechte (RBAC)
- Wettkampf anlegen
- Kategorien
- Schulen verwalten
- Teilnehmer
- Startlisten
- Brackets & Kampfsystem
- Arenen & Matten
- Kampfreihenfolge
- Check-in Verwaltung
- Hauptscreen / Projektion
- TTS-Kampfansagen
- Billing & Rechnungen
- Mail-Templates
- Staff & RBAC
- Ranking-System
- Verbände
- Einstellungen
- System-Modul
1. Initial Setup
These steps are required once before the first tournament can be created.
Organiser Profile
Enter the master data under Settings → Organiser:
- Firmenname, Anschrift, Logo
- E-Mail, Telefon, Website
- Steuer-ID / USt-IdNr. (für Rechnungen)
Invoice Issuer
Enter the invoice data under Settings → Invoice Issuer. Diese werden auf allen generierten Rechnungen (PDF) gedruckt. Mehrere Invoice Issuer möglich (z.B. für verschiedene Standorte).
SMTP Configuration
Configure SMTP credentials under Settings → Mail. Use "Send test mail" to verify the connection.
Create Super Admin
On first run, install.php automatically creates a super admin. Additional admins can be created under System → Users.
2. Roles & Permissions (RBAC)
FightReg verwendet ein feingranulares Rollenmodell mit 67 Permission-Slugs in 14 Modulen. Jede Rolle hat eine individuell konfigurierbare Permission-Matrix.
System Roles (Default Roles)
| Rolle | Description | Typical Permissions |
|---|---|---|
| super_admin | Full access to everything — system-wide settings, all competitions, user management | Alle Permissions |
| admin | Event Admin — full control over assigned competitions | All except system.manage |
| trainer | Club representative — own participants, registrations, check-in | participants.*, checkin.perform, startlists.view |
| staff | Support staff on competition day — Check-in, Brackets, Ansagen | checkin.*, brackets.score, announce.* |
| billing | Accounting — billing area only | billing.* |
| athlete | Athlete — own data only, no admin functions | Own profile, bookings |
| spectator | Spectator / Guest — read-only access to public areas | competition.view, brackets.view |
Permission Modules Overview
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
Assign Staff to a Competition
- Wettkampf öffnen → Tab „Staff".
- Search for a user or create a new one (OTP invitation by email).
- Select role and optionally override individual permissions.
- Save — the user has access immediately.
3. Create Competition
- Navigation → Wettkämpfe → „+ Neuer Wettkampf".
- Enter basic data: name (DE/EN), date, time, venue, max. participants.
- Veranstalter und Invoice Issuer zuweisen.
- Set registration deadline (Deadline — danach kein Trainer-Selfservice mehr).
- Activate languages (DE, EN oder beides).
- Set tournament type for ranking: regional / national / international.
- Save — competition is now visible in the list.
Competition Dashboard
Im Dashboard eines Wettkampfs siehst du in Echtzeit: Angemeldete Schulen, TN-Zahlen, Check-in-Fortschritt, Bracket-Status und KPI-Charts.
4. Categories
Kategorien sind zweistufig aufgebaut: Hauptkategorien (z.B. „Kata") enthalten Unterkategorien (z.B. „Kata Einzel U12 weiblich").
Unterkategorie anlegen
- Wettkampf → Kategorien → „+ Kategorie".
- Name (DE + EN), Disziplin, Alters-Limits, Gewichts-Limits, Grad setzen.
- Bracket-Typ wählen: Single Elimination (KO) oder Round Robin (Jeder gegen Jeden).
- Max. TN pro Kategorie setzen (optional).
- 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:
- Kategorien → „Merge" wählen.
- Quell- und Zielkategorie auswählen.
- Merge bestätigen — TN werden in die Zielkategorie übertragen, Merge-History wird protokolliert.
Kategorie-Status
| Status | Bedeutung |
|---|---|
open | Anmeldungen möglich |
closed | Anmeldungen gesperrt (manuell oder nach Deadline) |
running | Wettkampf läuft gerade |
completed | PDF export available — Ergebnisse finalisiert |
5. Manage Schools
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:
- Wettkampf → Tab „Schulen".
- Schule mit Status pending suchen.
- „Bestätigen" klicken → Status wird zu confirmed.
- Trainer kann jetzt Teilnehmer anmelden.
Schul-Kürzel (für Athlete-ID)
Jede Schule hat ein 3-buchstabiges Kürzel (short_code), das Teil der Athlete-IDs ihrer Mitglieder wird. Das Kürzel muss systemweit eindeutig sein.
6. Participants
Admins können alle Teilnehmer aller Schulen einsehen und bearbeiten. Zusätzlich zu den Trainer-Funktionen stehen folgende Admin-Funktionen zur Verfügung:
| Funktion | Description |
|---|---|
| Bulk-Einladung | Alle Trainer einer Schule per Mail einladen |
| Teilnehmer zurücksetzen | Buchung stornieren und TN aus Kategorie entfernen |
| Walkover setzen | TN als kampflos gewonnen oder verloren markieren |
| Gastteilnehmer | Außerhalb der normalen Anmeldung einbuchen |
| Athlete-ID zuweisen | Bestehenden TN ohne ID eine ID vergeben (Bulk möglich) |
7. Competitor numbers
Competitor numbers are physical bibs — a stock of roughly two hundred, reused every year. FightReg manages the stock, not a running number.
Setting up the stock
- Settings → Event → Start numbers: define the range.
- States per number:
free,assigned,lost,damaged. A damaged bib stays in the stock and is never handed out.
Assigning — before check-in, not during it
- Administration → Clubs, toolbar on the right, button Start numbers.
- Batch assignment per club: one button at the club header covers everyone entered.
- At the bottom of the dialog, Listing — the sheet for the coach: who wears which number.
8. Start Lists
Startlisten zeigen die Reihenfolge der Teilnehmer pro Kategorie am Wettkampftag.
- Wettkampf → Startliste.
- Kategorie auswählen.
- Reihenfolge per Drag & Drop anpassen.
- Als PDF exportieren (Ausgabeliste für Kampfrichter).
9. Brackets & Fight System
Bracket generieren
- Wettkampf → Kategorie → „Bracket generieren".
- Typ wählen: Single Elimination (Standard-KO) oder Round Robin (Rundenspiel).
- Seeding-Reihenfolge kontrollieren (Drag & Drop der TN).
- 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
| Einstellung | Description |
|---|---|
| Loser-Bracket | Trostrunde aktivieren (3. Platz Kampf) |
| Freilos-Logik | Automatisches Freilos bei ungerader TN-Zahl |
| Ergebnis-Format | Punkte / Technik / Flags konfigurieren |
10. Arenas & Mats
Arenen sind Bereiche in der Halle (z.B. „Bereich A"), Matten/Ringe sind die konkreten Wettkampfflächen innerhalb einer Arena.
- Wettkampf → Arenen → „+ Arena anlegen".
- Arena benennen und Matten hinzufügen.
- Kategorien zu Matten zuordnen (Drag & Drop).
- Geschätzte Startzeiten pro Kategorie setzen.
- Status: pending → active → completed (auch manuell setzbar).
11. Venue map & mat occupancy
The venue map is the second route to the mats: the same data as the mat list, only spatial. Its own page and menu entry — the list view stays untouched and remains the route that reliably works on competition day.
Building the map
- Pick the aspect ratio of the hall, optionally add a background image.
- Drag mats from the tray on the left onto the map, rotate and resize them.
- Objects for everything that is not a mat: entrance, scales, awards, first aid, sales, toilets — with icon, image or sponsor banner.
- Save once. The editor does not write on every drag: rebuilding a hall would otherwise be fifty requests over venue Wi-Fi.
Where it appears on the day
- Projector — as an item in the screen queue, with live status per mat.
- Spectator phones — on the live page, their own mat in colour, the rest dimmed.
- Printed notice — for the entrance.
12. Fight Order
Die Kampfreihenfolge bestimmt, welcher Kampf wann auf welcher Matte stattfindet. Sie ist über alle Kategorien und Matten hinweg optimiert.
- Wettkampf → Kampfreihenfolge.
- Automatische Reihenfolge wird generiert (basierend auf Bracket-Stand und Arena-Zuordnung).
- Manuell per Drag & Drop umsortieren.
- Als PDF exportieren (Tagesplan für Kampfrichter).
- Reset möglich → automatische Reihenfolge wiederherstellen.
13. Contact modes & fight scoring
Light contact and full contact are distinct modes — not two names for the same thing. They differ in how results are recorded, which is why the scoring form follows the contact mode of the category.
What gets recorded
- Rounds — a score per round, not just a final result.
- Flags — the judges' decision per round.
- Judging panel per fight — who judged this fight is stored on the fight, not on the mat: panels change during the day.
- Competitor number — printed on the scoresheet so the paper can be matched without asking.
At the judging table
A dedicated monitor shows the current competitor and their score — a view for the table, not for the hall. It opens separately and takes no room on the projector.
14. Check-in Management
Check-in Dashboard
Das Check-in-Modul zeigt in Echtzeit den Eincheck-Status aller Teilnehmer. Suche nach Name, Athlete-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. Screens & projectors
A competition can have several screens, each with its own queue. The projector above the mat shows something different from the one in the entrance hall.
Setting up
- Settings → Main screen: create a screen and assemble its queue.
- Content: splash, current fight, bracket, standings, fight order, mat overview, venue map, sponsor page.
- Set the rotation interval per screen (default 30 seconds).
- Font size per screen — a projector in a large hall needs different values from a TV at the entrance.
Opening it
The screen runs without a login and is opened through a token in the address — whoever holds the link sees that one screen and nothing else. The machine at the projector needs no account.
16. Venue announcements
Announcements are no longer a series of single buttons but a queue: announcements line up, run in a defined order and observe breaks.
Setting up
- Settings → Event → Announce / AI: store the speech key. Without an own key the installation's key applies — a badge on the card shows which one is in effect.
- Choose a voice — per event, from the connected account.
- Maintain templates and pronunciation rules: “{firstname} {lastname} of {club} — please to mat {mat}”.
- Set breaks: between two announcements and around the fight call.
On the day
- Announcements come from the fight order or are triggered by hand.
- The order in the queue can be changed; urgent items go first.
- Recurring texts come from the cache — they do not cost a second time.
17. Fight calls & push notifications
The fight call reaches coaches and athletes on their own phone — in addition to the announcement in the hall, not instead of it.
Switching it on
- Push is off by default per event. Sending messages to coaches and athletes is a deliberate decision.
- It requires a VAPID key. Without one, every device subscription fails silently — check by requesting the public key.
- Calls can be triggered automatically from the fight order or by hand.
Proof of delivery
Delivery is logged per device — sent is not delivered, and without a log nobody notices an expired subscription.
18. Billing & Invoices
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 Athlete)
Rechnungsgenerierung
- Billing → Schule auswählen → „Rechnung generieren".
- Positionen prüfen (alle Buchungen als Rechnungspositionen).
- PDF wird via TCPDF erstellt — professionelles Layout mit Firmenlogo.
- Rechnung per Mail senden oder manuell als PDF herunterladen.
storage/invoices/ als PDF gespeichert und können jederzeit erneut heruntergeladen werden.Rechnungsstatus
| Status | Bedeutung |
|---|---|
| draft | Entwurf — noch nicht versendet |
| sent | Per Mail versendet |
| paid | Bezahlt (manuell markierbar) |
| cancelled | Storniert |
19. Sponsors
Under Settings → Sponsors. There are three placements, booked separately — the same company can run on one and not on another.
| Placement | What is sold | Record |
|---|---|---|
| Banner | Space: how often the logo appears per pass | no — a standing promise needs none |
| Spectator full screen | Time: seconds per impression, with a minimum gap | yes, per impression |
| Projector | Time, as its own page in the queue | yes, per impression |
20. Printing: print agent, cards, lists
At the check-in desk every print dialog is in the way. The print agent is a small program on the workstation's Windows machine; the application hands it a finished PDF and it prints without a preview window.
Setting it up
- Download and install the agent. It is code-signed, so Windows SmartScreen stays quiet.
- Map printer roles in the agent: invoice, receipt, certificate, participant card. The application only ever knows the role, never the device name — replacing a printer is then a change at the workstation, not in the software.
- Several profiles per workstation are possible (A4 and receipt printer side by side).
What gets printed
- Participant card — 85 × 90 mm, two by three on A4, or from a receipt printer on an 80 mm roll. With athlete ID, competitor number and QR code.
- Invoices and receipts — with the design of the issuing entity.
- Certificates — individually, per category or for a whole club.
- Lists and notices — start lists, fight order, venue map.
21. Mail Templates & CI
Alle automatisch versendeten Mails können individuell gestaltet werden — pro Wettkampf oder global.
Verfügbare Mail-Typen
| Typ | Auslöser |
|---|---|
| invitation | Trainer/Staff-Einladung (OTP-Link) |
| booking_confirmation | Buchungsbestätigung für Trainer |
| password_reset | Passwort-Reset-Link |
| invoice | Rechnung per Mail |
| participant_invite | Einladung an Athleteen (Athlete-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 Management
Für jeden Wettkampf kann ein eigenes Staff-Team mit individuellen Rechten zusammengestellt werden.
- Wettkampf → Staff → Benutzer suchen oder neu anlegen.
- Rolle auswählen (aus globaler Rollenliste).
- Optional: Einzelne Permissions für diesen Benutzer in diesem Wettkampf überschreiben.
- Einladungsmail wird automatisch versendet (OTP-Einmallink).
23. Corner coaches
A corner coach looks after athletes on competition day without seeing the club's invoice. They hold the trainer's rights without billing.view — they coach, they do not pay.
- Created by the trainer, not by another coach.
- A coach may accompany two clubs — which is why they hang off their own assignment rather than the trainer record.
- It is a base role, not a competition role: they do not appear under a competition's "members".
24. Ranking System
FightReg berechnet automatisch Ranking-Punkte, wenn ein Bracket abgeschlossen wird.
Punkte-Konfiguration
- Wettkampf → Ranking-Einstellungen.
- Turnier-Typ festlegen: regional (Faktor 1.0), national (1.5), international (2.0).
- Punkte pro Platzierung definieren (1. Platz = 100, 2. Platz = 70 usw.).
- Bei Bracket-Abschluss: Punkte werden automatisch in
athlete_rankingsgeschrieben.
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. Federations
Verbände können Schulen und Wettkämpfe organisieren und eigene Ranglisten führen.
| Funktion | Description |
|---|---|
| Verband anlegen | Name, Logo, Kontakt, übergeordneter Verband (Hierarchie) |
| Schulen zuordnen | Vereine einem Verband zuweisen |
| Wettkämpfe verknüpfen | Turniere einem Verband zuordnen (für Verbandsranking) |
| Verbandsranking | Ranking nur innerhalb der Verbands-Wettkämpfe |
| Verbands-Admins | Separate Admins für Verbandsebene (Sprint 43+) |
26. Settings
| Bereich | Inhalt | Berechtigung |
|---|---|---|
| Allgemein | Timezone, Währung, Sprachen | settings.edit |
| Veranstalter | Firmenname, Logo, Adresse | organizer.edit |
| SMTP-Zugangsdaten, Test-Mail | settings.mail | |
| Mail-Design | CI-Farben, Logo für Mails | settings.mail |
| KI-Assistent | API-Keys (Anthropic/OpenAI), Chat aktivieren | settings.ai |
| TTS | ElevenLabs API-Key, Stimme, Templates | announce.settings |
| Übersetzungen | Lokale Texte anpassen, Übersetzereinladungen | translations.* |
27. Access: self-registration & one-time passcode
Self-registration
Under Settings → Platform. When off, the register button disappears from the landing page and the organiser creates accounts. When on, clubs register themselves.
One-time passcode as a second factor
Also under Platform: enforced for everyone or optional. If the schema is not yet migrated, login behaves as before — here a failure must not lock anyone out. Same pattern as self-registration with the opposite sign, and both directions are deliberate.
28. Translations
Eleven languages. The language files are the base and the database layers over them — anything changed on the translation page takes effect immediately and survives every deployment.
- Translation happens on the live system, not on a copy.
- That work therefore lives in the production database first and should be exported back into the language files regularly.
- Translators can be invited without an account of their own.
29. Demo branch
For demonstrations and trials there are demo competitions with their own accounts. A demo account sees demo competitions only.
30. System Module (Super-Admin)
Das System-Modul ist nur für Super-Admins sichtbar (system.manage-Permission).
| Tab | Inhalt |
|---|---|
| Benutzer | Alle Benutzer auflisten, deaktivieren, löschen, neue anlegen |
| Rollen | Systemrollen und ihre Permission-Matrix bearbeiten |
| RBAC-Audit | Konsistenz-Check: Code-Permissions vs. DB-Permissions |
| Chat-Logs | KI-Assistent-Protokoll einsehen und löschen |
| Audit-Log | Alle Admin-Aktionen nachverfolgen |
| Service Worker | Cache-Version einsehen, Force-Update auslösen |
31. AI Settings
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.