Replies: 3 comments
-
|
Um mit einer Software zur Teilnehmerverwaltung oder Wettkampfplanung zu interagieren sollten folgende Schnittstellen gewährleistet sein:
|
Beta Was this translation helpful? Give feedback.
-
Verweis auf alten Vorschlag: Turnierplanung mit IpponboardDie verschiedenen Phasen eines Turnieres
Akteure
Artefakte
Architektur-ModellIn der Datei 'architecture-model.c4' ist ein Architektur-Moell enhalten, welches mit Hilfe der C4-Beschreibungssprache erstellt wurde. Diese Datei kann mit der "LikeC4"-Extension für Visual Studio Code angesehen und bearbeitet werden. Gleiches ist über folgende URL möglich: https://likec4.dev/playground/. API Entwurf zur Kommunikation zwischen Ipponboard und Lokalem Server
Möglichen Anzeigen des Ipponboards---
title: Ipponboard Anzeigen
---
stateDiagram-v2
weighting: Während dem Wiegen
[*] --> weighting
state weighting {
a0: Altsklassen x,y bitte zum wiegen
a1: Eigene Nachricht
a0 --> a1
note right of a1
Wie: Es fehlen 5 gemeldete Jodokas zum wiegen
oder
Die Judokas aus Bad Ems bitte noch zum wiegen
end note
}
weighting --> warmup
warmup: Zwischen Wiegen und Beginn der Kämpfe
state warmup {
b1: Wiegen beendet, bitte wärmt euch auf
b1 --> b2
b2:Hier starten in Kürze die Kämpfe der Listen x,y,z...
}
warmup --> fighting
fighting: Während der Kampfaustragung
state fighting {
[*] --> c0
c0: Anzeige der nächsten Gewichtsklasse
c1: Anzeige der nächsten Kämpfe
c2: Punkteanzeige der aktuellen Begegnung
c3: Päsentation des Siegers, damit dieser bestätigen kann
c4: Anzeige Verletzungsbedingte Pause
c0 --> c1
state if_ill <<choice>>
c1 --> c2
c2 --> if_ill
if_ill --> c3 : Wenn alles gut geht
if_ill --> c4 : Wenn verletzt
c4 --> c2
c3 --> c0
}
fighting --> ceremony
ceremony: Vor und während Siegerehrung
state ceremony {
d0: Verweis auf die Siegerehrung
d1: GGf. Anzeige von Kampfstatistik, Siegern, Vereinswertung oä.
d0 --> d1
}
ceremony --> [*]
Modell zur Datenhaltung über den Turnierablauf durch Ipponboard---
title: Ipponboard Wettkampf manager
---
classDiagram
Turnier *-- Wettkampf
Wettkampf --> TeilnehmerBase
Wettkampf o-- KampfListe
Gewichtsklasse --o Wettkampf
class Turnier {
+string Name
+DateTime Meldeschluss
+string Url
+string KontaktEmail
+Wettkampf[] Wettkaempfe
}
note for Turnier "Jedes Turnier kann aus mehreren Wettkämpfen bestehen\n also zB. U11m sowie U11w.\n Weil deren TeilnehmerInnen sich nicht mischen."
class Wettkampf {
+TeilnehmerBase[] GemeldeteTeilnehmer
+KampfListe[] Listen
+string Name
+DateTime Datum
+string Altersklasse
+string Geschlecht
+byte TurnierArt: Einzel, Mannschaft, Bundesliga, Bodenkampfturnier
+DateTime WiegeStart
+DateTime WiegeEnde
+DateTime KämpfeStartGeplant
+Gewichtsklasse[] Gewichtsklassen
}
class Mannschaft{
+Teilnehmer[] Teilnehmer
}
class GewichtsklassenEinstellungen{
+string Name
+byte Kampfdauer
+string SonstigesJSON
}
class Gewichtsklasse{
+string name
+int MaxGewicht
+int MinGewicht
+GewichtsklassenEinstellungen: Einstellungen
+Teilnehmer[] GemeldeteTeilnehmer : Es erscheinen nicht unbedingt alle
}
Gewichtsklasse --|> GewichtsklassenEinstellungen
class Teilnehmer{
+Gewicht Gewicht
+Gewichtsklasse GewichtsklasseAngedachte
+Gewichtsklasse GewichtsklasseEcht
}
class TeilnehmerBase {
<<Abstract>>
+Key Id
+string Name
+Verein Verein
+int TeilnehmerTyp : Mannschaft oder Einzelperson
+int TeilnehmerListenNummer
}
Teilnehmer --|> TeilnehmerBase
Mannschaft --|> TeilnehmerBase
class Listensystem {
+string Name
}
class KampfListe {
+string Name
+ListenSystem System
+Gewichtsklasse Gewichtsklasse
+TeilnehmerBase[] Teilnehmer
+Begegnungen[] Begegnungen
}
KampfListe *-- Begegnung
KampfListe --> TeilnehmerBase
KampfListe --> Gewichtsklasse
KampfListe --> Listensystem
class Punkte {
+byte Ippon
+byte WazaAri
+byte Shido
+byte Hansokumake
+byte SummePunkte
+bool SchiedsrichterEnt
}
class SchiedsrichterZeichen {
+DateTime Timestamp
+DateTime RelativTimestamp
+string Name
}
class Wertungsvergabe{
+Punkte Wertung
}
note for Wertungsvergabe "Für Schiedsrichterzeichen,\n welche eine Wertung als Resultat haben.\n Diese können dann summiert übertragen werden."
Wertungsvergabe --|> SchiedsrichterZeichen
class KampfHistorie {
+DateTime StartZeitpunkt
+DateTime Endzeitpunkt
+TimeSpan Dauer
+Wertungsvergabe[] Wertungsvergaben
}
note for KampfHistorie "Der Weg ist das Ziel.\n Alles was während einer Begegnung von zwei Judokas passiert\n sollte geloggt werden. Damit auch für die Tischbesetzung klar ist\n wer, wann, wie oft auf was geklickt hat.\n Jeder Osaikomi, jedes Matte, jede zurückgenommene Wertung.\n So sicher wie Buchhaltung"
class Begegnung {
+int Nummer
+byte Status : offen, sieg weiß sie rot, unentschieden
+Punkte PunkteRot
+Punkte PunkteWeiss
+byte BegegnungStatus : ofen, läuft, vorbei
}
Begegnung <|-- BegegnungMannschaft
Begegnung <|-- BegegnungEinzel
note for Begegnung "Die Erstellung von Kampflisten führt dazu,\n dass jede denkbare Begegnung direkt erstellt\n und nummeriert wird.\n Begegnungen mit nur einem Teilnehmer sind Freilose."
class BegegnungMannschaft {
+Mannschaft Sieger
+Mannschaft TeilnehmerWeiss
+Mannschaft TeilnehmerRot
+BegegnungEinzel[] Begegnungen
}
class BegegnungEinzel {
+Teilnehmer TeilnehmerWeiss
+Teilnehmer TeilnehmerRot
+Teilnehmer Sieger
+SchiedsrichterZeichen Ablauf
+KampfHistorie Historie
}
Begegnung *-- Punkte
KampfHistorie *-- SchiedsrichterZeichen
BegegnungEinzel "1" *-- "1" KampfHistorie : hat eine ggf. volatile
|
Beta Was this translation helpful? Give feedback.
-
|
Eine Anbindung über lokale Dateien (welche per Dateisystem-Synchronisierung abgeglichen werden, siehe Dropbox, Docs, OneDrive, Sparkle Share oä.) also lauter atomare json-Dateien. Wäre auch denkbar. Dann würden die GET-Befehle zu Leseoperationen führen und die POST-Befehle zu Schreiboperationen in die synchronisierten Ordner. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Beta Was this translation helpful? Give feedback.
All reactions