TippStar - das Fußball-Tippspiel für alle Formate
TippStar ist ein Fußball-Tippspiel, dass sämtliche Liga- und Turnierformate abbilden kann und somit länderübergreifend funktioniert. Als Progressive Web App besitzt es ein sauberes Design, dass größtenteils auf Scrollen verzichtet und sich auf mobilen Endgeräten und Desktops wie eine App anfühlt. Die Datenbanken und Dateien werden auf meinem Webspace gehostet.
Benutzerrollen
Es wird die folgenden Benutzerrollen geben:
| Benutzerolle | Beschreibung |
|---|---|
| Admin | Kann Einstellungen der Website verwalten Kann Wettbewerbe erstellen und deren Einstellungen verwalten Kann Tipprunden erstellen und deren Einstellungen verwalten Kann Manager einladen und verwalten Kann Spieler einladen und verwalten Kann als Manager fungieren Kann als Spieler fungieren |
| Manager | Kann Tipprunden erstellen und deren Einstellungen verwalten Kann Manager einladen und verwalten Kann Spieler einladen und verwalten Kann als Spieler fungieren |
| Tipper | Kann Spieler einladen Kann als Spieler fungieren |
Datenmodelle
Für ein funktionsfähiges Tippspiel ist eine Vielzahl verschiedener Datenmodelle nötig:
| Datenmodell: st_user | ||||
| Name | Beschreibung | Besonderheiten | ||
| id | Die ID des Benutzers | integer, incremental, unique | ||
| avatar | Der Avatar des Benutzers | Image-Upload (512x512px max., PNG/JPG/SVG) | ||
| username | Der Benutzername des Benutzers | string | ||
| displayname | Der Anzeigename des Benutzers | string | ||
| first_name | Der Vorname des Benutzers | string, optional | ||
| last_name | Der Nachname des Benutzers | string, optional | ||
| Die E-Mail des Benutzers | string | |||
| password | Das Passwort des Benutzers | string, encrypted | ||
| user_role | Die Benutzerrolle des Benutzers | admin, manager, player | ||
| Datenmodell: st_federations | ||||
| Name | Beschreibung | Besonderheiten | ||
| id | ID des Verbands | integer, incremental, unique | ||
| logo | Logo des Verbands | Bild aus uploads/federations Ordner: name_short.png/svg | ||
| name | Voller Name des Verbands | string | ||
| name_short | Abkürzung des Namens des Verbands | string | ||
| category | Kategorie des Verbands | world, continental, regional, country | ||
| umbrella | Dachverband des Verbands | select, optional | ||
| Datenmodell: st_teams | ||||
| Name | Beschreibung | Besonderheiten | ||
| id | ID des Teams | integer, incremental, unique | ||
| logo | Logo des Teams | Bild aus uploads/teams Ordner: name_short.png/svg | ||
| name | Voller Name des Teams | string | ||
| name_short | Abkürzung des Namens des Teams | string | ||
| type | Typ des Teams | normal, placeholder_auto, placeholder_manual | ||
| category | Kategorie des Teams | club, national | ||
| federation | Verband des Teams | select, optional | ||
| Typ: Bei type=placeholder_auto oder type=placeholder_manual wird als logo automatisch uploads/teams/placeholder.png/svg gesetzt. Bei diesen Teams entfällt außerdem federation. Diese Teams sind universell einsetzbar. Der Unterschied zwischen auto und manuell besteht darin, dass auto bedeutet, dass das Team automatisch über seinen Namen im Laufe des Wettbewerbs durch ein echtes Team ersetzt wird (Beispiel: 1. Gruppe A), bei manuell muss der Admin das Team im Wettbewerb manuell ersetzen (Beispiel: 3. Gruppe A/C/D/F), da ein komplexer Algorithmus das entsprechende Team errechnet und dieser Algorithmus nicht in die Wettbewerbe dieses Tippspiels implementiert werden kann. | ||||
| Datenmodell: st_competition | ||||
| Name | Beschreibung | Besonderheiten | ||
| id | ID des Wettbewerbs | integer, incremental, unique | ||
| logo | Logo des Wettbewerbs | Bild aus uploads/teams Ordner: name_short.png/svg | ||
| name | Voller Name des Wettbewerbs | string | ||
| name_short | Abkürzung des Namens des Wettbewerbs | string | ||
| season | Saison des Wettbewerbs | string | ||
| oldb_id | ID des Wettbewerbs bei OpenLigaDB | string | ||
| oldb_season | Saison des Wettbewerbs bei OpenLigaDB | string | ||
| creator | ID des Erstellers des Wettbewerbs | integer | ||
| type | Typ des Wettbewerbs | league, league+ko, group, group+ko, custom | ||
| wenn type=league | ||||
| rounds | Anzahl Runden der Liga | integer | ||
| rounds_names | Namen der Runden der Liga | Beispiele: Hinrunde, Rückrunde, usw. | ||
| teams | Anzahl Teams der Liga | integer | ||
| matchdays | Anzahl Spieltage der Liga | integer | ||
| match_rules | Punkte für Sieg (S), Unentschieden (U) und Niederlage (N) | diverse Regeln in Reihenfolge (siehe Hinweise) | ||
| tiebreaker_rules | Priorität der Tabellen-Platzierungsregeln | diverse Regeln in Reihenfolge (siehe Hinweise) | ||
| tables_visible | Tabellen, sie Sichtbar sein sollen | Zur Auswahl: 1 Tabelle je Runde, Hin- und Rückrunde, Heim-/Auswärts-Tabelle und Gesamt | ||
| table_markers | Markierungen in den Liga-Tabelle | diverse Regeln in Reihenfolge (siehe Hinweise) | ||
| table_columns | Sichtbare Spalten in den Tabellen | Auswahl und Reihenfolge der Tablelnspalten | ||
| competition_rules | Erläuterung der Liga-Regeln | WYSIWYG-Editor mit HTML Tags außer iframe und script | ||
| wenn type=group | ||||
| groups | Anzahl Gruppen der Gruppenphase | integer mit Entscheidung, die Gruppen numerisch oder alphanumerisch zu benennen (Gruppe 1 bis 8 oder Gruppe A bis H) | ||
| teams | Anzahl Teams je Gruppe | integer | ||
| matchdays | Anzahl Spieltage der Gruppenphase | integer | ||
| match_rules | Punkte für Sieg (S), Unentschieden (U) und Niederlage (N) | diverse Regeln in Reihenfolge (siehe Hinweise) | ||
| tiebreaker_rules | Priorität der Tabellen-Platzierungsregeln | diverse Regeln in Reihenfolge (siehe Hinweise) | ||
| tables_visible | Welche Tabellen sollen angezeigt werden | Zur Auswahl: 1 Tabelle je Gruppe, Heim-/Auswärtstabellen, Gesamttabelle | ||
| table_markers | Markierungen in den Gruppen-Tabelle | diverse Regeln in Reihenfolge (siehe Hinweise) | ||
| table_columns | Sichtbare Spalten in den Tabellen | Auswahl und Reihenfolge der Tablelnspalten | ||
| Typ: Bei type=custom legt der Admin fest, in welcher Reihenfolge die typen league, group und ko gespielt werden, sodass es möglich ist, beliebig komplexe Wettbewerbe zu erstellen. Bei allen andere type ist die Reihenfolge durch die Bezeichnung vorgegeben. Tiebreaker-Regeln: Die Tiebreaker-Regeln bestimmen, wie der Tabellenplatz ermittelt wird, wenn mehrere Team den gleichen Punktestand haben. Zur Auswahl stehen: : Punkte, Tordifferenz, Erzielte Tore, Direkter Vergleich (Punkte), Direkter Vergleich (Tordifferenz), Direkter Vergleich (Auswärtstore), Direkter Vergleich (Heimtore), Meiste Auswärtstore, Meiste Heimtore, FairPlay-Wertung, Externe Rangliste, Auslosung, Entscheidungsspiel, Admin-Entscheidung. Tabellenspalten: Die anzuzeigenden Spalten und deren Reihenfolge. Zur Auswahl stehen: Platzierung, Teamname, Teamlogo, Punkte, Heimpunkte, Auswärtspunkte, Heimtore, Auswärtstore, Tordifferenz, Siege, Unentschieden, Niederlagen, Form der letzten 3/5/10 Spiele. |
||||
| Datenmodell: st_betting-game | ||||
| Name | Beschreibung | Besonderheiten | ||
| Datenmodell: st_results | ||||
| Name | Beschreibung | Besonderheiten | ||
| Datenmodell: st_predictions | ||||
| Name | Beschreibung | Besonderheiten | ||
| Datenmodell: st_statistics | ||||
| Name | Beschreibung | Besonderheiten | ||
| MEMO Punkte für Sieg, Unentschieden, Niederlage Tiebreaker-Regeln für Platzierungen Wettbewerbsrunden, Rundenart und Reihenfolge Regeltext Wettbewerb |
||||
