Muckturnier

Features

Anmeldungscodes generieren

Wenn mit Voranmeldungen gearbeitet wird, dann gibt es die Möglichkeit, die Anmeldung von Voranmeldungen (also die tatsächliche Anmeldung beim Turnier, wenn die Paare bzw. Spieler kommen) sehr viel effektiver und vor allem schneller zu machen: Die Benutzung von Anmeldungscodes.

Ein Anmeldungscode ist ein QR-Code, der dem vorangemeldeten Paar bzw. Spieler im Vorfeld zur Verfügung gestellt wird (z. B. per E-Mail). Bei der eigentlichen Anmeldung wird dann einfach der Code vorgezeigt (z. B. auf einem Handy), gescannt, und das Paar bzw. der Spieler ist mit einem Klick angemeldet. Schnell und ganz ohne suchen.

Anmeldungscodes scannen

Zum Nutzen von Anmeldungscodes muss man QR-Codes scannen können. Hierfür gibt verschiedene Möglichkeiten:

Hardware-Barcode-Scanner

Die einfachste Möglichkeit, einen Anmeldungscode zu scannen, ist die Benutzung eines „echten“ Hardware-Barcode-Scanners. Ein solcher Scanner verhält sich wie eine Tastatur und ist i. d. R. so konfiguriert (oder kann so eingestellt werden), dass er nach dem (sehr schnellen) „Eingeben“ der dekodierten Daten aus dem Code auf Return „drückt“. Da er für den Computer einfach wie eine Tastatur aussieht, funktioniert so ein Scanner normalerweise „einfach so“, unabhängig vom Betriebssystem und ohne das Installieren zusätzlicher Treiber. Anstecken und fertig.

So ein Scanner ist gar nicht teuer. Das Modell, das ich habe (ein „Netum Scan NSL5“ – reicht vollkommen), ist schon für knapp 30 € zu haben (Stand 02/2024). Die Suche nach „QR Code Scanner“ beim bevorzugten Elektronikhändler sollte genügend Ergebnisse liefern.

Wichtig: Das richtige Tastaturlayout einstellen – sonst kommt nicht das raus, was in dem Code gespeichert ist! Am besten ein paar QR-Codes mit Sonderzeichen etc. generieren (es gibt ja genügend Tools, Webservices etc. dafür) und ausprobieren, ob auch das Richtige ausgelesen wird.

Smartphone-App und WLAN-Code-Scanner-Server

Ebenfalls möglich ist die Nutzung einer passenden Smartphone-App. Es gibt Barcode-Scanner-Apps, die die gescannten Codes per HTTP-Anfrage an einen Server weiterleiten können. Eine App, die das kann ist z. B. Binary Eye: Das ist ein generell sehr zu empfehlender, kostenlos erhältlicher Open-Source-Barcode-Scanner für Android (gibt es auf F-Droid und auch im Google Play Store).

Das Muckturnier-Programm bringt eine passende HTTP-Schnittstelle mit. Der WLAN-Code-Scanner-Server kann kann über „Extras“ → „WLAN-Code-Scanner nutzen“ geöffnet werden:

Die „WLAN-Code-Scanner“-Seite

Der Server kann GET- und POST-Anfragen verarbeiten. Bei Verwendung von POST können die Daten entweder mit dem Content-Type application/x-www-form-urlencoded oder als application/json formatiert werden. Der Parameter für den Datensatz heißt per Voreinstellung content, der Name kann aber bei den Netzwerkeinstellungen („Extras“ → „Einstellungen“ → „Netzwerk“) beliebig definiert werden.

Die URL, die in der App eingestellt werden muss, hängt davon ab, wie die Daten weitergegeben werden. Beispiele und weitere Infos werden beim Klicken auf „Infos zur URL für die App“ angezeigt. Vgl. auch die Readme.

Natürlich müssen der Rechner, auf dem das Programm läuft und das Smartphone im selben Netzwerk sein und sich auch erreichen können. Wenn alles richtig eingerichtet ist, dann werden alle gescannten Codes direkt an die Anmeldungsseite weitergegeben (s. u.).

Hierfür kann man entweder ein ohnehin bestehendes WLAN nutzen, oder man macht sich, z. B. mittels eines Mini-Reise-Routers wie dem GL.iNet GL-AR150 o. Ä., sein eigenes WLAN (das hat sich bewährt – wenige Geräte angemeldet, Empfang gesichert, kein Problem).

Nutzung einer Webcam und einer Software-Lösung

Einen QR-Code-Scanner kann man sich auch mit einer Webcam und der passenden Software bauen, z. B. mit ZBarCam und xvkbd. Sowas ist aber eher eine Bastellösung ;-) Die verhält sich dann aber, wenn alles korrekt eingerichtet ist, so wie ein „richtiger“ Hardware-Barcode-Scanner.

Ich würde eher eine der beiden anderen Lösungen empfehlen.

Voranmeldung und erstellen der Anmeldungscodes

Die Voranmeldung-Seite kann über „Extras“ → „Voranmeldung“ eingeblendet werden.

Damit die Seite genutzt werden kann, müssen zwei Einstellungen gespeichert werden: Ein Turniername und ein Sicherheitsschlüssel:

Einstellungen der „Voranmeldung“-Seite

Beim Namen sollte man etwas Eindeutiges wählen, incl. einer Jahreszahl oder Turniernummer. Damit es keine Verwechslungen gibt (z. B. „JU Leupoldsgrün 2024“). Der Sicherheitsschlüssel wird zufällig generiert und kann einfach so gelassen werden. Dieser wird nur in der Datenbank gespeichert, aber nicht in den Codes – wird aber mit zur Berechnung der in den Codes enthaltenen Prüfsumme genutzt. Das ist ein Sicherheitsmerkmal und verhindert, dass jemand seinen eigenen Code generiert und dann behauptet, er wäre ja vorangemeldet gewesen (es ist praktisch ausgeschlossen, dass jemand ohne die Kenntnis des Sicherheitsschlüssels einen gültigen Code generieren kann).

Sind die Einstellungen gespeichert, können Voranmeldungen direkt auf der Voranmeldung-Seite gespeichert werden:

Voranmeldungen eingeben auf der „Voranmeldung“-Seite

Hier eingegebene Voranmeldungen werden einfach an die Anmeldungsseite weitergegeben. Nach Duplikaten wird mit denselben Einstellungen (phonetische Suche ja/nein) gesucht, als würde die Anmeldung auf der Anmeldungsseite eingegeben werden. Nach der Anmeldung wird der Eintrag mit der „Vorangemeldet“-Markierung markiert und der Voranmeldungs-Datensatz angezeigt:

Datensatz einer Voranmeldung auf der „Voranmeldung“-Seite

Hier kann dann auch der Anmeldungscode gespeichert und z. B. per E-Mail verschickt werden. Der Skalierungsfaktor legt fest, wie groß der gespeicherte Code wird, d. h. wie viele Pixel im Quadrat für jedes Modul des QR-Codes benutzt werden (die „Pixel“ in einem QR-Code heißen, etwas ungewöhnlich, „Module“).

Sobald ein Anmeldungscode gespeichert wurde, wird seine Prüfsumme bei der jeweiligen Anmeldung in der Datenbank abgelegt. Über die Prüfsumme kann eine Anmeldung auch dann zugeordnet werden, wenn der angemeldete Name später noch geändert wird (anderer Partner etc.). Es ist also auch in diesem Fall nicht nötig, einen neuen Code zu verschicken.

Wenn eine Voranmeldung gelöscht und neu eingegeben wird, ist die Prüfsumme des Anmeldungscodes dieselbe wie vorher, sofern der eingegebene Name exakt derselbe ist. Der Code muss allerdings in diesem Fall neu exportiert werden, damit die Prüfsumme wieder bei der entsprechenden Anmeldung gespeichert wird. Der Status des Exports (bereits exportiert – noch nicht exportiert) wird auf der Voranmeldungsseite angezeigt.

Anmeldung von Voranmeldungen mit Anmeldungscode

Wenn der Voranmeldungsmodus aktiv ist (nachdem die Einstellungen gespeichert wurden) wird auf der Anmeldungsseite angezeigt, ob oder ob nicht gerade ein Anmeldungscode gescannt werden kann. Sobald das „Name(n)“-Eingabefeld fokussiert ist (also den Cursor enthält), und noch nichts eingegeben wurde, kann ein Code gescannt werden:

Der „Anmeldungscode scannen“-Status auf der Anmeldungsseite

Ein (richtig konfigurierter) Hardware-Barcode-Scanner „tippt“ die Daten ein und „drückt“ dann Return. Ist die Eingabe ein Anmeldungscode, wird dieser automatisch als solcher erkannt und weiterverarbeitet. Der WLAN-Code-Scanner-Server gibt zwar gescannte Codes direkt an die Anmeldungsseite weiter (es wird also nichts „eingetippt“), aber das Verhalten ist identisch zu dem, wenn ein Hardware-Barcode-Scanner benutzt wird: Zum Scannen eines Anmeldungscodes muss das „Name(n)“-Eingabefeld fokussiert und leer sein, sonst wird der Code nicht verarbeitet.

Die eingegebenen Daten werden überprüft und ggf. ein Fehler bzw. Warnhinweis angezeigt. Wird eine passende Voranmeldung gefunden (das sollte die Regel sein), wird vorgeschlagen, sie als „gekommen“ zu markieren:

Dialog wenn eine passende Voranmeldung gefunden wurde

Insbesondere bei vielen Voranmeldungen (die ja i. d. R. kurz vor knapp kommen, weil sie sind ja schließlich schon vorangemeldet) vereinfacht und beschleunigt die Nutzung von Anmeldungscodes die eigentliche Anmeldung mitunter erheblich.

Code-Protokoll

Das Serialisierungsprotokoll sowie weitere Informationen über die Anmeldungscodes sind in doc/BookingCodeProtocol.rst dokumentiert. Nur für den Fall, dass es jemanden interessiert, jemand eine automatisierte Erstellung solcher Codes bauen will o. Ä.

Viel Spaß damit :-)