Eine Nummer hier ist kein Zettel, den ein Geschäft ausdruckt und dann aus den Augen verliert — es ist eine Zeile, die beide Seiten gleichzeitig sehen. Ein Scan zieht eine Nummer, verknüpft mit einer Warteschlangen-Gruppe und einer Personenzahl. Das Personal ruft die nächste Nummer von dem Schalter, der gerade frei ist, und jede Statusänderung läuft über dieselbe Datenbank — nicht über ein Whiteboard, das nur ein Mitarbeiter im Kopf hat.
Eine Nummer ziehen — selbst oder durch das Personal
Ein Geschäft kann mehrere Warteschlangen-Gruppen gleichzeitig führen (Bestellabholung, Rückgaben, ein bestimmter Schalter) und pro Gruppe festlegen, ob Kunden den QR-Code selbst scannen oder das Personal die Nummer für sie zieht. Eine Nummer kann einen Namen, eine Kontaktnummer und eine Personenzahl tragen. Jede Nummer gehört zum eigenen Tag des Geschäfts, nicht zur Uhrzeit des scannenden Geräts — ein Geschäft, das über Mitternacht hinaus geöffnet bleibt, bekäme zwei durcheinandergewürfelte Tafeln, wenn der Tag aus der zufälligen Handyzeit erraten würde. Kann der Server nicht sagen, welcher Tag es für dieses Geschäft ist, meldet der Bildschirm einen Ladefehler, statt zu raten und eine leere Tafel zu zeigen, während echte Menschen anstehen.
Die eigene Position verfolgen
Nach dem Ziehen der Nummer sieht ein Kunde seine Nummer, seine Gruppe und den aktuellen Status. Die Positionsangabe aktualisiert sich alle 10 Sekunden, solange der Bildschirm offen bleibt — kein sekundengenauer Live-Zähler. Wenn man tatsächlich aufgerufen wird, kommt sofort eine Push-Benachrichtigung mit dem Schalter, zu dem man gehen soll — der Bildschirm muss also nicht die ganze Wartezeit über offen bleiben.
Die Geschäftsseite — aufrufen, Status bewegen, No-Shows begrenzen
Das Personal ruft die nächste Nummer am eigenen Schalter auf, kann dieselbe Nummer erneut aufrufen, falls der Kunde es nicht gehört hat, und einen Aufruf sofort zurücknehmen, wenn die falsche Nummer erwischt wurde. Jede Warteschlangen-Gruppe legt fest, wie oft eine Nummer aufgerufen und verpasst werden darf, bevor sie als No-Show gilt, damit die ganze Reihe nicht wegen einer Nummer stecken bleibt, die nie erscheint. Jede Schreiboperation — Ziehen, Aufrufen, Status ändern, Abschließen — läuft über Serverfunktionen, die die Berechtigung selbst prüfen; die Tabelle der Nummern selbst hat kein direktes Schreibrecht, sodass keine Nummer existieren kann, von der nichts im System weiß.
Wo die Warteschlange in den Rest passt
Ein Betrieb, der am Tresen statt am Tisch bedient, ersetzt den Tisch-QR des Moduls Essen durch eine Wartenummer, und wer feste Zeitfenster bevorzugt, nimmt stattdessen die Terminbuchung.
Auf der Personalseite entstehen Warteschlangen-Gruppen und Schalter in der Betriebskonsole, auf derselben Übersicht wie Bestellungen und Urlaubsanträge. Ein Parkplatz gibt ebenfalls Tickets per QR aus, rechnet sie aber bei der Ausfahrt ab, statt sie an einer Theke aufzurufen: siehe Parken.
Und die Ticketverwaltung eines Events scannt ihre QR-Codes über denselben Mechanismus, nur mit einer anderen Antwort — je nachdem, ob gerade eingelassen wurde oder das Ticket schon eingecheckt war.
Ein Screenshot eines Warteschlangen-QR-Codes funktioniert nicht — es muss das echte Schild vor Ort gescannt werden. Das Token ist an die aktuelle Ausgaberunde dieser Gruppe gebunden, nicht an einen festen, endlos wiederverwendbaren Code.
Der Nummernbildschirm öffnet sich auch über den Link, den ein gedruckter Bon trägt (koratland.com/queue?...) — keine App nötig, um die eigene Position im Browser zu prüfen.