Zum Inhalt springen
Heiko Schönborn
← Zurück zur Übersicht

Flagship Case Study

Kassenintegriertes Treueprogramm

Blockchain-gestütztes Treueprogramm, integriert in ein Kassen- und Self-Order-Umfeld.

Konzept eines digitalen Treueprogramms für die Gastronomie: Mit jeder Bestellung sammeln Kundinnen und Kunden eine digitale Trophäe, die stufenweise aufsteigt und dabei steigende Rabatte freischaltet — technisch als benutzereigenes, aufsteigendes Status-Token umgesetzt.

Firmenprojekt im Gastronomie-Umfeld (angestellt als Anwendungsentwickler)

Kunden-App, Web-Plattform und Admin-Backoffice aus einer Codebasis.

Meine Rolle & Umfang

Entstanden als mein IHK-Abschlussprojekt während meiner Tätigkeit als Anwendungsentwickler — dokumentierte, geprüfte Eigenleistung.

Aktuell liegt das Treueprogramm als MVP vor — der funktionsfähige Kern, auf dem eine spätere Produktversion aufbauen kann.

Live

Im laufenden Betrieb

Das läuft im täglichen Betrieb

Rund um ein bestehendes Kassen- und Self-Order-System habe ich aus wirtschaftlicher und zeitlicher Abwägung eigene Werkzeuge gebaut und integriert: eine Integrationsschicht, die Anzeige-Daten aus einem bestehenden System gestaltbar darstellt, sowie eine Auswertung der Prozessdaten je Phase (Eingang → Zubereitung → Abholung). Eine Build-vs-Buy-Entscheidung im laufenden Betrieb.

  • Instrumentierung

    Live

    Prozess-Visualisierungs-Layer

    Ein injizierender Reverse-Proxy vor einem bestehenden Anzeige-System: Der Kiosk-Browser läuft über den Layer, der alle Anfragen durchreicht und einen Beobachter-Agent in die Oberfläche injiziert. Der Agent meldet je Vorgang ENTER/MOVE/LEAVE; der Server schreibt idempotent nach MongoDB (mit JSONL-Fallback ohne Cloud). So entstehen die Roh-Timings, wie lange ein Vorgang je Phase steht — eingegangen → in Vorbereitung → abholbereit.

    Ein bestehendes System messbar machen, ohne es zu verändern — nicht-invasiv, idempotent und ausfallsicher (Verbindungsabriss erzeugt keine Lücken oder Fehldaten).

    • Node.js
    • Reverse-Proxy + Script-Injektion
    • MutationObserver
    • MongoDB / JSONL-Fallback
    • Offline-Queue & Heartbeat
  • Betriebs-Alarm · headless

    Live

    Headless-Benachrichtigung

    Bewusst minimal: ein reines Skript ohne GUI, Browser oder Node-Abhängigkeiten. Es pollt read-only dasselbe Anzeige-System und meldet, sobald ein neuer Vorgang auftaucht — läuft völlig unabhängig vom Visualisierungs-Layer, übersteht Neustarts per Autostart und ist gegen Fehlalarme abgesichert.

    Das angemessene Werkzeug statt der größtmöglichen Lösung: Der Startbestand löst keinen Alarm aus, ein Verbindungsfehler setzt den Stand nicht zurück — robust genug für den laufenden Betrieb.

    • PowerShell
    • Read-only Polling
    • Windows Autostart
  • Auswertung

    Live

    Analyse-Tools

    Integrierte Auswertung der erfassten Timings und der Bestelldaten: Durchlaufzeiten je Phase, Engpässe und Bestell-Muster werden sichtbar. Damit schließt sich die Messkette vom Vorgang bis zur Entscheidungsgrundlage.

    Aus reinen Betriebsdaten werden Entscheidungsgrundlagen — die instrumentierte Kette ist end-to-end gedacht, nicht nur der sichtbare Bestellablauf.

    • Next.js
    • MongoDB-Aggregation
    • TypeScript
MVP

Abschlussprojekt

Das Abschlussprojekt: Treueprogramm als MVP

Der technische Kern lief zur IHK-Abschlussprüfung end-to-end; aktuell wird er zu einer Produktversion ausgebaut und ist nicht im Live-Einsatz.

Systemfluss

Von der Bestellung bis zur Belohnung

  1. Kasse

    Bestellung im Cloud-POS

  2. App

    Event & Kundenstatus in der App

  3. Chain

    Status-Token wird on-chain hochgestuft

  4. Reward

    Höhere Stufe schaltet Vorteile frei

Nur die Kasse (POS/Warenwirtschaft) ist live; App, Chain und Reward gehören zum MVP-Prototyp.

Die Reward-Mechanik

Ein Status, der aufsteigt

Für den schnellen Blick

Mit jeder Bestellung steigt die digitale Trophäe eine Stufe auf und schaltet höhere Vorteile frei — vergleichbar mit einer Sammelfigur, nur digital und mit echtem Nutzen.

Technisch

Der Kundenstatus ist als dynamisches Token auf einer Substrate-/Polkadot-Chain umgesetzt, das sich ereignisgesteuert durch Bestellungen aus dem Kassensystem hochstuft. Ein Rust-Daemon signiert die Updates automatisiert.

Design-Entscheidung

Warum ein Token statt eines DB-Feldes?

Warum ein Token auf einer Chain statt eines Status-Feldes in der Datenbank? Weil der Status damit den Kundinnen und Kunden selbst gehört — in ihrer eigenen Wallet, portabel und übertragbar. Das kann eine interne Datenbank nicht leisten.

Der gekoppelte Vorteil ist bewusst an das Token gebunden: Die hohen Stufen erfordern sehr viele Bestellungen, der zum Erreichen nötige Umsatz ist also bereits eingenommen — eine vorausbezahlte Marge.

Dass die Tokens handelbar sind, ist eine bewusste Design-Entscheidung mit kalkuliertem Risiko, das über die Seltenheit der hohen Stufen begrenzt wird.

An- und Verkauf der Tokens liegen bewusst außerhalb des eigenen Systems — das System vergibt und stuft Status, betreibt aber keinen Handel damit.

Systemarchitektur

Vier Schichten, ein System

Nicht jede Schicht teilt denselben Reifegrad — die Badges zeigen, was live läuft und was zum MVP-Abschlussprojekt gehört.

  • Mobile App

    MVP

    Kunden-App zum Sammeln, Einlösen und Anzeigen des Status inkl. Wallet-Anbindung.

    • React Native / Expo
    • Android Studio (nativer Build)
    • TypeScript
    • Expo Router
    • React Context
    • Reanimated
  • Web-Plattform

    Live

    Kunden-Frontend und Admin-Backoffice aus einer einzigen Codebasis — die reale Basis der Live-Websites.

    • Next.js (App Router)
    • React 19
    • TypeScript
    • MUI
    • 100+ API-Routes
    • MongoDB / Mongoose
    • NextAuth (JWT)
    • CASL
  • Integrationen

    Live

    Anbindung an das reale Kassen- und Peripherie-Umfeld des Betriebs.

    • Cloud-POS-Integration
    • Epson ESC/POS
    • Brevo (E-Mail)
    • Cloudinary (Bilder)
  • Web3 / Blockchain

    MVP

    Der Kundenstatus als eigenständiges Token plus ein selbstgeschriebener Signier-Daemon.

    • Enjin Platform (Substrate / Polkadot)
    • WalletConnect
    • Wagmi / Ethers / Viem
    • Rust-Daemon

Technische Highlights

Was besonders heraussticht

  • Multi-Domain aus einem Codebase

    Live

    Mehrere Domains laufen aus einer einzigen Codebasis. Ein hostname-basiertes Rewrite über Proxy/Middleware entscheidet pro Request, welcher Auftritt ausgeliefert wird. Ein Deployment, mehrere Auftritte.

  • Eigener Rust-Signier-Daemon

    MVP

    Ein selbstgeschriebener Hintergrund-Service signiert die Blockchain-Transaktionen automatisiert: Nonce-Management für mehrere Transaktionen pro Block, Exponential-Backoff-Retry, verschlüsselter Key-Store und Docker-Deployment.

  • Kasse trifft Chain

    MVP

    Reale Kassen-Ereignisse aus dem POS steuern ein Token auf der Blockchain — die Kette Bestellung → Statusaufstieg → freigeschalteter Vorteil ist end-to-end umgesetzt.

Qualitätssicherung

  • Playwright E2E
  • Dredd API-Tests
  • Unit-, Integrations- & Performance-Suite