# Fachkonzept und Epic-Backlog fuer das neue Turnierportal

## 1. Ziel dieses Dokuments
Dieses Dokument beschreibt das fachliche Zielbild fuer eine neue Plattform unter `anmeldung.turnieranmeldung.de`. Es dient als Mischung aus Fachkonzept, Pflichtenheft-Grundlage und priorisiertem Epic-Backlog.

Das Dokument basiert auf:

1. der Analyse der bestehenden oeffentlichen Website
2. der Analyse des Joomla-Backends
3. der Analyse von `Community Builder`
4. der Analyse der `Fabrik`-Komponente
5. der Analyse der lokalen Turnierverwaltungssoftware und ihrer Portallogik

## 2. Ausgangslage
Die heutige Loesung ist fachlich auf mehrere Systeme verteilt:

1. Joomla als inhaltliche Huelle und Administrationsrahmen
2. Community Builder fuer Benutzer-, Vereins- und Profillogik
3. Fabrik fuer Datenmasken und Anmeldetabellen
4. redaktionelle Joomla-Beitraege fuer Prozesserklaerungen
5. externe Turniersoftware fuer die eigentliche Turnierlogik

Daraus ergeben sich zentrale Probleme:

1. die Kernlogik liegt nicht an einem Ort
2. Anmeldeprozesse sind fachlich gewachsen und schwer nachvollziehbar
3. Sonderfaelle sind ueber viele Spezialfelder modelliert
4. Ausschreibung, Anmeldung, Zeitplan und Live-Betrieb greifen nicht auf ein einheitliches Produktmodell zu
5. die technische Basis mit Joomla 3.10 und PHP 7.4 ist veraltet

## 3. Fachliche Leitidee
Das neue System soll keine CMS-Erweiterung mehr sein, sondern eine eigenstaendige Turnierplattform.

Leitprinzipien:

1. Eine Datenquelle fuer Turnier, Klassen, Meldungen, Dokumente und Live-Betrieb
2. Rollenorientierte Oberflaechen statt universeller Admin-Masken
3. Starts als zentrales Modell statt Sonderfelder pro Disziplin
4. Regeln, Fristen und Dokumente werden aus dem Turniermodell abgeleitet
5. Sonderfaelle werden bewusst modelliert und nicht improvisiert

## 4. Benutzerrollen

### 4.1 Vereinsvertreter
Aufgaben:

1. Sportler pflegen
2. Starts melden
3. Partner und Teams zusammenstellen
4. Freigaben fuer Fremdstarts verwalten
5. Rechnungen und Rueckfragen bearbeiten

Bedarf:

1. sehr klare Benutzerfuehrung
2. deutliche Validierungen
3. gute Such- und Filterfunktionen
4. verstaendliche Fehlermeldungen
5. sichere Entwurfs- und Freigabelogik

### 4.2 Turnierbuero
Aufgaben:

1. Turniere anlegen
2. Klassen und Regelwerk konfigurieren
3. Vereine freischalten
4. Meldungen pruefen
5. Ausschreibung pflegen
6. Rechnungen und Nachmeldungen bearbeiten
7. Zeitplan und Ehrengaben vorbereiten

Bedarf:

1. belastbare Pruef- und Adminansichten
2. Aenderungshistorie
3. strukturierte Ausnahmebehandlung
4. Export- und Kommunikationswerkzeuge

### 4.3 Veranstalter
Aufgaben:

1. Turnier organisatorisch vorbereiten
2. Ressourcen, Hallen, Ehrengaben und Drucksachen planen
3. Kennzahlen und Status ueberblicken

Bedarf:

1. Dashboards
2. Planungsberichte
3. Medaillen- und Ehrengabenprognosen
4. Vergleich zwischen Ausschreibung und Realitaet

### 4.4 Live- und Flaechenteam
Aufgaben:

1. Flaechenstatus anzeigen
2. aktuelle und naechste Klassen steuern
3. vereinsbezogene Informationen sichtbar machen
4. Ergebnisse publizieren

Bedarf:

1. robuste, reduzierte Oberflaechen
2. gute mobile Nutzung
3. moeglichst wenig Klicktiefe

## 5. Fachobjekte des Zielsystems

### 5.1 Tournament
Beschreibt das konkrete Turnier.

Enthaelt:

1. Name
2. Turniertyp
3. Ort
4. Start- und Enddatum
5. Meldeschluss
6. Nachmeldeschluss
7. Status
8. Regelset-Version
9. Dokumentstatus

### 5.2 TournamentFormat
Beschreibt die fachliche Variante des Turniers.

Beispiele:

1. Standard-Poomsae
2. Classic
3. Online-Turnier
4. Mischformat

### 5.3 Competition
Beschreibt die Disziplin oder den Wettkampfbereich.

Beispiele:

1. Poomsae Einzel
2. Poomsae Paar
3. Poomsae Team
4. Family
5. Freestyle Einzel
6. Freestyle Team
7. Para

### 5.4 ClassDefinition
Beschreibt die konkrete Wettkampfklasse.

Enthaelt:

1. Bezug zu Competition
2. Alters- oder Jahrgangsregeln
3. Geschlechtsregeln
4. Graduierungsgrenzen
5. Leistungsklasse
6. Teamgroesse
7. Rundenlogik
8. Zeitlogik
9. Ehrengabenlogik

### 5.5 Athlete
Sportlerstammdaten.

Enthaelt:

1. Name
2. Geburtsdatum
3. Geschlecht
4. Graduierung
5. Heimatverein
6. optionale Freigaben und Kennzeichen

### 5.6 Entry
Ein Start in einer Klasse.

Wichtig:

1. Eine Anmeldung ist kein loses Formular, sondern ein fachlicher Start.
2. Ein Start kann 1 bis n Teilnehmer enthalten.

### 5.7 EntryParticipant
Zuordnung eines Sportlers zu einem Start.

Enthaelt:

1. Sportler
2. Rolle innerhalb des Starts
3. Heimatverein
4. Meldverein
5. Freigabestatus
6. Zahlungszuordnung

### 5.8 ScheduleBlock
Ein geplanter Zeit- oder Klassenblock.

Enthaelt:

1. Flaeche
2. Startzeit
3. Endzeit
4. Bezug auf Klasse oder Sonderblock
5. Konfliktstatus

### 5.9 AwardPlan
Planung von Medaillen, Pokalen und Ehrengaben.

### 5.10 PublishedDocument
Versionierte Dokumente wie Ausschreibung, Rechnung, Coachmappe oder Zeitplan.

## 6. Muss-Funktionen

### 6.1 Benutzer- und Vereinsportal
1. Vereine koennen mehrere Ansprechpartner anlegen
2. Rechte koennen je Benutzer klar vergeben werden
3. Vereine sehen nur ihre Daten
4. bestehende Konten muessen uebernommen werden koennen

### 6.2 Sportlerstamm
1. Sportler einmalig pflegen
2. Suche und Dublettenwarnung
3. Historie und Aenderungsnachweis
4. Vereinswechsel und Freigaben dokumentieren

### 6.3 Turnieranlage
1. Turniertyp waehlen
2. Regelset laden
3. Klassen generieren
4. Fristen festlegen
5. Ausschreibung mit Turnierdaten synchron halten

### 6.4 Meldelogik
1. Einzel, Paar, Team, Family und Freestyle modellieren
2. Fremdstart- und Partnerfreigaben pruefen
3. automatische Klassenvorschlaege
4. harte und weiche Validierungen
5. Nachmeldelogik

### 6.5 Dokumente
1. Ausschreibung
2. Anmeldebestaetigung
3. Rechnung
4. Turnieruebersicht
5. Vereinsberichte
6. Coachmappe

### 6.6 Zeitplanung
1. Lauf- und Klassenplanung
2. Beruecksichtigung von Runden und Formenanzahl
3. Zeit pro Starter
4. Ehrengabenzeit
5. Konflikterkennung bei Doppelstarts

### 6.7 Live-Portal
1. Flaechenstatus
2. Coachsicht je Verein
3. Ergebnisse
4. PDF-Berichte

## 7. Soll-Funktionen
1. Lernwerte aus historischen Turnieren
2. PDF-Zeitplanimport
3. mobil optimierte Live-Oberflaechen
4. differenzierte Kommunikationsworkflows
5. erweiterte Dashboards

## 8. Kann-Funktionen
1. Self-Service fuer Dokumentvorlagen
2. erweiterte Statistikmodule
3. Vereinsinterne Freigabeketten
4. offene API fuer Drittanbieter

## 9. Sonderfaelle

### 9.1 Classic
Muss als echter Turniertyp modelliert werden.

### 9.2 Online-Turnier
Muss folgende Punkte enthalten:

1. Video-Link oder Upload
2. Pruefstatus
3. ggf. mehrere Videofelder
4. Dokumentation von Freigabe oder Ablehnung

### 9.3 Fremdstarts
Muss fachlich sauber abbilden:

1. Heimatverein
2. Meldverein
3. Freigabe
4. Zahlungszuordnung

### 9.4 Mehrere Runden
Muss enthalten:

1. Formenanzahl Vorrunde
2. Formenanzahl Halbfinale
3. Formenanzahl Finale
4. Zeitwirkung auf den Ablauf

## 10. Benutzerfuehrung

### 10.1 Leitlinien
1. Formulare fuehren den Benutzer
2. das System erklaert Regeln im Kontext
3. Fehlermeldungen sind freundlich und konkret
4. Help-Texte sind fachlich verstaendlich

### 10.2 Beispiele
1. Bei unpassender LK wird erklaert, warum der Start nicht zulaessig ist
2. Bei fehlender Fremdstartfreigabe wird die naechste benoetigte Aktion genannt
3. Bei Nachmeldung wird Zuschlag und Frist transparent angezeigt

## 11. Sicherheit und Betrieb
1. Rollen- und Rechtekonzept pro Turnier und Verein
2. Audit-Log fuer fachlich relevante Aenderungen
3. keine fachliche Kernlogik mehr in Joomla-Plugins
4. Trennung von Weboberflaeche und Integrationsschicht
5. sichere Verwaltung von Zugangsdaten

## 12. Migrationsstrategie

### 12.1 Zu uebernehmende Daten
1. Vereine
2. Benutzer
3. Sportler
4. Turniere
5. Klassen
6. Meldungen
7. Dokumentvorlagen

### 12.2 Reihenfolge
1. neues Vereins- und Benutzerportal
2. Sportlerstamm
3. Turnieranlage
4. Meldelogik
5. Dokumente
6. Zeitplan
7. Live-Portal

## 13. Epics

### Epic 1: Identity und Vereinsorganisation
User Stories:

1. Als Vereinsadministrator moechte ich Benutzerrollen vergeben, damit nicht jede Person alles sehen oder aendern kann.
2. Als Turnierbuero moechte ich Vereinskonten pruefen und freischalten, damit nur berechtigte Vereine melden koennen.

### Epic 2: Sportlerstamm
User Stories:

1. Als Vereinsvertreter moechte ich einen Sportler fuer mehrere Turniere wiederverwenden, damit ich Stammdaten nicht jedes Mal neu eingeben muss.
2. Als Turnierbuero moechte ich moegliche Dubletten erkennen, damit keine widerspruechlichen Datensaetze entstehen.

### Epic 3: Turnieranlage
User Stories:

1. Als Turnierbuero moechte ich einen Turniertyp waehlen, damit passende Regeln und Klassen automatisch vorbereitet werden.
2. Als Veranstalter moechte ich Hallen- und Ablaufdaten strukturiert erfassen, damit Zeitplan und Dokumente darauf aufbauen koennen.

### Epic 4: Meldelogik
User Stories:

1. Als Vereinsvertreter moechte ich passende Wettkampfklassen vorgeschlagen bekommen, damit Fehleingaben sinken.
2. Als Vereinsvertreter moechte ich Team- oder Paarstarts mit Fremdstartern sauber abbilden, damit Partnerstarts korrekt bearbeitet werden.

### Epic 5: Zeitplan und Konflikte
User Stories:

1. Als Turnierbuero moechte ich aus den realen Klassen- und Startdaten einen ersten Zeitplanentwurf erhalten, damit ich schneller planen kann.
2. Als Planer moechte ich Konflikte bei Doppelstarts sehen, damit Sportler nicht gleichzeitig auf mehreren Flaechen stehen.

### Epic 6: Ehrengaben und Dokumente
User Stories:

1. Als Veranstalter moechte ich aus den Klassen und Ausschreibungsregeln einen Ehrengabenbedarf erhalten, damit ich rechtzeitig bestellen kann.
2. Als Turnierbuero moechte ich Dokumente aus denselben Daten generieren, damit Texte und echte Turnierlogik nicht auseinanderlaufen.

### Epic 7: Live-Portal
User Stories:

1. Als Coach moechte ich nur die Starts meines Vereins sehen, damit ich mich in der Halle schnell orientieren kann.
2. Als Zuschauer moechte ich aktuelle Flaechen- und Ergebnisinformationen sehen, damit das Turnier transparent wirkt.

## 14. Release-Empfehlung

### V1
1. Vereine
2. Benutzer
3. Sportler
4. Turnieranlage
5. Meldungen fuer Standardfaelle
6. Dokumente und Rechnungen

### V2
1. Sonderfaelle
2. Online-Modus
3. Fremdstartfreigaben
4. Zeitplan
5. Konflikterkennung

### V3
1. Live-Portal
2. Coachmappe
3. Ehrengabenplanung
4. Lernwerte
5. tiefe API-Anbindung

## 15. Schlussbewertung
Ein reines Joomla-Upgrade reicht fachlich nicht aus. Das neue Zielsystem sollte als eigenstaendige Turnierplattform gebaut werden, die die bisher verteilte Fachlogik aus Joomla, Community Builder, Fabrik und externer Verwaltungssoftware zusammenfuehrt.
