docs: massive restructuring of documentation, development guides and agent playbooks
This commit is contained in:
@@ -0,0 +1,241 @@
|
||||
-- Database Schema Draft for Meldestelle (Offline-First)
|
||||
-- Dialect: SQLite (compatible with SQLDelight)
|
||||
-- Status: Draft / Proposal
|
||||
-- Based on: OEPS Legacy Spec V2.4 & Domain Analysis
|
||||
|
||||
-- ==================================================================
|
||||
-- 1. CORE INFRASTRUCTURE (Sync & Audit)
|
||||
-- ==================================================================
|
||||
-- Every table should ideally have these fields, but for brevity
|
||||
-- they are implied or added where critical.
|
||||
-- id: TEXT NOT NULL PRIMARY KEY (UUID)
|
||||
-- created_at: INTEGER NOT NULL (Epoch Millis)
|
||||
-- updated_at: INTEGER NOT NULL (Epoch Millis)
|
||||
-- version: INTEGER NOT NULL (Optimistic Locking / Sync Counter)
|
||||
-- is_deleted: INTEGER NOT NULL DEFAULT 0 (Soft Delete)
|
||||
|
||||
-- ==================================================================
|
||||
-- 2. MASTER DATA (Stammdaten)
|
||||
-- ==================================================================
|
||||
|
||||
-- Akteure: Personen und Organisationen
|
||||
-- Covers: Reiter, Richter, Besitzer, Vereine
|
||||
CREATE TABLE actor (
|
||||
id TEXT NOT NULL PRIMARY KEY,
|
||||
type TEXT NOT NULL, -- 'PERSON', 'ORGANIZATION'
|
||||
|
||||
-- Display Data
|
||||
first_name TEXT, -- NULL for Organizations
|
||||
last_name TEXT NOT NULL, -- Name or Org-Name
|
||||
|
||||
-- OEPS Specifics (Legacy Spec)
|
||||
oeps_id TEXT, -- 'Satznummer' (6 digits for Person, 4 for Club)
|
||||
oeps_category TEXT, -- 'Verein', 'Reiter', 'Richter'
|
||||
|
||||
-- Licenses & Status
|
||||
license_code TEXT, -- e.g. 'R1', 'RD3'
|
||||
has_start_card INTEGER NOT NULL DEFAULT 0, -- Boolean: Paid annual fee?
|
||||
is_locked INTEGER NOT NULL DEFAULT 0, -- Boolean: Sperrliste?
|
||||
|
||||
-- Contact & Meta
|
||||
nationality TEXT NOT NULL DEFAULT 'AUT', -- ISO 3-Letter
|
||||
contact_json TEXT, -- Address, Phone, Email
|
||||
|
||||
-- Sync Meta
|
||||
created_at INTEGER NOT NULL,
|
||||
updated_at INTEGER NOT NULL,
|
||||
version INTEGER NOT NULL DEFAULT 1
|
||||
);
|
||||
|
||||
CREATE INDEX idx_actor_oeps_id ON actor(oeps_id);
|
||||
CREATE INDEX idx_actor_name ON actor(last_name, first_name);
|
||||
|
||||
|
||||
-- Pferde
|
||||
CREATE TABLE horse (
|
||||
id TEXT NOT NULL PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
|
||||
-- Identification
|
||||
oeps_id TEXT, -- 'Satznummer' (10 digits) - CRITICAL for Export
|
||||
head_number_permanent TEXT, -- 'Kopfnummer' (e.g. A123)
|
||||
life_number TEXT, -- 'Lebensnummer' (Zucht)
|
||||
fei_id TEXT,
|
||||
|
||||
-- Details
|
||||
birth_year INTEGER,
|
||||
gender TEXT, -- 'M', 'W', 'G' (Gelding/Wallach)
|
||||
color TEXT,
|
||||
sire_name TEXT, -- Vater (Denormalized for search)
|
||||
dam_name TEXT, -- Mutter
|
||||
|
||||
-- Owner Link
|
||||
owner_id TEXT, -- FK to actor.id
|
||||
|
||||
-- Status
|
||||
is_locked INTEGER NOT NULL DEFAULT 0, -- Sperrliste
|
||||
|
||||
-- Sync Meta
|
||||
created_at INTEGER NOT NULL,
|
||||
updated_at INTEGER NOT NULL,
|
||||
version INTEGER NOT NULL DEFAULT 1
|
||||
);
|
||||
|
||||
CREATE INDEX idx_horse_oeps_id ON horse(oeps_id);
|
||||
CREATE INDEX idx_horse_head_num ON horse(head_number_permanent);
|
||||
CREATE INDEX idx_horse_name ON horse(name);
|
||||
|
||||
-- ==================================================================
|
||||
-- 3. EVENT STRUCTURE
|
||||
-- ==================================================================
|
||||
|
||||
CREATE TABLE event (
|
||||
id TEXT NOT NULL PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
start_date INTEGER NOT NULL, -- Epoch Day
|
||||
end_date INTEGER NOT NULL,
|
||||
location TEXT,
|
||||
organizer_id TEXT NOT NULL, -- FK to actor.id
|
||||
|
||||
status TEXT NOT NULL DEFAULT 'PLANNING' -- PLANNING, ACTIVE, ARCHIVED
|
||||
);
|
||||
|
||||
CREATE TABLE tournament (
|
||||
id TEXT NOT NULL PRIMARY KEY,
|
||||
event_id TEXT NOT NULL REFERENCES event(id),
|
||||
|
||||
-- OEPS Spec
|
||||
oeps_number TEXT NOT NULL, -- 5 digits (e.g. 21001)
|
||||
category TEXT, -- e.g. 'CSN-A'
|
||||
ruleset TEXT NOT NULL DEFAULT 'OETO', -- 'OETO', 'FEI'
|
||||
|
||||
-- Sync Meta
|
||||
updated_at INTEGER NOT NULL
|
||||
);
|
||||
|
||||
-- Bewerbe (Competitions)
|
||||
-- Note: If a competition is split into 2 departments (Abteilungen),
|
||||
-- we create 2 rows here to match the OEPS 'B-Satz' logic.
|
||||
CREATE TABLE competition (
|
||||
id TEXT NOT NULL PRIMARY KEY,
|
||||
tournament_id TEXT NOT NULL REFERENCES tournament(id),
|
||||
|
||||
-- Identification
|
||||
code_internal TEXT NOT NULL, -- '01', '02' (2 digits)
|
||||
code_official TEXT, -- '001' (3 digits, optional)
|
||||
division_id INTEGER NOT NULL DEFAULT 0, -- 'Abteilung' (0=None, 1=1st, 2=2nd)
|
||||
|
||||
-- Description
|
||||
title TEXT NOT NULL,
|
||||
category TEXT, -- e.g. 'LM', 'S*'
|
||||
discipline TEXT NOT NULL, -- 'D', 'S', 'C' (Dressage, Jumping, Combined)
|
||||
|
||||
-- Rules & Scoring
|
||||
scoring_method TEXT NOT NULL, -- 'A0', 'C', 'DRESSAGE_PERCENT'
|
||||
start_fee INTEGER NOT NULL DEFAULT 0, -- In Cents
|
||||
|
||||
-- State
|
||||
status TEXT NOT NULL DEFAULT 'OPEN', -- OPEN, CLOSED_FOR_ENTRIES, RUNNING, FINISHED, SIGNED_OFF
|
||||
|
||||
-- Sync Meta
|
||||
updated_at INTEGER NOT NULL
|
||||
);
|
||||
|
||||
CREATE INDEX idx_comp_tournament ON competition(tournament_id);
|
||||
|
||||
-- ==================================================================
|
||||
-- 4. SPORT & PROCESS
|
||||
-- ==================================================================
|
||||
|
||||
-- Nennungen (Entries)
|
||||
-- Represents the intent to start.
|
||||
CREATE TABLE entry (
|
||||
id TEXT NOT NULL PRIMARY KEY,
|
||||
competition_id TEXT NOT NULL REFERENCES competition(id),
|
||||
|
||||
-- The Pair
|
||||
horse_id TEXT NOT NULL REFERENCES horse(id),
|
||||
rider_id TEXT NOT NULL REFERENCES actor(id),
|
||||
|
||||
-- Financials
|
||||
responsible_person_id TEXT REFERENCES actor(id), -- Who pays?
|
||||
fee_agreed INTEGER NOT NULL, -- In Cents (Snapshot of price at entry time)
|
||||
payment_status TEXT NOT NULL DEFAULT 'PENDING', -- PENDING, PAID, WAIVED
|
||||
|
||||
-- Validation Override (The "Human Factor")
|
||||
validation_status TEXT NOT NULL DEFAULT 'OK', -- OK, WARNING, BLOCKED
|
||||
override_comment TEXT, -- Why was this allowed despite warning?
|
||||
|
||||
-- Sync Meta
|
||||
created_at INTEGER NOT NULL,
|
||||
updated_at INTEGER NOT NULL
|
||||
);
|
||||
|
||||
CREATE INDEX idx_entry_comp ON entry(competition_id);
|
||||
CREATE INDEX idx_entry_rider ON entry(rider_id);
|
||||
|
||||
-- Startliste (Start Order)
|
||||
-- Subset of entries that actually start.
|
||||
CREATE TABLE start_list_entry (
|
||||
id TEXT NOT NULL PRIMARY KEY,
|
||||
entry_id TEXT NOT NULL REFERENCES entry(id),
|
||||
|
||||
-- Ordering
|
||||
start_order INTEGER, -- 1, 2, 3...
|
||||
start_time_planned INTEGER, -- Epoch Millis (optional)
|
||||
|
||||
-- Tournament Specifics
|
||||
head_number_event TEXT, -- Startnummer am Turnier (kann von A123 abweichen)
|
||||
|
||||
-- Status
|
||||
status TEXT NOT NULL DEFAULT 'READY', -- READY, STARTED, DNS (Did Not Start)
|
||||
|
||||
UNIQUE(entry_id)
|
||||
);
|
||||
|
||||
-- Ergebnisse (Results)
|
||||
CREATE TABLE result (
|
||||
id TEXT NOT NULL PRIMARY KEY,
|
||||
start_list_entry_id TEXT NOT NULL REFERENCES start_list_entry(id),
|
||||
|
||||
-- The Outcome
|
||||
rank INTEGER, -- 1, 2, 3... (NULL if eliminated)
|
||||
|
||||
-- Scoring Details (Polymorphic based on Competition Type)
|
||||
points_jump_faults DECIMAL(5,2), -- Springfehler
|
||||
time_taken_ms INTEGER, -- Zeit in Millisekunden
|
||||
score_dressage_percent DECIMAL(5,3), -- 72.500
|
||||
score_dressage_total DECIMAL(6,2), -- Summe Punkte
|
||||
|
||||
-- Status Flags
|
||||
classification TEXT NOT NULL DEFAULT 'OK', -- OK, EL (Elim), RET (Retired), DIS (Disq)
|
||||
|
||||
-- Detailed Marks (JSON)
|
||||
-- e.g. { "judge_C": 7.5, "judge_H": 7.2, "obstacles": [...] }
|
||||
details_json TEXT,
|
||||
|
||||
-- Money
|
||||
prize_money INTEGER DEFAULT 0, -- In Cents
|
||||
|
||||
-- Audit
|
||||
updated_by_user_id TEXT,
|
||||
updated_at INTEGER NOT NULL
|
||||
);
|
||||
|
||||
CREATE INDEX idx_result_starter ON result(start_list_entry_id);
|
||||
|
||||
-- ==================================================================
|
||||
-- 5. AUDIT LOG (NFR-07)
|
||||
-- ==================================================================
|
||||
|
||||
CREATE TABLE audit_log (
|
||||
id TEXT NOT NULL PRIMARY KEY,
|
||||
entity_type TEXT NOT NULL, -- 'RESULT', 'ENTRY'
|
||||
entity_id TEXT NOT NULL,
|
||||
action TEXT NOT NULL, -- 'CREATE', 'UPDATE', 'DELETE'
|
||||
|
||||
user_id TEXT,
|
||||
timestamp INTEGER NOT NULL,
|
||||
|
||||
changes_json TEXT -- { "score_old": 7.0, "score_new": 7.5 }
|
||||
);
|
||||
@@ -0,0 +1,36 @@
|
||||
# ToDo-Liste: Domain Workshop (Kick-off)
|
||||
|
||||
**Datum:** Heute Abend
|
||||
**Teilnehmer:** Owner (Fachexperte), 🏗️ [Lead Architect], 📜 [ÖTO/FEI Rulebook Expert]
|
||||
|
||||
## Ziel des Abends
|
||||
|
||||
Start der fachlichen Klärung (Phase 3). Definition des ersten Kernprozesses, um die Basis für die Feature-Entwicklung zu
|
||||
schaffen.
|
||||
|
||||
## Agenda & ToDos
|
||||
|
||||
### 1. Auswahl des Einstiegs-Themas
|
||||
|
||||
*Entscheidung treffen, mit welchem Bounded Context wir starten:*
|
||||
|
||||
- [ ] **Option A: Stammdaten & Akteure**
|
||||
*Was definiert ein Pferd, einen Reiter, einen Verein? (Fokus auf OEPS-IDs, Lizenzen, Startkarten).*
|
||||
- [ ] **Option B: Turnier- & Bewerbsstruktur**
|
||||
*Wie ist ein Turnier aufgebaut? (Kategorien, Bewerbe, Abteilungen, Richtverfahren).*
|
||||
- [ ] **Option C: Der Nennungsprozess**
|
||||
*Der Kern-Workflow: Wie meldet ein Reiter ein Pferd an? Welche Validierungen (Sperrlisten, Lizenzen) greifen hier?*
|
||||
|
||||
### 2. Durchführung des Workshops (am gewählten Thema)
|
||||
|
||||
- [ ] **Prozess-Skizzierung:** Der Owner beschreibt den fachlichen Ablauf aus der Praxis.
|
||||
- [ ] **Regel-Check:** Der 📜 *[ÖTO/FEI Rulebook Expert]* prüft den skizzierten Ablauf live gegen das hinterlegte
|
||||
ÖTO-2026-Regelwerk und weist auf Edge-Cases hin.
|
||||
- [ ] **Modellierung:** Der 🏗️ *[Lead Architect]* leitet daraus die ersten Entwürfe für Aggregates und Entitäten ab.
|
||||
|
||||
### 3. Abschluss & Übergabe
|
||||
|
||||
- [ ] **Festhalten der Ergebnisse:** Dokumentation der getroffenen Definitionen im Ordner
|
||||
`docs/03_Domain/01_Core_Model/`.
|
||||
- [ ] **Übergabe an QA & UX:** Auftrag an den *QA Specialist* (für Gherkin-Szenarien) und den *UI/UX Designer* (für
|
||||
Wireframes) basierend auf den Ergebnissen des Abends erteilen.
|
||||
@@ -0,0 +1,102 @@
|
||||
# Ergebnisse Domain Workshop (17.03.2026)
|
||||
|
||||
**Teilnehmer:** Owner, 🏗️ [Lead Architect], 📜 [ÖTO/FEI Rulebook Expert], 👷 [Backend Developer], 🎨 [Frontend Expert],
|
||||
🖌️ [UI/UX Designer]
|
||||
|
||||
## 📜 [ÖTO/FEI Rulebook Expert] - Erkenntnisse
|
||||
|
||||
1. **Autorität des Turnierbeauftragten (TBA):**
|
||||
Die Analyse der ÖTO (§ 24, § 25) bestätigt die Aussage des Owners: Der TBA ist die höchste Instanz vor Ort und kann
|
||||
in Absprache mit dem Veranstalter von der Ausschreibung abweichende, für alle verbindliche Entscheidungen treffen.
|
||||
Das System muss daher bei Regelkonflikten immer einen manuellen "Override" durch die Meldestelle ermöglichen.
|
||||
|
||||
2. **Gebührenlogik & Abrechnung (Das "Hansi"-Szenario):**
|
||||
Die Komplexität der Gebührenstruktur wurde stark verdeutlicht. Es muss klar unterschieden werden zwischen:
|
||||
* **Nenngeld** (Grundgebühr, oft im Voraus via ZNS bezahlt)
|
||||
* **Startgeld** (pro Bewerb)
|
||||
* **Nachnenngebühren** (Aufschlag bei später Nennung, oft verhandelbar)
|
||||
* **Nebengebühren** (Sportförderbeitrag, Tierwohl-Euro - pro Start fällig)
|
||||
Die Möglichkeit für den Veranstalter, auf Gebührenanteile (z.B. Nachnenngebühr) zu verzichten, muss im
|
||||
Abrechnungssystem einfach abbildbar sein.
|
||||
|
||||
3. **Qualifikation von Funktionären:**
|
||||
Die Qualifikationen für Richter und Parcoursbauer sind in der Datei `RICHT01.DAT` der ZNS-Daten enthalten. Diese
|
||||
Qualifikationen müssen gegen die Anforderungen des jeweiligen Bewerbs (Klasse, Sparte) validiert werden.
|
||||
|
||||
## 👷 [Backend Developer] - Erkenntnisse
|
||||
|
||||
1. **Bounded Context "Billing & Accounting":**
|
||||
Die Kassenführung ist zu komplex und hat zu viele eigene Regeln, um sie eng mit dem sportlichen Kern (
|
||||
Nennung/Ergebnis) zu koppeln. Wir werden dies als separaten Bounded Context mit eigenen Services und einem
|
||||
dedizierten Datenmodell für Konten, Transaktionen und Gebühren umsetzen. Die Abrechnung muss kontobasiert pro Zahler
|
||||
erfolgen (nicht nur pro Reiter).
|
||||
|
||||
2. **Implementierung "Nennungstausch":**
|
||||
Der Tausch einer Nennung (Reiter/Pferd) wird nicht als reines Storno + Neu-Buchung implementiert, sondern als *
|
||||
*Transfer-Operation**. Bereits bezahlte Nenngelder werden als Guthaben auf dem Konto des ursprünglichen Zahlers (oder
|
||||
des Pferdes) geführt und können auf die neue Nennung angerechnet werden. Das System berechnet und verbucht
|
||||
automatisch die anfallenden Differenzen und Tauschgebühren.
|
||||
|
||||
3. **Validierungs-Service für Funktionäre:**
|
||||
Es wird eine Backend-Funktion implementiert, die bei der Zuweisung eines Richters/Parcoursbauers zu einem Bewerb
|
||||
dessen Qualifikationen (aus den importierten ZNS-Daten) gegen die Anforderungen des Bewerbs prüft. Die API wird bei
|
||||
einem Mismatch eine `WARNUNG` zurückgeben, aber keinen harten `FEHLER`, um den vom Rulebook Expert bestätigten "
|
||||
Override" durch die Meldestelle zu ermöglichen.
|
||||
|
||||
4. **ZNS-Import, Fremddaten (Zuchtverbände) & Event Sourcing:**
|
||||
Die unsauberen und oft wechselnden ZNS-Daten des OEPS werden nicht destruktiv in Datenbanktabellen überschrieben.
|
||||
Stattdessen wird eine **Event Sourcing** Architektur gewählt.
|
||||
* Das Hochladen der `zns.zip` triggert einen Parser, der Änderungen (Updates bei Lizenzen, neue Akteure) als
|
||||
zeitgestempelte Events (z.B. `ActorUpdatedEvent`) in einem "Event Log" ablegt.
|
||||
* Fremddaten (z.B. von Zuchtverbänden wie dem AWÖ) können über dedizierte Parser eingelesen und in dieselben
|
||||
Standard-Events übersetzt werden.
|
||||
* **Manuelle Korrekturen durch die Meldestelle** (wegen fehlerhafter OEPS-Daten) erzeugen "Override-Events", die
|
||||
Vorrang vor veralteten Import-Daten haben.
|
||||
* Für die schnelle Anzeige und Offline-Synchronisation werden aus diesen Events saubere Projektionen ("Read Models")
|
||||
und turnierspezifische Snapshots gebaut.
|
||||
|
||||
## 🎨 [Frontend Expert] & 🖌️ [UI/UX Designer] - Erkenntnisse
|
||||
|
||||
1. **Workflow-Übernahme als Grundlage:**
|
||||
Die vom Owner bereitgestellten Screenshots des Altsystems (`BilderSuDo/`) definieren einen praxiserprobten, schnellen
|
||||
und vom User extrem gut akzeptierten Workflow. Diese Screens dienen als absolute Blaupause für das neue UI/UX-Design.
|
||||
|
||||
2. **Der "Bewerbe anlegen"-Workflow (`Bewerbe.PNG` etc.):**
|
||||
* Zweigeteilte Ansicht (Master-Detail): Links Liste/Filter aller Bewerbe, Rechts Detail-Tabs.
|
||||
* Detail-Tabs gliedern sich in: *Bewertung* (Richtverfahren), *Geldpreis* (Dotierung nach Platzierung), *Ort/Zeit* (
|
||||
Ablaufplanung mit Zeit-pro-Starter-Logik).
|
||||
* *Design-Vorgabe:* Diese Informationsarchitektur wird in moderne Compose-Layouts (z.B. List-Detail-Pane) überführt,
|
||||
die Logik bleibt identisch.
|
||||
|
||||
3. **Die zentrale "Nennungs-Maske" (`Nennungen.PNG`):**
|
||||
* Dies ist das **Herzstück der Meldestelle** ("Das Telefon läutet...").
|
||||
* Extrem schnelle Suche via Kopfnummer oder Name (mit sofortiger Auto-Completion).
|
||||
* Anzeige der Meta-Daten (z.B. Besitzer) für sofortige Identifikation.
|
||||
* Direkte Zuweisung zu Bewerben via Klick aus einer Liste unten.
|
||||
* Berücksichtigung von Startwünschen ("vorne", "hinten").
|
||||
* *Design-Vorgabe:* Diese Maske muss auf **absolute Tastatur- & Schnellbedienbarkeit** optimiert werden (Hotkeys,
|
||||
Tab-Flow). Sie fungiert als Dashboard (Absprung zu Startliste, Kassa).
|
||||
* **Self-Service Äquivalenz:** Das Webformular für den Reiter nutzt im Hintergrund dieselbe Logik, um die Meldestelle
|
||||
maximal zu entlasten.
|
||||
|
||||
4. **Startlisten-Erstellung (`Startlisten.PNG`):**
|
||||
* Schneller Wechsel zwischen Bewerben über Nummern-Leiste oben (Tab-Ersatz).
|
||||
* Berücksichtigung der beim Nennen erfassten Wünsche ("vorne", "hinten").
|
||||
|
||||
5. **Ergebnis-Erfassung am Richterturm (`Ergebnisliste.PNG`):**
|
||||
* Schnelleingabe-Maske optimiert für den fließenden Ablauf.
|
||||
* Oben: Gesamtergebnis / Unten: Startliste als Warteschlange / Mitte: Aktueller Reiter in Eingabe.
|
||||
* Absoluter Fokus auf **"Enter & Tabulator"-Workflow**. Ein Mausklick darf für den Standard-Ablauf nicht nötig sein.
|
||||
* Spontane Abweichungen von der Startfolge (nächster Reiter kommt früher) müssen durch simplen Doppelklick auf die
|
||||
Warteschlange lösbar sein.
|
||||
* Entscheidung über Anzahl der Platzierten bleibt flexibel und ist durch die Meldestelle überschreibbar (ÖTO als
|
||||
Richtlinie, Veranstalter hat letztes Wort).
|
||||
|
||||
## 🏗️ [Lead Architect] - Strategischer Fokus (MVP Phase 1)
|
||||
|
||||
Um zügig einen echten Mehrwert zu generieren, wird der Scope für die erste Ausbaustufe (MVP) hart eingegrenzt:
|
||||
|
||||
* **Turnier-Kategorien:** Fokus auf **C-NEU** und **C**.
|
||||
* **Sparten:** Fokus ausschließlich auf **Dressur (D)** und **Springen (S)**.
|
||||
* *Begründung:* Diese Eingrenzung reduziert die initial benötigte Komplexität der Regelwerks-Implementierung enorm,
|
||||
deckt aber gleichzeitig das absolute "Brot-und-Butter"-Geschäft für kleine bis mittlere Veranstalter ab.
|
||||
@@ -0,0 +1,80 @@
|
||||
---
|
||||
type: Reference
|
||||
status: ACTIVE
|
||||
owner: Lead Architect
|
||||
---
|
||||
# Analyse der Legacy-Spezifikation (OEPS Pflichtenheft 2021 V2.4)
|
||||
|
||||
* **Datum:** 2026-01-14
|
||||
* **Quelle:** `docs/03_Domain/02_Reference/Legacy_Specs/OETO-2026_Meldestelle_Pflichtenheft_V2.4_2021-07-28.md`
|
||||
* **Status:** Draft
|
||||
|
||||
## 1. Zusammenfassung
|
||||
|
||||
Das Pflichtenheft definiert das Datenaustauschformat zwischen Meldestellen-Software und dem OEPS (Österreichischer Pferdesportverband). Es ist die **maßgebliche technische Referenz** für nationale Turniere in Österreich. Die Einhaltung dieser Spezifikation ist zwingend erforderlich, um Ergebnisse an den Verband zu melden.
|
||||
|
||||
## 2. Kritische Datenfelder & Identifikatoren
|
||||
|
||||
Die Analyse zeigt, dass das aktuelle `Core_Model` (`Overview.md`) zu generisch ist. Für den operativen Betrieb fehlen essenzielle Identifikatoren.
|
||||
|
||||
### 2.1. Identifikation von Personen & Pferden
|
||||
Das System verlässt sich nicht primär auf Namen, sondern auf **Satznummern**.
|
||||
|
||||
* **Pferd:**
|
||||
* `Satznummer` (10-stellig, numerisch): Der primäre Key im OEPS-System. Muss zwingend persistiert und exportiert werden.
|
||||
* `Kopfnummer` (4-stellig, alphanumerisch):
|
||||
* National: Die permanente Registrierungsnummer beim OEPS.
|
||||
* International: Eine turnierspezifische Startnummer.
|
||||
* `Lebensnummer` (9-stellig): Zuchtnummer. Achtung: Bei ausländischen Pferden oft generiert/fiktiv -> Nicht zur Suche geeignet!
|
||||
* `FEI-Pass` vs. `FEI-ID`: Zwei getrennte Felder!
|
||||
|
||||
* **Reiter:**
|
||||
* `Satznummer` (6-stellig, numerisch): Der primäre Key.
|
||||
* `Lizenz` (z.B. "RD1", "R1"): Bestimmt die Startberechtigung in Klassen.
|
||||
* `Startkarte`: Flag, ob die Jahresgebühr bezahlt wurde. Ohne Startkarte keine Startberechtigung (außer Gastlizenzen).
|
||||
|
||||
### 2.2. Turnier & Bewerbsstruktur
|
||||
Die Struktur ist starrer als im aktuellen Modell angenommen.
|
||||
|
||||
* **Turniernummer:** 5-stellig.
|
||||
* **Bewerbe:**
|
||||
* Haben eine 2-stellige Nummer (intern) UND eine 3-stellige Nummer (für Turniere > 99 Bewerbe).
|
||||
* **Abteilungen:** Ein Bewerb kann in Abteilungen (Abt. 1, Abt. 2...) unterteilt sein. Dies ist keine rein organisatorische Trennung, sondern datentechnisch relevant (Feld `ABTEILUNG`).
|
||||
|
||||
## 3. Implizite Geschäftsregeln
|
||||
|
||||
Aus den Datenfeldern lassen sich harte Business Rules ableiten:
|
||||
|
||||
1. **Startberechtigung (Sperrliste):** Es gibt ein Flag `SPERRLISTE`. Wenn gesetzt, muss das System warnen/blockieren. Grund oft: Offene Forderungen.
|
||||
2. **Nation-Logik (Gast vs. Inländer):**
|
||||
* Ausländer mit österr. Lizenz + bezahlter Startkarte -> Startet für österr. Verein -> Nation im Ergebnis = "AUT".
|
||||
* Ausländer ohne Mitgliedschaft -> Gastreiter -> Nation = Staatsbürgerschaft (z.B. "GER").
|
||||
* *Konsequenz:* Die "Nation" eines Starts ist kontextabhängig und nicht rein statisch am Reiter hängend.
|
||||
3. **Pferde-Status:** Pferde, für die >3 Jahre keine Gebühr bezahlt wurde, gelten als "nicht registriert" -> Neuanlage erforderlich.
|
||||
|
||||
## 4. Lücken im aktuellen Modell (Gap Analysis)
|
||||
|
||||
| Entität | Fehlendes Attribut / Konzept | Dringlichkeit |
|
||||
| :--- | :--- | :--- |
|
||||
| **Pferd** | `Satznummer` (OEPS-ID) | **Hoch** (Sync unmöglich ohne dies) |
|
||||
| **Pferd** | Unterscheidung `Kopfnummer` (Permanent) vs. `Startnummer` (Turnier) | Mittel |
|
||||
| **Akteur** | `Satznummer` (OEPS-ID) | **Hoch** |
|
||||
| **Akteur** | `Startkarte` (Status) | Hoch (Validierung) |
|
||||
| **Bewerb** | `Abteilung` (Sub-Struktur) | Mittel |
|
||||
| **Ergebnis** | `Ausschluss-Typ` (Disqualifikation, Aufgabe, Ausschluss) | Mittel |
|
||||
| **Ergebnis** | `Geldpreis` (Formatierung, Währung ist implizit EUR) | Niedrig |
|
||||
|
||||
## 5. Empfehlung für das Datenmodell
|
||||
|
||||
Wir müssen die Entität `Akteur` in spezifische Rollen-Modelle ausdifferenzieren oder per Composition erweitern, da die Attribute für Reiter (Lizenz, Startkarte) für andere Akteure (Richter, Besitzer) irrelevant oder anders sind.
|
||||
|
||||
**Vorschlag:**
|
||||
* `Akteur` bleibt Basis (Name, Kontakt).
|
||||
* `ReiterProfile` (Value Object / 1:1 Relation): Enthält `Satznummer`, `Lizenz`, `Startkarte`, `Sperrvermerk`.
|
||||
* `Pferd` erhält `OEPS_Daten` (Value Object): `Satznummer`, `Kopfnummer`, `Lebensnummer`.
|
||||
|
||||
## 6. Offene Fragen an den PO
|
||||
|
||||
1. Wie gehen wir mit **internationalen Turnieren** (FEI) um? Das Pflichtenheft deutet an, dass auch hier OEPS-Formate genutzt werden ("Version 2.4 für internationale Bewerbe"), aber die FEI hat eigene Formate. Welches ist führend?
|
||||
2. Soll das System den **Import** der `zns.zip` (Stammdaten) unterstützen? Das wäre essenziell für den Offline-Betrieb.
|
||||
3. Wie strikt soll die **Validierung** sein? Soll das System eine Nennung *verhindern*, wenn die Startkarte fehlt, oder nur *warnen*? (Realität: Oft wird vor Ort nachgezahlt).
|
||||
@@ -0,0 +1,85 @@
|
||||
---
|
||||
type: ADR
|
||||
status: DRAFT
|
||||
owner: Lead Architect
|
||||
---
|
||||
# Non-Functional Requirements (NFRs) - Phase 1
|
||||
|
||||
* **Status:** Draft
|
||||
* **Fokus:** Offline-First Architektur, Robustheit, Datenintegrität
|
||||
|
||||
---
|
||||
|
||||
## 1. Offline-Fähigkeit & Resilienz (Availability)
|
||||
|
||||
Das System muss in einer Umgebung funktionieren, in der Netzwerkverbindungen unzuverlässig oder nicht vorhanden sind (Reitställe, ländliche Gebiete).
|
||||
|
||||
* **NFR-01: Local-First Prinzip**
|
||||
* Alle Kernfunktionen (Nennung, Startlistenerstellung, Ergebniserfassung, Drucken) müssen **zu 100% ohne Netzwerkverbindung** ausführbar sein.
|
||||
* Die lokale Datenbank (SQLite/SQLDelight) ist die primäre Datenquelle für das UI.
|
||||
* Der Server dient lediglich als Synchronisations-Hub und Backup, nicht als Laufzeit-Abhängigkeit.
|
||||
|
||||
* **NFR-02: Synchronisation & Konfliktlösung**
|
||||
* Sobald eine Verbindung besteht, müssen Daten im Hintergrund synchronisiert werden.
|
||||
* **Konfliktstrategie:** Bei konkurrierenden Änderungen (z.B. zwei Richter ändern dasselbe Ergebnis) muss das System:
|
||||
1. Technische Konflikte automatisch lösen (z.B. "Last Write Wins" basierend auf präzisen Zeitstempeln).
|
||||
2. Fachliche Konflikte protokollieren und zur manuellen Klärung markieren.
|
||||
|
||||
* **NFR-03: Wiederherstellung (Disaster Recovery)**
|
||||
* Nach einem Absturz oder Stromausfall muss das System innerhalb von **< 30 Sekunden** wieder betriebsbereit sein.
|
||||
* Kein Datenverlust von bereits bestätigten Eingaben (ACID-Transaktionen lokal).
|
||||
|
||||
---
|
||||
|
||||
## 2. Performance & Latenz (Usability)
|
||||
|
||||
Im Turnierbetrieb herrscht Zeitdruck. Wartezeiten summieren sich und führen zu Stress bei den Anwendern.
|
||||
|
||||
* **NFR-04: Optimistic UI Updates**
|
||||
* Benutzeraktionen (z.B. Speichern einer Note) müssen im UI **sofort (< 50ms)** bestätigt werden, ohne auf Netzwerk-Roundtrips oder Datenbank-Commits zu warten (Asynchrone Verarbeitung).
|
||||
|
||||
* **NFR-05: Such-Performance**
|
||||
* Die Suche nach Pferden (in > 50.000 Stammdaten) oder Reitern muss **< 200ms** dauern (Full-Text-Search Indexierung lokal).
|
||||
* Dies gilt auch auf leistungsschwächerer Hardware (ältere Laptops, Tablets).
|
||||
|
||||
* **NFR-06: Massendaten-Verarbeitung**
|
||||
* Der Import der `zns.zip` (Stammdaten) darf den UI-Thread nicht blockieren und sollte **< 5 Minuten** dauern.
|
||||
|
||||
---
|
||||
|
||||
## 3. Datenintegrität & Audit (Compliance)
|
||||
|
||||
Ergebnisse entscheiden über Qualifikationen und Preisgelder. Manipulationen oder versehentliche Änderungen müssen nachvollziehbar sein.
|
||||
|
||||
* **NFR-07: Audit Trail**
|
||||
* Jede Änderung an einem Ergebnis (Score, Zeit, Platzierung) muss unveränderbar protokolliert werden.
|
||||
* Inhalt: `Timestamp`, `User-ID`, `Old-Value`, `New-Value`, `Reason` (optional).
|
||||
* Der Audit-Log muss mit synchronisiert werden.
|
||||
|
||||
* **NFR-08: Validierungs-Hierarchie**
|
||||
* Das System muss zwischen "Hard Constraints" (Datenbank-Integrität, z.B. Foreign Keys) und "Soft Constraints" (Fachliche Regeln, z.B. fehlende Startkarte) unterscheiden.
|
||||
* Soft Constraints dürfen den Prozess nicht blockieren, müssen aber persistente Warnungen erzeugen ("Override"-Flag).
|
||||
|
||||
---
|
||||
|
||||
## 4. Sicherheit (Security)
|
||||
|
||||
* **NFR-09: Lokale Datensicherheit**
|
||||
* Da Laptops/Tablets gestohlen werden können: Sensible Daten (Personendaten, Adressen) sollten "At Rest" verschlüsselt sein (z.B. SQLCipher), sofern die Performance (NFR-05) nicht kritisch beeinträchtigt wird.
|
||||
* Minimalanforderung: Keine Speicherung von Passwörtern im Klartext.
|
||||
|
||||
* **NFR-10: Rollenbasierter Zugriff (RBAC)**
|
||||
* Unterscheidung der Berechtigungen im UI:
|
||||
* *Richter:* Darf nur Ergebnisse für zugewiesene Bewerbe eingeben.
|
||||
* *Meldestelle:* Vollzugriff.
|
||||
* *Zuschauer (Kiosk-Mode):* Nur Lesezugriff auf Starter-/Ergebnislisten.
|
||||
|
||||
---
|
||||
|
||||
## 5. Hardware & Umgebung
|
||||
|
||||
* **NFR-11: Eingabe-Effizienz**
|
||||
* Die Ergebniserfassung muss "Keyboard-First" bedienbar sein (Nummernblock-Optimierung). Maus/Touch ist für Massenerfassung zu langsam.
|
||||
|
||||
* **NFR-12: Druck-Unterstützung**
|
||||
* Unterstützung von lokalen Druckern (USB/Netzwerk) ohne komplexe Treiber-Installation, da Listen (Starterlisten, Ergebnisse) physisch ausgehängt werden müssen (Pflicht laut Reglement).
|
||||
@@ -0,0 +1,697 @@
|
||||
---
|
||||
type: Reference
|
||||
status: ACTIVE
|
||||
owner: Lead Architect
|
||||
---
|
||||
# Anekdote Meldestelle
|
||||
|
||||
Ich bin diesmal die Meldestelle für ein kleines Turnier, z.B. ein "CDN-C Neu" bzw. "CSN-C Neu" am "Musterhof".
|
||||
|
||||
Sagen wir in der Ausschreibung stand "Meldestelle geöffnet ab 15 Uhr", das Turnier findet Samstag und Sonntag statt.
|
||||
|
||||
Also, am Freitag mache ich mich auf den Weg zum Turnier, aus Erfahrung achte ich darauf, dass ich mehr als rechtzeitig am Turniergelände eintreffe.
|
||||
|
||||
Meistens bin ich schon ca. 2-3 Stunden vor der offiziellen Öffnungszeit vor Ort.
|
||||
|
||||
Also treffe ich ca. 12 Uhr am Turniergelände ein.
|
||||
|
||||
"Hallo? Ist hier jemand?"
|
||||
|
||||
Ich mache mich auf die Suche nach den Verantwortlichen, oder irgendjemanden, der mir sagen kann, wo ich meine "Meldestelle" aufbauen kann.
|
||||
|
||||
Da ein ein Stallbursche, er spricht kaum deutsch und kein englisch, aber mit Händen und Füßen haben wir uns dann doch noch verständigen können und er weis jetzt, wonach ich suche.
|
||||
|
||||
Leider hat er auch keine Ahnung wo ich meine "Meldestelle" aufbauen kann.
|
||||
|
||||
Jetzt machen wir uns zu zweit auf die Suche nach einer Person, die mir weiterhelfen kann.
|
||||
|
||||
Endlich, nach einer gefühlten Stunde auf der Suche, haben wir ein Vereinsmitglied gefunden, das mir sagen kann, wo ich meine "Meldestelle" aufbauen kann.
|
||||
|
||||
Echt, jetzt?
|
||||
|
||||
Im letzten Winkel vom Turniergelände in einem schäbigen alten Holzhäuschen, das so aussieht und die Größe ist wie ein "Plumpsklo" auf einer Alm-Hütte.
|
||||
|
||||
Naja, zumindest habe ich so was Ähnliches wie einen Schreibtisch und einen Klappsessel.
|
||||
|
||||
Ich: "Karin, könnte ich vielleicht noch Strom haben?"
|
||||
|
||||
Karin ist das Vereinsmitglied, sie ist in dem Verein die "Kassenführerin".
|
||||
|
||||
Karin: "Ah, ja, muss nur schauen woher. Ich kümmere mich darum."
|
||||
|
||||
Ich: "Danke, dass wäre sehr hilfreich"
|
||||
|
||||
Okay, Karin ist auf der Suche nach dem Strom.
|
||||
|
||||
Zum Glück habe ich meine keine USV mitgenommen, damit ich zumindest kleine Stromausfälle kompensieren kann.
|
||||
|
||||
Das "Plumpsklo" ist noch staubig, also reinige ich ein wenig, bevor ich meinen Laptop aufstellen kann.
|
||||
|
||||
Es ist mittlerweile schon 14 Uhr.
|
||||
|
||||
Hmmm, wie soll ich jetzt ein Netzwerk aufbauen zum Richterturm?
|
||||
|
||||
Was habe ich mit als Meldestelle:
|
||||
|
||||
\- einen Internet-Würfel von A1
|
||||
|
||||
\- 3x Laptops Meldestelle Rechenstelle und Richter (bei kleinen Turnieren ist nur gemeinsames Richten, bei Springturnieren klopft der Zeitnehmer die Ergebnisse ein)
|
||||
|
||||
\- 2x Switches
|
||||
|
||||
\- 2x 50m Outdoor-Netzwerk-Kabeln
|
||||
|
||||
\- 2x WLAN-Outdoor Access-Point von tplin CPE210 Sender Empfänger
|
||||
|
||||
\- einige 1-2 m Netzwerk-Kabeln
|
||||
|
||||
\- einen Laserdrucker-SW \+ Papier
|
||||
|
||||
\- 1x USV EATON 3S700D für die Meldestelle
|
||||
|
||||
Geht sich das noch aus, bevor ich die Meldestelle offiziell öffnen muss?
|
||||
|
||||
Schauen wir mal, wo der Richter-Turm ist.
|
||||
|
||||
War ja klar, der Austragungsplatz ist genau hinter dem Stallgebäude und die Reithalle genau am anderen Ende des Geländes.
|
||||
|
||||
Wo kann ich meine Accesspoints montieren, ohne im Weg zu sein mit dem Kabel?
|
||||
|
||||
Während ich so am Gelände herumlaufe und mir Gedanken mache, wie ich das Netzwerk aufbauen kann, läuft mir ein Reiter entgegen.
|
||||
|
||||
"Hallo, du\! Bist du die Meldestelle?"
|
||||
|
||||
Ich: "Ja, servus"
|
||||
|
||||
Reiterin: "Kann ich schon Nennen?"
|
||||
|
||||
Ich: "Ja sicher, im Internet. Brauchst nur den Link zum Online-Nennen anklicken."
|
||||
|
||||
Reiterin: "Kann ich es nicht gleich persönlich bei dir machen? Ich habe kein Download-Guthaben mehr und das Internet funktioniert hier nicht wirklich"
|
||||
|
||||
Ich: "Okay, komm mit, ich muss nur noch den Computer hochfahren"
|
||||
|
||||
Reiterin: "Super, danke"
|
||||
|
||||
Bei meinem "Plumpsklo".
|
||||
|
||||
Ich schalte den Computer ein, natürlich noch im Akku-Betrieb, denn Strom habe ich noch immer nicht.
|
||||
|
||||
Ich: "Okay, kann los gehen. Kopfnummer bitte?"
|
||||
|
||||
Reiterin: "Kopfnummer? Die habe ich nicht."
|
||||
|
||||
Ich: "Okay, welchen Bewerb möchtest du denn gehen?"
|
||||
|
||||
Reiterin: "Reiternadel"
|
||||
|
||||
Ich: "Ah, okay. Für diesen Bewerb muss das Pferd nicht registriert sein. Wie ist denn der Name des Pferdes?"
|
||||
|
||||
Reiterin: "Also, wir nennen Ihn immer nur Hansi, aber ob das sein richtiger Name ist weis ich nicht"
|
||||
|
||||
Ich: "Okay, weißt du was? Ich nenne dich jetzt einmal in den Bewerb mit dem Pferd Hansi und du fragst einmal nach, wie er wirklich heißt, okay?"
|
||||
|
||||
Reiterin: "Super, danke"
|
||||
|
||||
Ich lege ein neues Pferd an mit dem Namen "Hansi", sonst habe ich keine Infos.
|
||||
|
||||
Das Programm erstellt mir eine selbst generierte Kopfnummer aus z.B: "C001" und dann fortlaufend für alle neu erstellten Pferde, die nicht Turnierpferde registriert sind und nur für Bewerbe, die keine erfordern.
|
||||
|
||||
So, jetzt habe ich ein Pferd namens Hansi mit der Kopfnummer C001 im System.
|
||||
|
||||
Ich: "Wie ist dein Name?"
|
||||
|
||||
Reiterin: "Ich? Susi Jur..."
|
||||
|
||||
Ich: "Okay, tut mir leid, ich habe deinen Nachnamen nicht ganz verstanden. Kannst du mir deinen Nachnamen bitte noch einmal wiederholen?"
|
||||
|
||||
Reiterin: "Juritschenkowz"
|
||||
|
||||
Ich: "Juri.. wie weiter? Kannst du mir deinen Namen bitte Buchstabieren?"
|
||||
|
||||
Reiterin: "J U R I T sch"
|
||||
|
||||
Ich: "das "sch" Siegfried Cäsar Heinrich ? Oder schreibt man es anders?"
|
||||
|
||||
Reiterin: "Ich heiße nicht Siegfried." Ich heiße Susi"
|
||||
|
||||
Ich: "Bist du bitte so freundlich und kannst mir hier deinen kompletten Namen aufschreiben, ich glaube, somit tun wir uns am leichtesten."
|
||||
|
||||
Reiterin: "Okay, wars das jetzt, oder muss ich noch etwas tun?"
|
||||
|
||||
Ich: "Nein, alles okay. Du kannst dann heute Abend so gegen 20 Uhr die Startlisten aus www.XXX.at abrufen, okay?"
|
||||
|
||||
Reiterin: "So spät?"
|
||||
|
||||
Ich: "Ja, ich habe noch einen langen Tag"
|
||||
|
||||
Reiterin: "Danke, bis morgen"
|
||||
|
||||
Susi geht zufrieden weiter, ich suche nach ihrem Namen im System.
|
||||
|
||||
Fehlanzeige, keine Juri... in den ZNS-Daten, also lege ich die Reiterin einmal so an, wenn Sie wieder kommt werde ich hoffentlich die Daten vervollständigen können, denn mit diesem Ergebnis vom Turnier könnte Sie auch die Reiter-Lizenz erreiten. Voraussetzung natürlich, dass die Daten vollständig und korrekt sind, gilt übrigens auch für Reiter aus Deutschland, dass diese Ergebnisse in Ihrem Verband anerkannt werden.
|
||||
|
||||
Okay, 14:30 Uhr
|
||||
|
||||
Na super, Netzwerk habe ich noch nicht aufgebaut und Zeit dafür habe ich auch keine mehr dafür.
|
||||
|
||||
Meldestellen-Handy, stimmt die Nummer in der Ausschreibung mit dem Handy überhaupt überein?
|
||||
|
||||
Probe: 0664 12 12 123
|
||||
|
||||
Ja, Akku ist voll, ich bin mit Handy und Laptop bereit.
|
||||
|
||||
Karin taucht auf.
|
||||
|
||||
Karin: "Ich hab deinen Strom\!"
|
||||
|
||||
Ich: "Super"
|
||||
|
||||
Karin: "Brauchst du noch was?"
|
||||
|
||||
Ich: "Vielleicht einen Kaffee?"
|
||||
|
||||
Karin: "Muss ich schauen ob wir schon einen haben"
|
||||
|
||||
Ich: "Dass, wäre echt toll"
|
||||
|
||||
Was will man mehr?
|
||||
|
||||
Frische Luft im Plumpsklo neben dem Misthaufen, Strom, aja, habe ich überhaupt Internet?
|
||||
|
||||
Mal schauen, okay bisschen, speed-test download gerade einmal 10MB/s
|
||||
|
||||
Handyempfang schlecht, aber vorhanden.
|
||||
|
||||
ca. 14:40 Uhr
|
||||
|
||||
Ring ring Meldestellen Händy läutet
|
||||
|
||||
Ich: "Meldestelle, Musterhof Guten Tag"
|
||||
|
||||
Anrufer: "Ah, bist es nicht du Matthias?"
|
||||
|
||||
Ich: "Nein, ich bin es Mo dieses Wochenende mach ich die Meldestelle am Musterhof"
|
||||
|
||||
Anrufer: "Ah, okay. Tragst du mich mit meinen Pferden in die A's und L's ein?"
|
||||
|
||||
Ich: "Ah, du bist es, Petra hab dich nicht gleich erkannt. Der Empfang hier ist ziemlich schlecht. Welche Pferde hast du denn mit?"
|
||||
|
||||
Petra: "Tschuldigung, servus Mo\! Ja, ich habe Seppi, Weißdorn und die Obora mit. Weißt eh welche Reihenfolge”
|
||||
Ich: “Ich glaube, das werde ich schon schaffen”
|
||||
Petra: “Danke, bist später\!”
|
||||
|
||||
Okay, Petra, wie war noch Ihr Nachnahme Sie hat ja vor kurzen geheiratet. Aja, Sie heist jetzt Musterfrau.
|
||||
Seppi, den kenne ich, aber wie war noch der Turniername? Sebastian, ja da habe ich Ihn ja, “Sebastian Von Seebenstein” A357, das ist der junge mit dem will Sie sicher nur die A-Bewerbe gehen.
|
||||
Weißdorn, da haben wir Sie ja “Weißdorn by Gewizda” 8936, in die L-Bewerbe.
|
||||
Und dann noch “Tuchlaub by Oboras” 9056, ebenfalls in die L-Bewerbe.
|
||||
Erledigt.
|
||||
|
||||
Ring ring …
|
||||
|
||||
Das geht jetzt sicher 1-2 Stunden so weiter.
|
||||
|
||||
17:30 Uhr
|
||||
|
||||
Mal schauen wie viele Starter wir schon habe, okay für das “CSN-C Neu” haben wir schon 150 Starter. Für das kleine Turnier gar nicht schlecht.
|
||||
Dressur sieht noch etwas mager aus, mit derzeit nur 23 Startern.
|
||||
Naja, was will man machen, ist halt so.
|
||||
|
||||
Zeitplan?
|
||||
Ist der Parcoursbauer schon da? Der Markus ist doch normalerweise immer früher da, um den Parcours für den ersten Bewerb aufzustellen.
|
||||
|
||||
Karin, läuft wieder bei mir vorbei.
|
||||
Ich: “Karin\! Hast du vielleicht schon den Markus gesehen?”
|
||||
Karin: “Markus wer?”
|
||||
Ich: “Der Parcoursbauer”
|
||||
Karin: “Acht, den meinst du. Nein, er hat angerufen und hat gemeint, er kommt morgen gleich ganz in der Früh.”
|
||||
Ich: “Danke\!”
|
||||
|
||||
Wieder typisch für Ihn, immer alles auf den letzten Drücker.
|
||||
Okay, zum planen, wie lange wird ein Reiter brauchen?
|
||||
Die ersten Bewerbe, sind welche für Anfänger oder junge Pferde, denen geben wir mehr Zeit.
|
||||
Countdown: 45 Sek.
|
||||
Parcours: 350 m/min Erlaubte Zeit: 60 Sek. Idealzeit: \-10% \= 54 Sek.
|
||||
sagen wir zum Kalkulieren in den ersten Bewerbe (1 \- 5\) 2 min./Starter
|
||||
Siegerehrungen gibt es keine, sondern nur Mascherln (Schleifen) bei 0 Fehler direkt beim Ausritt vom Bewerbsplatz.
|
||||
Wir haben nicht so viele Starter, das wird schon passen.
|
||||
Eine kleine Mittagspause für die Richter, sagen wir 15 min.
|
||||
zwischen den Bewerben Umbauzeit sagen wir 10 min., Besichtigung 5 min.
|
||||
Das passt schön, Bewerbe 1, 2, 3, 4, 5 sind zur zeit 80 Starter
|
||||
macht pro Bewerb \+ Umbauzeit \+ Besichtigen 55 min. ca. 1 Std.
|
||||
Haben wir dann um ca. 13 Uhr Mittagspause von 15 min.
|
||||
Zeit für Bodenpflege und Bewässern.
|
||||
Machen wir um 13:30 Uhr mit den nächsten Bewerben weiter.
|
||||
Bewerb 6, 7, 8, 9 normal mit kleiner Siegerehrung ca. 10 min.
|
||||
Bewerb 10 ist der letzte und der Hauptbewerb des Tages.
|
||||
Das heißt wieder kleine Bodenpflege davor
|
||||
Bewerbe 6 \- 9 habe ich 49 Starter \~ 50 á 1 min 30 sek.
|
||||
13:30 Uhr \+ 2 h 15 min \= 15:45 Uhr \~ 16:00 Uhr
|
||||
Also ca. 16 Uhr Hauptbewerb.
|
||||
|
||||
Wie spät ist es?
|
||||
|
||||
18:30 Uhr
|
||||
|
||||
Okay, machen wir einmal einen Vorläufigen Zeitplan für die Dressur.
|
||||
Da haben wir zum Glück nur 5 Bewerbe morgen.
|
||||
Wie viele Starter? Gesamt 46 Starter
|
||||
1 D-Bewerb Aufgabe XY ca. 3 min 30 sek \~ 4 min Starter 6
|
||||
45 sek Countdown, Anfänger machen wir 5 min / Starter Beginn 8:00 Uhr Endet: 8:30 Uhr
|
||||
In der Dressur hat jeder Starter seine fixe Startzeit.
|
||||
kleine Siegerehrung 10 min
|
||||
Startzeit erster Bewerb 8:00 Uhr
|
||||
2 D-Bewerb Aufgabe XY ca. 3 min 30 sek \~ 4 min Starter 10
|
||||
45 sek Countdown, Anfänger machen wir 5 min / Starter Beginn: 9:00 Uhr Endet: 9:50 Uhr
|
||||
kleine Siegerehrung 10 min
|
||||
3 D-Bewerb Aufgabe XY ca. 4 min 30 sek \~ 5 min Starter 10
|
||||
45 sek Countdown, Anfänger machen wir 6 min / Starter Beginn: 10:15 Uhr Endet: 11:15 Uhr
|
||||
kleine Siegerehrung 10 min
|
||||
4 D-Bewerb Aufgabe XY ca. 4 min 30 sek \~ 5 min Starter 5
|
||||
45 sek Countdown, Anfänger machen wir 6 min / Starter Beginn: 12:00 Uhr Endet: 12:30 Uhr
|
||||
kleine Siegerehrung 10 min
|
||||
5 D-Bewerb Aufgabe XY ca. 5 min \~ 6 min Starter 15
|
||||
45 sek Countdown, Anfänger machen wir 6 min / Starter Beginn: 13:00 Uhr Endet: 14:30 Uhr
|
||||
|
||||
Ich glaube, es sieht gut aus.
|
||||
|
||||
Uhrzeit?
|
||||
|
||||
18:45 Uhr
|
||||
|
||||
Jetzt ruf ich mal den Michi (Veranstalter) an, dass er mal her kommen soll, damit er sich den Zeitplan ansehen kann, ob dieser ihm passt.
|
||||
|
||||
Ich: “Servus, Michi, kommst einmal vorbei? wegen Zeitplan”
|
||||
Michi: “Ja, komme gleich, magst auch ein Bier?”
|
||||
Ich: “Ja, gerne”
|
||||
|
||||
\======================================================================
|
||||
|
||||
Dem Michi hat mein Zeitplan gefallen.
|
||||
Nachdem ich die Startlisten dann noch sortiert hatte nach Wünschen der Reiter und wenn Reiter mehrere Pferde am Start hatten, habe ich dies natürlich auch berücksichtigt und diese dann je nach Wunsch ganz nach vorn und das zweite Pferd ganz nach hinten in der Startreihenfolge geplant.
|
||||
Manche Trainer wollen alle Ihre Schützlinge zusammen haben, wofür ein optionaler Vermerk auf den Trainer machen könnte, sicher ein Plus.
|
||||
|
||||
\=====================================================================
|
||||
|
||||
Michi kommt mit meinem Bier zu meinem Plumpsklo, alias Meldestelle.
|
||||
Michi: “Servus, Mo\! Hast eh alles gefunden, oder?”
|
||||
Ich: “Ja, soweit alles klar, du musst mir nur noch helfen mein Netzwerk fertig aufzubauen.”
|
||||
Michi: “Was brauchst den dafür?”
|
||||
Ich: “Meine beiden Funkies müssen noch so aufgehängt werden, damit sich die beiden sehen können. Womöglich so hoch wie möglich, damit die Handys den Funk nicht stören.”
|
||||
Michi: “Ah, das kann Janosch machen, mein Stallbursche, der kennt sich mit allem aus, der macht das schon. Ich rufe ihn gleich her, dann kannst du ihm die Funkies gleich geben.”
|
||||
Ich: “Super, eine Sorge weniger. Du, wegen dem Zeitplan. Ich habe dir eine kleine Mittagspause eingeplant so gegen 13:15 Uhr, passt das so für dich?”
|
||||
Michi: “Ja, passt schon, zeig her mal den Plan.”
|
||||
|
||||
Michi sieht sich den Plan an. Fünf Minuten später sieht er mich an.
|
||||
Michi: “Wieso beginnen wir schon um 8 Uhr Früh? Wenn wir eh nicht so viele Starter haben?”
|
||||
Ich: “Weil du es so in der Ausschreibung schon so veröffentlicht hast?”
|
||||
Michi: “Na okay. Wie viele Pfefferstäser haben wir denn morgen?” (Damit meint Michi die Dressurreiter)
|
||||
Ich: “ Steht eh drauf, 46”
|
||||
|
||||
In der Zwischenzeit ist auch schon Janosch aufgetaucht.
|
||||
|
||||
Michi: “Joschi, nimm dir die zwei Funkies und montiere sie, okay?”
|
||||
Janosch: “Chef, ja Chef”
|
||||
|
||||
Janosch sieht sich die WLAN-Funkies an, sieht mich an
|
||||
|
||||
Janosch: “Deine? Gute Funky, ich kennen”
|
||||
|
||||
und grinst mich an. Erhobenen Daumens grinse ich zurück
|
||||
|
||||
Ich: “Janosch, da” und zeige Ihm die Beschriftung auf den Funkies
|
||||
“Blaue Schrift ist Meldestelle und Rote Schrift ist Richter”
|
||||
Janosch: “Gut Chefe, mach ich”
|
||||
|
||||
Okay, Janosch macht sich an die Arbeit, mein Netzwerk fertig aufzubauen und Michi ist wieder, keine Ahnung was er macht.
|
||||
|
||||
19 Uhr \- Nennschluss
|
||||
|
||||
So, jetzt kann ich endlich die Startlisten fertig machen. Die Springer mach ich zuerst, mit denen bin ich schneller fertig.
|
||||
Ausschreibung, wo habe ich Sie? Ach ja, hier.
|
||||
Die Bewerbe einmal in die einzelnen Abteilungen trennen.
|
||||
Die ersten Bewerbe sind die “Anfänger-Bewerbe”, haben sich da hoffentlich keine Lizenz-Reiter eingeschmuggelt?
|
||||
Da, natürlich, was mach ich denn jetzt?
|
||||
Lizenz-Reiter mit den lizenzfreien Reitern gemeinsam zu beurteilen ist nicht fair.
|
||||
Ich mache noch eine Abteilung auf, das muss ich Franz sagen. (Franz ist der Turnier-Beauftragter Richter für dieses Turnier)
|
||||
Bewerb 6, 7 und 8 habe ich einige Reiter dabei die 2 und 3 Pferde reiten, diese Bewerbe werde ich für die Startlisten noch nicht in die einzelnen Abteilungen aufteilen, sonst haben diese Reiter nicht genügend Zeit Ihre Pferde vorzubereiten und oder wir brauchen zu viel Zeit auf diese dann zu warten.
|
||||
Ich lasse diese Bewerbe gemischt und teile erst am Ende des jeweiligen Bewerbes die Ergebnisse in die richtigen Abteilungen auf.
|
||||
Im Hauptbewerb darf ich das natürlich nicht, oder wenn es um Geld geht oder Meisterschaft.
|
||||
Den Rest lasse ich einfach in alphabetischer Reihenfolge nach Reiter-Nachname sortieren.
|
||||
Bei Meisterschaften oder Cups könnte ich die Reihenfolge nach Zufallsprinzip sortieren.
|
||||
Manche Veranstalter wollen bei Pferdeprüfungen die Sortierung nach Pferdename oder Abstammung haben.
|
||||
Bei Haflinger Bewerben ist es einfach zu überprüfen, ob tatsächlich nur Haflinger auf die Startliste gefunden haben, denn die Kopfnummern der Haflinger beginnen alle mit einem “H”.
|
||||
Und rein theoretisch beginnen alle österreichischen Warmblutpferde mit einem “A”.
|
||||
Das Allerbeste ist, dass die Bewerbe auch manuell in Abteilungen für jeden einzelnen Starter aufgeteilt werden können, denn nicht immer sind die Bewerbe nach gängigen Regeln geteilt.
|
||||
Bei diesem Turnier sind die Bewerbe zum Glück nur der Norm entsprechend nach Reiter-Lizenzen und Pferdealter in Abteilungen getrennt und die RS4-Reiter werden sowieso separat gewertet.
|
||||
|
||||
Startlisten springen fertig, jetzt kann ich die ersten Startlisten veröffentlichen.
|
||||
|
||||
Weiter zu den Dressur-Reitern, da sind etliche dabei die extra Wünsche haben.
|
||||
Ich darf nicht vergessen, die Susi nach weiteren Informationen zu Ihrem Pferd zu fangen.
|
||||
Da, schon wieder eine Reiterin, die darum bittet ganz hinten starten zu wollen, weil angeblich Ihr Pferd sonst zu sehr abgelenkt wird.
|
||||
Ich glaube, Sie will noch ein wenig länger schlafen.
|
||||
Petra hat viele Pferde mit auf dem Turnier und noch mehr Schüler.
|
||||
Sie will immer einen Schüler von Ihr, dann einen anderen dazwischen und dann wieder einen Schüler von Ihr.
|
||||
Mal sehen, ob das überhaupt so ausgeht.
|
||||
Bei den Dressur-Reitern muss ich besonders acht geben, denn diese bestehen auf Ihre Startzeiten der Startlisten welche heute Abend veröffentlicht werden und diese dürfen nicht mehr so leicht geändert werden.
|
||||
Auch wenn vor Ihnen 2-3 Reiter ausfallen würden und Sie der/die letzte Starter des Bewerbes sind, kommen die wenigsten Dressurreiter auf die Idee auch nur 5 Minuten früher an den Start zu gehen, denn diese Zeit brauchen Sie ja um sich selbst und Ihr Pferd auf den Punkt vorzubereiten.
|
||||
Ob das den Unterschied macht, wage ich zu bezweifeln.
|
||||
|
||||
Okay, Startlisten Dressur fertig, veröffentlichten.
|
||||
|
||||
So, die Protokolle für die Springreiter ausdrucken, die Startlisten für den Vorbereitungsplatz, Turnier-Sprecher und das Richterkollegium drucke ich erst morgen in der früh aus, ca. eine Stunde vor dem Bewerbs beginn, denn dann sollten absolut keine Änderungen möglich sein, normalerweise.
|
||||
Springreiter sind diesbezüglich, vor allem auf kleinen nationalen Turnieren ein Kapitel für sich. Denn einige von Ihnen kommen noch 5 min. vor dem Bewerbs-Beginn auf die Idee, doch noch eine Änderung vornehmen zu wollen.
|
||||
Reihenfolge der Pferde, wenn diese 2 oder mehr Pferde im Bewerb haben.
|
||||
Oder, weil es im Vorbewerb nicht so gut lief, noch schnell auch den nächsten Bewerb starten zu wollen.
|
||||
Bei manchen Heros muss man glücklich sein, wenn Sie überhaupt in der Meldestelle bescheid geben lassen, oft muss der Zeitnehmer verdammt aufpassen, ob es tatsächlich des richtige Pferd-Reiter-Paar ist, damit er das Ergebniss dem richtig Paar zu gute bucht.
|
||||
Wie es oft am Richterturm zugeht, wissen wir ja.
|
||||
|
||||
Ring Ring …
|
||||
|
||||
Es ist mittlerweile 19:30 Uhr
|
||||
|
||||
Habe ich jemanden in die falsche Abteilung oder Bewerb eingetragen?
|
||||
|
||||
Ich: “Meldestelle, Musterhof”
|
||||
Anrufer: “Hallo, ich habe ganz vergessen zu Nennen, kannst du mich noch eintragen?”
|
||||
Ich: “Okay, Kopfnummer …”
|
||||
|
||||
War ja klar, dass mindestens ein Teilnehmer nach Nennschluss anruft, um sich noch schnell nennen zu lassen.
|
||||
|
||||
Ring Ring …
|
||||
|
||||
Noch was?
|
||||
|
||||
Ich: “Meldestelle, Musterhof”
|
||||
Anrufer: “Du hast mich in den falschen Bewerb eingetragen”
|
||||
Ich: “Okay, wer bist du und was habe ich falsch gemacht?”
|
||||
|
||||
19:45 Uhr
|
||||
|
||||
Aber jetzt kann ich endlich die Protokolle für die Dressur vorbereiten.
|
||||
|
||||
Okay, ich brauche die Dressur-Aufgaben, die Leitfäden und Startlisten pro Bewerb.
|
||||
Bei diesem Turnier ist nur gemeinsames Richtverfahren auf einem 20x40 m Viereck ausgeschrieben.
|
||||
Pickerln werde ich noch drucken, damit die “Schreiber” ein wenig entlastet werden, um die Dressur-Protokolle zu personalisieren.
|
||||
|
||||
20:15 Uhr
|
||||
|
||||
Mal nachsehen, was Janosch gemacht hat mit meinem Netzwerk.
|
||||
Ja, das hat er wirklich gut montiert. Machen wir einen Testdurchlauf ob die Verbindung zum Richterturm Dressur und Springen funktioniert.
|
||||
|
||||
Super alles funktioniert wie es soll.
|
||||
|
||||
\==== Nächster Morgen 6:30 Uhr \====
|
||||
|
||||
So geht es auf einen neuen Turniertag.
|
||||
|
||||
\* Strom \- check
|
||||
\* Meldestellen-Laptop inkl. Programm \- check
|
||||
\* Meldestellen-Handy aufgeladen und bereit \- check
|
||||
\* Internet \- check
|
||||
\* Startlisten angeschlagen \- check
|
||||
\* Spring-Protokolle Standard und Stil Zeitplan und für den ersten Bewerb die Startlisten für Richter, Sprecher und Abreiteplatz vorbereitet \- check
|
||||
\* Dressur-Protokolle und Pickerln für den ersten Bewerb, Zeitplan für Richter, Sprecher und Abreiteplatz vorbereitet \- check
|
||||
\* Kontrollgang Richterturm-Springen:
|
||||
\- Strom \- check
|
||||
\- Laptop inkl. Programm einsatzbereit \- check
|
||||
\* Kontrollgang Richterturm-Dressur:
|
||||
\- Strom \- check
|
||||
\- Laptop inkl. Programm einsatzbereit \- check
|
||||
|
||||
7:00 Uhr
|
||||
|
||||
Ich glaube, von meiner Seite ist alles Einsatzbereit.
|
||||
|
||||
Starterin: “Hast du eine Aufgabe für mich?”
|
||||
Ich: “Guten Morgen\! Welche Aufgabe hättest du denn gerne?”
|
||||
Starterin: “Na die, die jetzt gleich dran kommt”
|
||||
Ich: “Aufgabe Reiterpass. Bitte gerne”
|
||||
|
||||
Tutro (Abkürzung für Turnier-Trottel, eine liebevolle Bezeichnung für einen Turnier-Helfer, meistens Freunde aus dem Verein welche einem als Turnier-Starter helfen um z.B: Startlisten zu besorgen und den Überblick behalten bezüglich der Startzeit und so weiter, damit man sich als Teilnehmer voll und ganz auf sich selbst und sein Pferd konzentrieren kann.)
|
||||
|
||||
nächster Turto: “Hast du für mich eine Startliste, für die nächsten beiden Spring-Bewerbe?”
|
||||
Ich: “Da habe ich ein paar aufgelegt zur freien entnahme”
|
||||
|
||||
Franz: “Guten Morgen Mo\! Danke, für die Info gestern am Abend mit dem Zeitplan. Die Richter-Einteilung”
|
||||
und überreicht mir einen Schmierzettel mit fast undefinierten Hieroglyphen
|
||||
Ich: “Guten Morgen, Herr Turnier-Beauftragter Richter. Haben der Herr gut geschlafen?”
|
||||
Franz: “Weist schon gibt\`s an Kaffee?”
|
||||
Ich: “Musst schauen, ich hab nur meinen Löskaffee. Magst einen von mir?"
|
||||
Franz: “Na, den kannst da kalten. Hast schon was für’n Narrenturm?”
|
||||
Ich: “Ist schon alles oben”
|
||||
|
||||
Franz macht sich auf den weg zum Narrenturm, Richterturm.
|
||||
|
||||
“Hallo, ich bin Anna. Ich soll die Protokolle für die Dressur von dir holen.”
|
||||
Ich: “Guten Morgen, Anna. Wofür brauchst du denn die Protokolle?”
|
||||
Anna: “Ich bin die Schreiberin”
|
||||
Ich: “Ah, sehr gut. Ich habe schon alles für dich vorbereitet, musst nur noch die Pickerln kleben und beim schreiben immer aufpassen, ob du eh das richtige Protokoll zum richtigen Starter hast, okay? Startlisten und Zeitplan hast du auch schon mit dabei.”
|
||||
Anna: “Pickerln, ich muss nicht alles mit der Hand vorschreiben? Das ist ja cool”
|
||||
Ich: “und kennst du dich schon mit meinem Programm aus um die Wertungen gleich in den Computer klopfen kannst?”
|
||||
Anna: “Was, das muss ich auch noch machen?”
|
||||
Ich: “Das ist nicht schwer, auf den Bewerb klicken, den richtigen Starter anklicken und die Wertung eingeben, enter, enter und der nächste Starter laut Startliste die du unten sehen kannst wird rein geladen. Die Wertung eingeben, enter, enter und so weiter.
|
||||
Also ganz einfach und unkompliziert.”
|
||||
Anna: “Und was ist wenn ich mal einen Fehler mache?”
|
||||
Ich: “Kein, Problem. du klickst den Starter aus der Ergebnis-Liste, die du gleich oben sehen kannst an, somit hast du in wieder zurück geladen, besserst die Wertung aus, bestätigst erneut, und das war es auch schon. Die Ergebnisse werde ich später auch noch mit dem schriftlichen Protokoll (Die Startliste wird gerne als “Notiz-Zettel” benutzt auf dem die Richter Ihre Wertungen selber aufschreiben, vom Hauptrichter des Bewerbes nehmen wir mit in die “Ablage”) der Richter überprüfen. Also keine Sorge, das machst du schon.”
|
||||
Anna: “Und warum, muss ich die Wertung auch noch eingeben?”
|
||||
Ich: “Damit informieren wir die Starter, die Ergebnisse sind live im Internet. Achja und ich in der Meldestelle werde meistens nicht darüber informiert, wie viele Starter dann tatsächlich platziert werden. Das Programm schlägt dir nur so viele Platzierungen vor, wie es die ÖTO vorsieht, aber wie viele dann wirklich platziert werden, entscheidet der Veranstalter in Absprache mit dem Richterkollegium. Soweit ich Michi kenne will es sicher alle platzieren die positiv sind. Diese Einstellung für die Platzierungen machst du bitte auch für mich rechts oben, einfach die Anzahl oder die Prozent eingeben, okay?”
|
||||
Anna: “Was, wir haben Live-Ergebnisse im Internet? Ist ja cool”
|
||||
Ich: “Wenn du Fragen hast oder sonnst irgendein Problem hast, dann kannst du mich im Chat vom Programm einfach fragen.”
|
||||
Anna: “Cool”
|
||||
|
||||
Anna, schafft das bestimmt.
|
||||
|
||||
7:30 Uhr
|
||||
|
||||
Jetzt brauche ich nur noch die Parcours-Skizzen von Markus.
|
||||
Karin ist auch schon früh unterwegs und läuft geradewegs bei mir vorbei.
|
||||
|
||||
Ich: “Karin\!”
|
||||
Karin sieht mich an.
|
||||
Karin: “Ja?”
|
||||
Ich: “Guten Morgen, bist auch schon früh unterwegs”
|
||||
Karin: “Guten Morgen, kennst ja Michi, wenn ich nicht alles für Ihn organisiere passiert hier nichts.”
|
||||
Ich: “Apropo organisieren, hast du Markus schon gesehen? Ich bräuchte noch seine Parcours-Skizzen.”
|
||||
Karin: “Ja, er baut gerade auf”
|
||||
Ich: “Eh schon. Wenn du Ihn siehst, sag Ihm er soll mir seine Skizzen bringen.”
|
||||
Karin: “Mach ich”
|
||||
|
||||
Auf den Parcours-Skizzen der Parcoursbauer bekomme ich die Informationen:
|
||||
\- Länge der Bahn
|
||||
\- Geschwindigkeit \- meistens 350 meter pro Minute
|
||||
\- Anzahl der Hindernisse
|
||||
\- Anzahl der Sprünge
|
||||
\- Erlaubte Zeit
|
||||
\- Idealzeit
|
||||
\- Start- und Ziel- Linie
|
||||
\- usw.
|
||||
|
||||
Viele Reiter hätten gerne so eine Skizze, damit Sie sich auf den Parcours vorbereiten können und wenn ich diesen online stellen kann, sind alle zufrieden.
|
||||
|
||||
“Hallo, ich bin die Schreiberin für das Springen”
|
||||
Ich: “Guten Morgen, hat Michi diesmal keine Zeitnehmung?”
|
||||
“Nein, er hat gesagt für das kleine Turnier braucht er keine”
|
||||
Ich: “Okay, ich bin Mo, wer bist du?”
|
||||
“Ah, ich bin Sissi”
|
||||
Ich: “Servus, Sissi\! Es sollte schon alles oben sein und kennst du dich schon aus mit dem Programm?”
|
||||
Sissi: “Ja, letzte Woche habe ich das auch schon gemacht. Da war Matthias am Stücklerhof”
|
||||
Ich: “Sehr gut, und war es schwer?”
|
||||
Sissi: “Nein, aber die Übersicht könnte noch etwas besser sein”
|
||||
Ich: “Okay, kannst du mir einen Vorschlag machen, wie du dir das Vorstellst? Indem du mir eine Beschreibung geben kannst oder eine Zeichnung?”
|
||||
Sissi: “Ja, mach ich”
|
||||
Ich: “Super, danke”
|
||||
|
||||
Ein weiterer Tutro: “Hast du die Nummer vom Hufschmied”
|
||||
Ich: “Die steht gleich an der Anschlag-Tafel. Was ist passiert”
|
||||
Turto: “Unser Pferd hat sich gerade am Abreiteplatz ein Eisen runter getreten”
|
||||
Ich: “Welches Pferd?”
|
||||
|
||||
Damit ich im Programm diesen Starter markieren kann, dass ein Problem gemeldet wurde. Somit wird der Schreiber/Zeitnehmer auf der Startliste seines Sichtfensters informiert, dass es ein Problem bei diesem Starter gibt. Diese Informationen kann dieser dann am Richterturm bescheid geben. Für einen schnellen, einfachen Informationsaustausch zwischen Meldestelle und Richterturm bzw. direkt an den oder die zuständigen Funktionäre.
|
||||
|
||||
Tutro: “Das Pferd vom Daniel”
|
||||
Ich: “Sag mir oder dem Richterturm bescheid, ob Ihr noch an den Start gehen könnt\!”
|
||||
Tutro: “Mach ich”
|
||||
|
||||
Für solche oder ähnliche Probleme am Abreiteplatz, wäre eine direkte Verbindung vom Abreiteplatz zur Meldestelle und zum Richterturm bzw. an Funktionäre sicher ein Plus.
|
||||
Könnte auch hilfreich sein, wenn diese Live-Ergebnisse im eigenen LAN-Netzwerk haben, damit diese Anzeige nicht von der örtlichen Internetverbindung abhängig ist.
|
||||
Diese, ich sage einmal “Offline-Live-Ergebnisse” könnten dann auch auf dem Gelände als Info-Anzeigen genutzt werden.
|
||||
|
||||
Die Aufgabe der Person am Abreiteplatz ist bei solchen Veranstaltungen wichtiger als man glauben mag, leider wird diese oft sehr unterschätzt.
|
||||
Die Person am Abreiteplatz hat die Uhrzeit ständig im Auge und achtet darauf, dass jeder Bewerb pünktlich beginnen kann.
|
||||
Sie/Er sorgt dafür, dass die Teilnehmer in der richtigen Reihenfolge laut Startliste rechtzeitig an den Start gehen.
|
||||
Sie/Er sollte stets den Überblick behalten, dass die nächsten Teilnehmer in Vorbereitung sind.
|
||||
Andernfalls hat dieser dies gleich dem Richterturm zu melden.
|
||||
Das ist sehr wichtig für einen gelungenen, flüssigen und vor allem stressfreien Ablauf der Veranstaltung.
|
||||
|
||||
Noch eine Reiterin läuft ganz aufgeregt herum, sieht mich, läuft zu mir und fragt mich
|
||||
“Hast du die Aufgabe?”
|
||||
Ich: “Welche brauchst du denn?”
|
||||
Reiterin: “Ich weis nicht, 2ter Bewerb”
|
||||
Ich: “Das ist die Reiternadel-Prüfung”
|
||||
Reiterin: “Ja kann sein. Ich hatte Sie auswendig gelernt, aber jetzt ist weis ich sie nicht mehr. Habt Ihr Ansager?”
|
||||
Ich: “Moment, da muss ich nachfragen”
|
||||
|
||||
Kurzer Anruf an die Schreiberin vom Dressur-Richterturm.
|
||||
Ich: "Anna, weißt du, haben wir Ansager?”
|
||||
Anna: “Ich kann sicher einen Ansager auftreiben, um wem geht es denn?”
|
||||
|
||||
Ich zur Reiterin “Wer bist du denn?”
|
||||
Reiterin “Olivia”
|
||||
|
||||
Ich zu Anna am Telefon: “Olivia im Reiternadel Bewerb”
|
||||
Anna: “Habe ich mir notiert”
|
||||
Ich: “Super, danke”
|
||||
|
||||
“Also, Olivia, es gibt die Möglichkeit einer Ansage, kann nur sein, dass wir € 2,- bis € 5,- pro Ansage Trinkgeld abkassieren. Ist das Okay für dich”
|
||||
Olivia: “Ja ist mir egal, Hauptsache ich bekomme Unterstützung”
|
||||
|
||||
“Servus Mo, du altes Haus\! Wie geht\`s deinen Kindern?”
|
||||
Ich: “Heidi, schön dich zu sehen. Was machst du hier?”
|
||||
Heidi: “Michi hat mich gebeten den Abreiteplatz zu machen”
|
||||
Ich: “Super Idee vom Michi. Danke der Nachfrage, meinen Kinder geht\`s gut.”
|
||||
|
||||
Das ist gut das Heidi den Abreiteplatz macht, Sie kennt die Reiter und den Ablauf, schließlich war Sie schon öfters als FEI-Steward bei größeren Veranstaltungen eingesetzt, die macht das.
|
||||
|
||||
8:00 Uhr
|
||||
|
||||
Die ersten Bewerbe haben endlich begonnen und bis jetzt läuft alles ganz nach Plan.
|
||||
|
||||
“Hallo, kann ich schon zahlen?”
|
||||
Ich: “Guten Morgen, natürlich darfst du zahlen. Wem möchtest du denn abrechnen?”
|
||||
Mutter einer Teilnehmerin: “ Ich zahl die Starts von Theresa L.”
|
||||
Ich: “Einen Moment bitte. Ja, Sie startet den Reiternadel-Bewerb. Das Pferd ist auch mit Nadine M. am Start in der L. Zahlst du gleich alles?”
|
||||
Mutter: “Nein, ich zahle nur den start meiner Tochter, das ist das Pferd von Ihrer Trainerin”
|
||||
Ich: “Okay, dann bekomme ich von Dir € 15,-”
|
||||
|
||||
Bei C-Neu Turnieren zahlen die Teilnehmer in den unteren Klassen kein Sportförderungs-Euro und auch kein Nenngeld.
|
||||
Das Programm muss in der Lage sein , Reiter- und aber auch Pferde- bezogen Abrechnungen durchzuführen.
|
||||
Es kommt auch öfter vor, dass Berufsreiter, Trainer, Züchter oder sonstige Einzel- und/oder Sammel- oder Rechnungen für Sponsoren, Firmen oder sonstige Personen bezogen benötigen.
|
||||
|
||||
Manche Veranstalter sind so freundlich und stellen mir als Meldestelle "Wechselgeld" zur Verfügung, welches ich natürlich auch in das Ein/Ausgabenbuch vermerken muss.
|
||||
|
||||
8:35 Uhr
|
||||
|
||||
“Hier, die soll ich dir geben”
|
||||
Ein Mädchen schnellen Schrittes mit den Dressur-Protokollen in Händen steckt mir diese entgegen.
|
||||
Ich: “Danke\!”
|
||||
|
||||
Kontrolle, ob die Ergebnisse korrekt in das System übertragen worden sind, Ergebnislisten ausdrucken und auf die Rückseite der Handschriftlichen Dressur-Protokolle anheften.
|
||||
Fertig, ab zur Ablage vor meiner Meldestelle, damit sich die Teilnehmer Ihre Protokolle abholen können.
|
||||
|
||||
Kurze Zeit später läuft Anna an der Meldestelle vobei.
|
||||
|
||||
Ich: “Und, Anna, hattest du Probleme?”
|
||||
Anna: “Nein, war genau so, wie du mir gesagt hast und danke für die Pickerln. Das hat mir viel Schreibarbeit abgenommen.”
|
||||
Ich: “Sehr gut, da lege ich dir immer die nächsten Protokolle hin, falls ich einmal nicht da sein sollte, okay?”
|
||||
Anna: “Ja, passt. Am Nachmittag kommt eine anderer, statt mir zu schreiben.”
|
||||
Ich: “Okay, erklärst du Ihr dann gleich, wie es geht?”
|
||||
Anna: “Ja, kann ich machen”
|
||||
|
||||
Die Spring-Ergebnisse kontrollieren.
|
||||
Ich gehe selber mal zum Richterturm und sehe nach dem Rechten.
|
||||
|
||||
Spring-Richterturm
|
||||
|
||||
Ich: “Und Franz, hast du alles unter kontrolle?”
|
||||
Franz: “Hey Mo, hast Ausgang bekommen?”
|
||||
Ich: “Ein bischen die Beine vertreten. Netter Parcours”
|
||||
Ein Blick zur Schreiberin Sissi
|
||||
Ich: “Ah, ihr habt ja schon eine Parcours-Skizze von Markus. Da schau Sissi, hier trägst du dann bitte die Erlaubte-Zeit ein, okay? Das System berechnet automatisch die Idealzeit.”
|
||||
Sissi: “Aja okay”
|
||||
Ich: “Und damit Ihr schnell Siegerehrungen machen könnt, brauchst du nur nach hier "Vorläufiges-Ergebnis" klicken, dann hast du eine schönere, größere Anzeige über die Ergebnisse”
|
||||
Sissi: “Wieso, vorläufig?"
|
||||
Ich: “Die Ergebnisse werden noch einmal kontrolliert und erst wenn alles richtig ist wird daraus das Endergebnis"
|
||||
|
||||
Teilnehmer haben bis zu einer halben Stunde nach Beendigung des Bewerbes das Recht, Einspruch zu erheben.
|
||||
Was zum Glück nicht oft vorkommt.
|
||||
Auf diesem Turnier ist keine elektronische Zeitnehmung im Einsatz, der/die Richter stoppen die Zeit mit einer Hand-Stoppuhr. Wenn dies der Fall ist, wird die gestoppte Zeit des Starters auf maximal zehntel Sekunden Genauigkeit für das Ergebnis übernommen.
|
||||
|
||||
Ich: “Servus, Markus. Hast du auch für mich deine Parcours-Skizzen?”
|
||||
Markus: “Ja, gleich muss nur noch den letzten Bewerb zeichnen. Ich komm dann bei die vorbei”
|
||||
|
||||
Wie immer etwas chaotisch mit ihm, aber er baut schöne, anspruchsvolle Parcours.
|
||||
|
||||
Ich setzte meinen Rundgang fort, auch Heidi hat den Abreiteplatz voll im griff.
|
||||
Markus pusht seine Schüler, da läutet das Meldestellen-Handy, Franz ruft mich an
|
||||
|
||||
Ich: “Ja?”
|
||||
Franz: "Pferde Passkontrolle, machen wir Bewerb 7”
|
||||
Ich: “Okay”
|
||||
|
||||
Damit ist mein Rundgang auch schon wieder vorbei.
|
||||
In der Meldestelle angelangt schreibe ich gleich auf die Web-Seite
|
||||
|
||||
“Pferde-Passkontrolle Bewer 7”
|
||||
|
||||
Auch auf der Startliste, welche im Internet veröffentlicht ist, vermerke ich den Zusatz rot, damit diese Änderung auffällt.
|
||||
Einen Zettel drucke ich aus, um es auf der Anschlagtafel auszuhängen.
|
||||
Der Turniersprecher hat diese Neuerung ebenfalls verkündet und wird dies noch etliche Male bis zum Beginn des Bewerbes 7 wiederholen.
|
||||
|
||||
Kiste vorbereiten für die Pferdepässe und eine Startliste zum Abstreichen.
|
||||
Wenn alle Pferdepässe eingelangt sind, wird die/der Turnier-Tierarzt verständige, dieser kontrolliert die eingetragenen Pflichtimpfungen der Pferde.
|
||||
Nicht ordnungsgemäß eingetragene Impfungen werden laut ÖTO geahndet.
|
||||
Ist ein Pferdepass nicht rechtzeitig vor Beginn des Bewerbes eingetroffen, ist dieser Teilnehmer nicht startberechtigt.
|
||||
Im Endeffekt entscheidet der Turnier- Beauftragte Richter, was geschehen wird.
|
||||
|
||||
Markus: “Da hast”
|
||||
|
||||
Markus überreicht mir einen USB-Stick mit seinen Parcours-Skizzen
|
||||
|
||||
Ich: “Hast das in PDF-format übertragen?”
|
||||
Markus: “glaub schon”
|
||||
|
||||
Reiterin kommt vorbei.
|
||||
|
||||
“Gibt\`s schon Protokolle?”
|
||||
Ich: “Ja, da vorne”
|
||||
Reiterin: “Die Ergebnisse?”
|
||||
Ich: “Hinten dran und im Internet”
|
||||
Reiterin: “Kannst du das hier erkennen, was das heißen soll?”
|
||||
|
||||
Und zeigt mir das Protokoll mit den Hieroglyphen
|
||||
|
||||
Ich: “Hmm … könnte nicht taktrein heißen”
|
||||
Reiterin: “Das könnte sein, ja danke”
|
||||
|
||||
Ring ring …
|
||||
Das Meldestellen-Handy läutet
|
||||
|
||||
“Sissi, was gibt\`s?”
|
||||
Sissi: “Das Programm schreibt mir gerade, dass es keine Verbindung zur Meldestelle mehr hat, was soll ich tun?”
|
||||
Ich: “Kein Problem, schreib einfach weiter, ich werde die Verbindung gleich kontrollieren.”
|
||||
|
||||
Na super, bis jetzt lief alles so gut und jetzt das noch.
|
||||
Okay, wo könnte das Problem liegen?
|
||||
Bei mir in der Meldestelle ist alles angeschlossen und hat Strom.
|
||||
Kontrollieren wir einmal das erste Funkie, Kabel ist in Ordnung und Strom ist auch vorhanden.
|
||||
Empfänger-Funkie, ah das hat keinen Strom.
|
||||
Warum? Angeschlossen ist alles. Ah, da haben wir den Übeltäter, das POE-Netzteil ist überhitzt, weil die Sonne direkt darauf scheint, hat der Überhitzungsschutz abgeschaltet.
|
||||
Zum Glück habe ich noch ein Ersatz-Netzteil mit, gleich wechseln und irgendwie abdecken, damit es von der Sonneneinstrahlung besser geschützt ist.
|
||||
Kontrollgang zur Sissi, ob Sie wieder eine Verbindung hat und auch gleich bei Ihr darauf achten, dass das Netzteil vom Laptop und natürlich auch den Laptop selbst von der Sonne etwas schützen.
|
||||
|
||||
Zurück zur Meldestelle, sind schon ein paar Leute angestellt.
|
||||
|
||||
“Bin schon da, was kann ich antun?”
|
||||
Teilnehmer: “Wir wollen zahlen\!”
|
||||
Ich: “Warum sagt Ihr das nicht gleich? Dafür lasse ich doch alles liegen und stehen.”
|
||||
|
||||
Während ich unterwegs war, um die Verbindung wiederherzustellen, hatten die wartenden Teilnehmer fast die gesamten Süßigkeiten, die ich als kleine Versüßung zur Meldestelle aufgestellt hatte, vernascht.
|
||||
Naja, eine Packung habe ich noch in Reserve.
|
||||
|
||||
Kaum hatte ich diese Traube an Teilnehmer abgefertigt, ruft mich Anna an.
|
||||
|
||||
“Ja, was gibt\`s”
|
||||
Anna: “Die Reiter brauchen für die Aufgabe länger als die 3 min. 30 sek. Dadurch sind wir im Verzug”
|
||||
Ich: “Okay, lass mich kurz nachsehen. Wir sind ca. 10 min. im Verzug. Stimmt das in etwa?”
|
||||
Anna: “Ja, das kommt hin.”
|
||||
Ich: “Das heist, wenn der Bewerb vorbei ist und alle weiteren Starter jetzt wie lange brauchen?”
|
||||
Anna: “Gute Minute bis 1,5 Minuten brauchen die länger”
|
||||
Ich: “Das heist wir haben abzüglich der Mini-Pause dazwischen ca. 25 Minuten verspätung für den nächsten Bewerb. Danach haben wir eh die kleine Mittagspause. Dadurch haben wir die Verspätung wieder kompensiert. Okay, wir machen gleich ohne Pause mit dem nächsten Bewerb weiter und die Siegerehrung findet ohne Pferd in der Gastro statt, okay. Sagst du das dem Sprecher, das er dass gleich so verkünden soll. Der nächste Bewerb ca. 20 Minuten verspätung soll er sagen, okay?
|
||||
Anna: “Okay, ohne Pause ca. 20 Minuten nächster Bewerb Verspätung, Siegerehrung ohne Pferd in der Gastro, passt sage ich Ihm”
|
||||
|
||||
Auch das noch. Eine Dressuraufgabe, die länger dauert als auf dieser angeschlagen steht und noch dazu in einem Bewerb, wo wir mehr Starter haben.
|
||||
Gleich diese neue Startzeit für den nächsten Bewerb im Internet deutlich machen und dem Abreiteplatz (Heidi) bescheid geben.
|
||||
Da wird es sicher zumindest einen Dressur-Reiter geben die/der sich aufregen wird.
|
||||
|
||||
@@ -0,0 +1,117 @@
|
||||
---
|
||||
type: ADR
|
||||
status: DRAFT
|
||||
owner: Lead Architect
|
||||
---
|
||||
# Use Cases Draft - Phase 1 (Core Domain)
|
||||
|
||||
* **Status:** Draft
|
||||
* **Fokus:** High-Level Prozessflüsse und Systemgrenzen
|
||||
|
||||
---
|
||||
|
||||
## Cluster 1: Turnier-Initialisierung & Datenbasis
|
||||
|
||||
### UC-01: Turnier-Stammdaten importieren
|
||||
* **Akteur:** Meldestellen-Leiter
|
||||
* **Auslöser:** Vorbereitung eines neuen Turniers oder Update am Turniermorgen.
|
||||
* **Vorbedingung:** `zns.zip` (oder äquivalente OEPS-Daten) liegt vor.
|
||||
* **Ablauf:**
|
||||
1. System liest die Datensätze für Pferde, Reiter, Vereine und Funktionäre.
|
||||
2. System aktualisiert die lokale Datenbank (Insert/Update).
|
||||
3. System markiert Datensätze mit Sperrvermerken oder fehlenden Lizenzen.
|
||||
* **Nachbedingung:** Die lokale Datenbank ist die "Single Source of Truth" für Validierungen.
|
||||
|
||||
### UC-02: Turnier-Konfiguration anlegen
|
||||
* **Akteur:** Meldestellen-Leiter
|
||||
* **Auslöser:** Erstellung eines neuen Events.
|
||||
* **Vorbedingung:** Ausschreibung liegt vor.
|
||||
* **Ablauf:**
|
||||
1. Akteur definiert Stammdaten (Ort, Datum, Veranstalter).
|
||||
2. Akteur legt Bewerbe an (Nummer, Klasse, Richtverfahren).
|
||||
3. Akteur definiert Gebühren (Nenngeld, Startgeld, Boxenpreise).
|
||||
* **Nachbedingung:** Das Turniergerüst steht bereit für Nennungen.
|
||||
|
||||
---
|
||||
|
||||
## Cluster 2: Nennungs-Management (Pre-Competition)
|
||||
|
||||
### UC-03: Nennung erfassen & validieren
|
||||
* **Akteur:** Meldestellen-Mitarbeiter
|
||||
* **Auslöser:** Import von Online-Nennungen oder manuelle Eingabe.
|
||||
* **Ablauf:**
|
||||
1. System prüft Existenz von Reiter und Pferd (via Satznummer).
|
||||
2. **Validierung:**
|
||||
* Ist die Startkarte bezahlt?
|
||||
* Ist die Lizenz ausreichend für die Klasse?
|
||||
* Liegt eine Sperre vor?
|
||||
* Ist das Pferd geimpft/registriert?
|
||||
3. Bei Validierungsfehler: System zeigt Warnung, erlaubt aber "Override" durch Akteur (z.B. "Zahlung erfolgt").
|
||||
4. System verknüpft Paar mit Bewerb.
|
||||
* **Nachbedingung:** Das Paar ist auf der "Nennliste" (noch nicht Starterliste).
|
||||
|
||||
### UC-04: Pferd/Reiter tauschen
|
||||
* **Akteur:** Meldestellen-Mitarbeiter
|
||||
* **Auslöser:** Reiter fällt aus oder Pferd ist lahm.
|
||||
* **Ablauf:**
|
||||
1. Akteur wählt bestehende Nennung.
|
||||
2. Akteur tauscht Reiter ODER Pferd aus.
|
||||
3. System führt Validierung (UC-03) für die neue Kombination durch.
|
||||
4. System protokolliert den Tausch (relevant für T-Satz im Export).
|
||||
* **Nachbedingung:** Nennung ist aktualisiert, Historie ist gewahrt.
|
||||
|
||||
---
|
||||
|
||||
## Cluster 3: Durchführung & Sport (Competition)
|
||||
|
||||
### UC-05: Startliste erstellen
|
||||
* **Akteur:** Meldestellen-Leiter
|
||||
* **Auslöser:** Nennschluss für einen Bewerb ist erreicht.
|
||||
* **Ablauf:**
|
||||
1. Akteur definiert Startreihenfolge (z.B. "Alphabetisch", "Gelost", "Nach Lizenz").
|
||||
2. System generiert die Reihenfolge.
|
||||
3. System weist Kopfnummern zu (falls noch nicht geschehen).
|
||||
4. System teilt bei Bedarf in Abteilungen (siehe US-005).
|
||||
* **Nachbedingung:** Die Startliste ist fixiert und kann gedruckt/publiziert werden.
|
||||
|
||||
### UC-06: Ergebnis erfassen
|
||||
* **Akteur:** Richter / Schreiber / Zeitnehmung
|
||||
* **Auslöser:** Ein Ritt ist beendet.
|
||||
* **Ablauf:**
|
||||
1. Akteur wählt Starter.
|
||||
2. Akteur gibt Rohdaten ein (Zeit, Fehlerpunkte, Wertnote).
|
||||
3. System berechnet sofort den Score und den vorläufigen Rang.
|
||||
4. System prüft auf Spezialfälle (Ausschluss, Aufgabe).
|
||||
* **Nachbedingung:** Ergebnis ist gespeichert, Live-Ranking ist aktualisiert.
|
||||
|
||||
### UC-07: Bewerb abschließen
|
||||
* **Akteur:** Meldestellen-Leiter / Hauptrichter
|
||||
* **Auslöser:** Letzter Reiter ist fertig, Einspruchsfrist abgelaufen.
|
||||
* **Ablauf:**
|
||||
1. System finalisiert die Rangierung (inkl. Ex-Aequo Regeln).
|
||||
2. System berechnet Geldpreise gemäß Ausschreibung und Teilnehmerzahl.
|
||||
3. System sperrt den Bewerb für Änderungen.
|
||||
* **Nachbedingung:** Ergebnisse sind "amtlich", Geldpreise sind den Konten gutgeschrieben.
|
||||
|
||||
---
|
||||
|
||||
## Cluster 4: Abschluss & Finanzen
|
||||
|
||||
### UC-08: Konto abrechnen (Kassieren)
|
||||
* **Akteur:** Kassen-Mitarbeiter
|
||||
* **Auslöser:** Teilnehmer will abreisen/bezahlen.
|
||||
* **Ablauf:**
|
||||
1. System aggregiert alle Kosten (Nenngelder, Boxen, Gebühren) pro "Verantwortlicher Person".
|
||||
2. System zieht gewonnene Geldpreise ab.
|
||||
3. System erstellt Saldo.
|
||||
4. Akteur verbucht Zahlungseingang.
|
||||
* **Nachbedingung:** Konto ist ausgeglichen, "Horse Pass" kann ausgegeben werden.
|
||||
|
||||
### UC-09: OEPS-Export durchführen
|
||||
* **Akteur:** Meldestellen-Leiter
|
||||
* **Auslöser:** Turnierende.
|
||||
* **Ablauf:**
|
||||
1. System prüft Datenintegrität (Alle Pflichtfelder für Export vorhanden?).
|
||||
2. System generiert `XXXXX.ERG` Datei gemäß Spezifikation V2.4.
|
||||
3. System erstellt Protokoll über eventuelle Warnungen/Abweichungen.
|
||||
* **Nachbedingung:** Export-Datei liegt bereit zur Übermittlung.
|
||||
@@ -0,0 +1,114 @@
|
||||
---
|
||||
type: ADR
|
||||
status: DRAFT
|
||||
owner: Lead Architect
|
||||
---
|
||||
# User Stories Draft - Phase 1 (Core Domain)
|
||||
|
||||
* **Status:** Draft
|
||||
* **Fokus:** Nationale Turniere (OEPS), Offline-Betrieb, Basis-Verwaltung
|
||||
|
||||
---
|
||||
|
||||
## Epic 1: Stammdaten & Offline-Vorbereitung
|
||||
|
||||
### US-001: Import der Verbands-Stammdaten (ZNS)
|
||||
**Als** Meldestellen-Leiter
|
||||
**möchte ich** die offizielle `zns.zip` Datei (Pferde, Reiter, Vereine, Richter) in das System importieren,
|
||||
**damit** ich auch ohne Internetverbindung Zugriff auf alle validen Lizenz- und Pferdedaten habe.
|
||||
|
||||
* **Akzeptanzkriterien:**
|
||||
* System akzeptiert `zns.zip` oder entpackte `.dat` Dateien (Codepage 850).
|
||||
* Importiert `PFERDE01.dat` (inkl. Mapping der 10-stelligen Satznummer).
|
||||
* Importiert `LIZENZ01.dat` (inkl. Startkarten-Status und Sperrvermerke).
|
||||
* Der Import ist performant genug, um am Turniermorgen aktualisiert zu werden (< 5 Min).
|
||||
* Fehlerhafte Datensätze werden protokolliert, brechen den Import aber nicht ab.
|
||||
|
||||
### US-002: Intelligente Akteur-Suche
|
||||
**Als** Meldestellen-Mitarbeiter
|
||||
**möchte ich** Reiter und Pferde über eine fehlertolerante Suche finden (Name, Kopfnummer, Lizenznummer),
|
||||
**damit** ich Nennungen schnell erfassen kann, auch wenn der Reiter seine genaue Nummer nicht weiß.
|
||||
|
||||
* **Akzeptanzkriterien:**
|
||||
* Suche nach Pferdenamen (Teilübereinstimmung).
|
||||
* Suche nach Kopfnummer (z.B. "A123").
|
||||
* Anzeige von Warnhinweisen direkt im Suchergebnis (z.B. "Sperrliste", "Keine Startkarte").
|
||||
* Unterscheidung bei Namensgleichheit durch Anzeige von Verein/Jahrgang/Abstammung.
|
||||
|
||||
---
|
||||
|
||||
## Epic 2: Nennung & Check-in
|
||||
|
||||
### US-003: Validierung der Startberechtigung (Startkarte)
|
||||
**Als** Meldestellen-Leiter
|
||||
**möchte ich**, dass das System mich warnt, wenn ein Reiter für einen Bewerb nennt, aber keine aktive Startkarte (Jahresgebühr) hat,
|
||||
**damit** ich ihn zur Nachzahlung auffordern kann.
|
||||
|
||||
* **Akzeptanzkriterien:**
|
||||
* Prüfung des Flags `STARTKARTE` aus den Stammdaten.
|
||||
* Prüfung der Lizenzklasse (z.B. darf "R1" nicht in Klasse S starten).
|
||||
* **Wichtig:** Das System darf die Nennung *nicht* blockieren (Soft-Validation), sondern muss einen "Override" ermöglichen (z.B. "Zahlung vor Ort erfolgt").
|
||||
* Visuelle Hervorhebung in der Starterliste (z.B. roter Status).
|
||||
|
||||
### US-004: Manuelle Nachnennung vor Ort
|
||||
**Als** Meldestellen-Mitarbeiter
|
||||
**möchte ich** ein Pferd-Reiter-Paar kurzfristig zu einem Bewerb hinzufügen,
|
||||
**damit** Teilnehmer, die die Online-Nennfrist verpasst haben, gegen Gebühr noch starten können.
|
||||
|
||||
* **Akzeptanzkriterien:**
|
||||
* Auswahl von Bewerb, Reiter und Pferd.
|
||||
* Automatische Berechnung der erhöhten Nenngebühr (Nachnenngebühr).
|
||||
* Vergabe einer Startnummer (fortlaufend oder manuell).
|
||||
* Eintrag in die `KKARTEI` (Nennliste) und `BBEWERBE` (Starterliste).
|
||||
|
||||
---
|
||||
|
||||
## Epic 3: Bewerbs-Abwicklung
|
||||
|
||||
### US-005: Verwaltung von Abteilungen
|
||||
**Als** Meldestellen-Leiter
|
||||
**möchte ich** einen Bewerb mit vielen Startern in mehrere Abteilungen (z.B. R1-Reiter vs. R2-Reiter) unterteilen,
|
||||
**damit** ich getrennte Ergebnislisten und Platzierungen erstellen kann, wie es die ÖTO verlangt.
|
||||
|
||||
* **Akzeptanzkriterien:**
|
||||
* Ein Bewerb kann in n Abteilungen gesplittet werden.
|
||||
* Starter können per Drag&Drop oder Regel (z.B. "Alle R1 in Abt. 1") zugewiesen werden.
|
||||
* Jede Abteilung hat eine eigene Platzierung, aber sie teilen sich die gleichen Prüfungsparameter (Parcours).
|
||||
* Export berücksichtigt das Feld `ABTEILUNG` im B-Satz.
|
||||
|
||||
### US-006: Ergebniserfassung & Platzierung
|
||||
**Als** Richter oder Schreiber
|
||||
**möchte ich** Ergebnisse (Zeit, Fehler, Wertnote) für einen Starter eingeben,
|
||||
**damit** die Rangierung automatisch berechnet wird.
|
||||
|
||||
* **Akzeptanzkriterien:**
|
||||
* Eingabemaske optimiert für schnelle Nummernblock-Eingabe.
|
||||
* Automatische Berechnung der Rangfolge basierend auf dem Regelwerk (Fehler/Zeit vs. Wertnote).
|
||||
* Handling von Spezialfällen: Ausschluss (EL), Aufgabe (RET), Disqualifikation (DQ), Nicht angetreten (DNS).
|
||||
* Sofortige Aktualisierung der "Live-Ergebnisse".
|
||||
|
||||
---
|
||||
|
||||
## Epic 4: Abschluss & Export
|
||||
|
||||
### US-007: OEPS-Konformer Ergebnis-Export
|
||||
**Als** Meldestellen-Leiter
|
||||
**möchte ich** die Ergebnisse des Turniers in das definierte Format (ASCII, Codepage 850) exportieren,
|
||||
**damit** ich meiner Meldepflicht gegenüber dem Verband nachkommen kann.
|
||||
|
||||
* **Akzeptanzkriterien:**
|
||||
* Erstellung der `XXXXX.ERG` Datei.
|
||||
* Strikte Einhaltung der Spaltenbreiten und Formate (siehe Legacy Spec Analyse).
|
||||
* Validierung vor Export: Warnung bei fehlenden Satznummern oder ungültigen Codes.
|
||||
* Korrekte Zuordnung der Nation (Gast vs. Inländer).
|
||||
|
||||
### US-008: Kassenabschluss & Abrechnung
|
||||
**Als** Veranstalter
|
||||
**möchte ich** eine Liste aller offenen Posten (Nenngelder, Boxen, Nachnenngebühren) pro Reiter/Verein sehen,
|
||||
**damit** ich vor der Ausgabe der Pferdepässe kassieren kann.
|
||||
|
||||
* **Akzeptanzkriterien:**
|
||||
* Aggregierte Ansicht pro "Verantwortlicher Person" (Zahler).
|
||||
* Auflistung aller Posten (Nennung, Startgeld, Gebühren).
|
||||
* Verrechnung von gewonnenen Geldpreisen (Gutschrift).
|
||||
* Druckfunktion für Rechnung/Quittung.
|
||||
Reference in New Issue
Block a user