Code Monkey home page Code Monkey logo

kicker-ranking's People

Contributors

alephnul avatar exomo avatar fsnext123 avatar kbublitz avatar solmath avatar thomas-trapp-itk avatar

Watchers

 avatar  avatar  avatar

Forkers

exomo trapplab

kicker-ranking's Issues

Sortieren der Spieler nach "vereinfachtem Score"

Die meisten nutzer des Systems verstehen die Bedeutung der von trueskill berechneten Score werte nicht. Stattdessen soll ein "Anzeigescore" für die Anzeige der Rangliste verwendet werden.

  • Anzeigescore = (mu - sigma) - Untere Abschätzung
  • Rangliste soll nur noch die Spalte Score enthalten und darin den "Anzeigescore" zeigen
  • Rangliste soll nach "Anzeigescore" sortiert sein

Spieler löschen oder ausblenden

Spieler die nicht mehr an Kicker-Spielen teilnehmen können, sollen "gelöscht" werden.

Da sich die Bewertung der Spiele bei einer Neuberechnung der Punkte ändern würde bzw. nicht mehr möglich wäre, muss der Spieler in irgend einer Form in der Datenbank vorhanden bleiben. Ein Möglichkeit ist, den Spieler als "inaktiv" zu markieren aber ansonsten unverändert zu behalten. In der Rangliste werden nur "aktive" Spieler angezeigt.

Löschen darf nur von einem Benutzer mit Adminrechten möglich sein.

Alter Name im Eingabefeld

Werden mehrere Spieler hintereinander angelegt, erscheint zunächst noch der Name des davor angelegten Spielers im Eingabefeld.

Lösung: Entry.delete(0, tk.END)

Fehler bei mehrfachregistrierung

Wenn ein Token eingelesen wird der bereits registriert ist soll eine Fehlermeldung angezeigt werden und weiter versucht werden einen noch nicht registriersten Token einzulesen.

Aktuell wird der Token immer erfolgreich eingelesen und die Namenseingabe erscheint. Erst beim speichern in die Datenbank wird eine Exception ausgelöst.

Faire Teams/spannende Spiele erstellen

  • Wenn sich 4 Spieler gefunden haben, wäre es schön eine Option zu haben daraus zwei ungfähr gleich gute Teams zu bilden.

  • Interessant wäre aus auch, bei Bedarf zufällige Spiele mit etwa gleich guten Teams vorzuschalgen.

Spiele ändern

Da es mittlerweile die erste Falscheingabe gab, brauchen wir zeitnah eine Möglichkeit Spiele nachträglich zu ändern. Da ich auf den ersten Blick keine Möglichkeit gefunden habe ein bereits gewertetes Spiel rückgängig zu machen, müssen nach der Anpassung alle Spiele neu gewertet werden.

Da das irgendwann ziemlich viele sein könnten, sollte man sich Gedanken darüber machen die Datenbank vor jedem Spiel zu sichern, damit nur die Spiele danach neu gewertet werden müssen.

Als erste Maßnahme habe ich nochmal ein Bestätigungs-Popup zwischen den Klick auf den Auswerten-Button und die Berechnung gebastelt.

Keine Fehlermeldung, wenn Name bereits in Datenbank

Wird ein Spieler mit einem Namen angelegt, der bereits in der Datenbank vorhanden ist, wird nur auf der Konsole ein Fehler angezeigt.

Eventuell sollte der Fehler abgefangen und an den Benutzer gemeldet werden.

Testinfrastruktur einführen

Um Softwarefehler frühzeitig zu erkennen sollte es automatisierte Tests geben.
Wahrscheinlich mit pytest

  • Hinzufügen von scripts die die Tests ausführen und als Ergebnis einen Testreport generieren
  • Alle Funktionen die ohne GUI oder Hardware arbeiten sollten durch unit tests abgedeckt sein
  • Noch zu klären: Wie können GUI Elemente getestet werden?
    (Da wir sehr viel GUI haben und ein großer Teil der Logik darin steckt ist das wichtig)
  • Noch zu klären: Wie können Hardwareabhängige Funktionen (z.B. RFID) fetestet werden?
    (Wäre zwar schön, aber vermutlich zu aufwändig)

Anzeige nach Spieleingabe

Anzeige nach dem Spiel, die die letzten (chronologisch) Spiele zeigt, ersetzen. Hier Historie der Spieler aus letzten x Spielen interessant.

Admin Panel: Spiel löschen oder bearbeiten

Versehentlich falsch eingetragene Spiele sollen von einem Admin geändert oder wieder gelöscht werden können.

Im Admin Panel soll dazu ein neuer Button "Spiel ändern" eingeführt werden.

  • Bestätigung mit Admin Token erforderlich
  • Eingabe einer Spiel-ID
  • Bearbeiten des Spiels (Punkte, Spieler) oder löschen
  • Nach der Änderung muss die Punktetabelle neu berechnet werden

Siehe auch:
#5

Admin Panel: Adminrechte entfernen

Admins sollen analog zum "Adminrechte geben" Button auch wieder entfernt werden können.

  • Neuer Button "Adminrechte entziehen"
  • Adminrechte benötigt
  • Admin darf sich nicht selbst entfernen können

Lesen von Token wird nicht beendet

Wird bei der Eröffnung eines neuen Spiels "Abbrechen" geklickt, verschwindet zwar das Popup, die Polling-Funktion für das RFID-Token läuft aber weiter (erkennbar daran, dass weiterhin "init" auf die Konsole geschrieben wird.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.