Referenzen

Konteo Management Panel

Münzautomaten und Prepaid-Karten pro Gerät skalieren in Getränkeflotten nicht: Bargeld muss eingesammelt, Guthaben pro Maschine abgeglichen werden.

Screenshot Konteo Management Panel

Ausgangslage

Konteo ist eine bargeldlose Bezahlplattform für Getränke- und Snackautomaten. ESP32-Automaten authentifizieren jede Transaktion gegen RFID-Chips von Mitarbeitenden, Mitgliedern oder Mietern einer Organisation; das Guthaben liegt zentral im Panel, nicht auf der Karte. Der klassische Mix aus Münzmechanik und Prepaid-Karten pro Gerät skaliert nicht: Bargeld muss eingesammelt, Karten sind an ein Gerät gebunden, der Abgleich über eine Flotte ist Handarbeit.

Lösung

Das Management Panel ist das Cockpit des Betreibers: Chip-Lebenszyklus, Produkte und Preislisten, Slot-Belegung pro Automat, Firmware-Rollouts und ein unveränderlicher Audit-Trail. Drei Rollen teilen sich eine Oberfläche – Administratoren konfigurieren Mandanten und geben hohe Erstattungen frei, Operatoren erledigen das Tagesgeschäft, Auditoren lesen Ledger und Berichte.

Chip-Verwaltung mit Statusmarkierungen und Sammelaktionen

Berichte und Audit-Log für Auditoren, filter- und exportierbar

Jeder Verkauf läuft dreistufig: Guthaben reservieren, Produkt ausgeben, Transaktion bestätigen oder abbrechen. Jeder Schritt schreibt in eine Append-only-Tabelle, deren Zeilen per SHA-256-Hash-Kette verbunden sind. Ein Artisan-Kommando prüft die Kette Ende zu Ende und meldet die exakte Zeile, an der sie bricht. Erstattungen erzeugen einen gespiegelten Gegen-Eintrag statt den Originaldatensatz zu ändern.

Append-only-Ledger mit hash-verketteten Transaktionen

Ledger: jede Zeile verweist per Hash auf ihre Vorgängerin.

Automaten holen ihre Konfiguration – Slot-zu-Produkt, aktive Preisliste, Feature-Flags – von einem ETag-gecachten Endpunkt. Firmware-Updates laufen gleich: Administrator lädt ein signiertes Image hoch, wählt die Zielgeräte, der OTA-Endpunkt liefert das Manifest beim nächsten Heartbeat aus. Geräte authentifizieren sich per HMAC-SHA256 über eine kanonische Anfrage mit Nonce (Redis, 300 s TTL) und Zeitfenster ±60 s – replay-sicher und billig genug für Mikrocontroller.

Produktkatalog mit Preisen, Kategorien und Slot-Zuordnung

Geräteflotte mit Status, Konfiguration und OTA-Firmware

Geräteflotte: Status, Konfiguration und Firmware-Stand pro Automat.

Mehrere Betreiber-Organisationen laufen auf einer Instanz. Die Trennung sitzt auf Zeilenebene (globaler OrganizationScope), ohne Datenbank pro Mandant. Eine Registrar-API mit drei Token-Scopes erlaubt externen Systemen – Empfang, Mitgliederportal – Chips anzulegen und aufzuladen, ohne die Operator-UI zu berühren.

Anmeldeseite im Konteo-Design

Ergebnis

Jede Buchung landet in einem manipulationssicheren Ledger, Firmware und Konfiguration werden zentral ausgerollt, und ein Stromausfall mitten im Verkauf führt zu einer ablaufenden Reservierung statt zu verlorenem Guthaben. Die Anwendung läuft auf Hetzner Cloud, provisioniert mit eigenem Tooling (forge-lite).

Technik

  • PHP 8.3, Laravel 13 (Sanctum, Spatie Permissions, Horizon)
  • React 18, TypeScript, Inertia v2, shadcn/ui, Tailwind, TanStack Query
  • MariaDB 11 LTS, Redis 7; Geldbeträge als BIGINT-Cents (moneyphp)
  • Pest 4 (106 Tests), Playwright E2E, PHPStan Level 6, axe-core (WCAG 2.2 AA)
  • Hetzner Cloud, Provisionierung mit forge-lite

Ähnliches Vorhaben?

Schildern Sie mir kurz, worum es geht. Rückmeldung innerhalb von 24 h, werktags.

Projekt anfragen