Portfolio / System Ops / lalafun-pos

Einen Monat gebaut.
Einen Tag pro Woche zurück.

Ich betreibe ein Fried-Chicken-Restaurant. Jeden Woche verlor ich einen ganzen Tag an Verwaltung — Ausgaben ins Kassenbuch übertragen, nach Excel exportieren, Lohnabrechnung für 13 Mitarbeiter per Hand berechnen. Vier Wochen später sind es zwei Stunden.

KundeLalaFun (eigenes Restaurant)
UmfangPOS · Inventar · Ausgaben · Lohnabrechnung
Team13 Mitarbeiter · ~200 Transaktionen/Tag
Zeitrahmen4 Wochen · 2026
Was wir gebaut haben

Eine einzige App, die den ganzen Betrieb steuert.

Eine Installation auf jedem Schichttelefon und dem Gerät des Inhabers. Sechs Module, eine Datenbank, ein Login. Keine Add-ons, keine Plugins, keine separate Tabelle irgendwo im Prozess. Gebaut für einen indonesischen F&B-Einzelbetrieb mit Barkassen-Realität — kein generischer SaaS, zurechtgebogen.

Modul 01

Point of Sale

Zwei-Tipp-Kasse, optimiert für Fried-Chicken-Combos. Trennt Bargeld, QRIS, Banküberweisung und Online-Bestellungen (GoFood / GrabFood) in eigene Kassen. Druckt in einer Aktion einen Thermobon für die Küche und einen Kundenbeleg.

BelegeKassentrennungOnline
Modul 02

Inventar & Lager

Jeder Verkauf zieht automatisch vom Lagerbestand ab. Niedrigbestand-Alarme, bevor dem Betrieb mitten im Service etwas ausgeht. Ein-Bildschirm-Einbuchung für Lieferantenlieferungen — scannen, Menge, Preis, fertig.

Auto-AbzugAlarmeEinbuchung
Modul 03

Ausgabenverfolgung

Jede Rupiah aus der Kasse wird am POS erfasst, sobald sie ausgegeben wird. Nach Kategorie getaggt, an eine Kassenquelle geknüpft, Belegfoto angehängt. Ersetzt das Kassenbuch und den monatlichen Excel-Export mit einem Wisch.

KategorisiertBelegfoto
Modul 04

Anwesenheit

Selfie-Einstempeln mit GPS-Geofence — niemand kann von zu Hause aus stempeln. Drei-Schicht-fähig (morgens / mittags / abends). Verspätungen, Frühgänge und Abwesenheiten fließen direkt in die Lohnberechnung.

SelfieGPS-FenceSchichten
Modul 05

Lohnabrechnung

Grundgehalt plus Anwesenheitsbonus, plus Abzüge und Vorschüsse — alles wird laufend berechnet. Am 28. auf „Monat abschließen" tippen — der Auszahlungsplan ist fertig. Drucken, Bargeld zählen, aushändigen.

Live-BerechnungAbzüge & Vorschüsse
Modul 06

Inhaberberichte

Ein Dashboard, das Telefon des Inhabers. Tagesumsatz vs. gestern, monatliche Ausgaben nach Kategorie, Lohnverbindlichkeiten, Bargeld in der Kasse. In jede Zahl klicken, um die dahinterliegenden Einzeltransaktionen zu sehen.

Live-KPIsDrill-down
● Das Problem

Die Verwaltung fraß jeden Sonntag.

Täglich übertrug ich die Ausgaben des Tages ins Kassenbuch — Eis, Parkgebühren, Reinigungsmittel, die Gasrechnung. Einmal im Monat verbrachte ich einen ganzen Tag damit, alles als Backup nach Excel zu exportieren. Nichts davon war miteinander verknüpft.

Wenn ich wissen wollte, was ich letzten Monat für Verpackung ausgegeben hatte, war die einzige Antwort: Seiten blättern.

„Ich konnte den Laden führen oder die Buchhaltung machen. Nie beides." — Inhaber, LalaFun
Ausgabenbuch 14 Feb '26
Ice (3 packs)45,000
Ojek parking5,000
Cooking oil120,000
Cooking oil (5L)165,000
Dish soap28,000
LPG gas 12kg180,000
Wheat flour95,000
Packaging box M240,000
Electricity bill680,000
Manuell 8 Std. / Woche
● Die Lösung

Alles, in einer App, in Echtzeit.

Jede Ausgabe — eine Packung Eis, die Stromrechnung, ein Parkbon — wird am POS erfasst, sobald sie bezahlt wird, und der Kasse oder dem Safe zugeordnet. Das Kassenbuch ist Geschichte. Das monatliche Excel-Backup läuft von selbst.

Ein Manager-Dashboard fasst alles zusammen: heutige Umsätze nach Zahlungsart, monatliche Ausgaben nach Kategorie, Ziele vs. Ist. Die App öffnen — und den Betrieb sehen.

9:41 ●●●● ◐ ▮▮▮
Dashboard
Samstag · 14 Feb
L
Heutiger Umsatz
Rp 4,248,500
+18% vs. gestern · 208 Bestellungen
Ausgaben
Rp 380K
Monatsziel
76%
Umsatz · letzte 7 Tage
Rohzutaten Rp 1.8M
Betrieb Rp 420K
Verpackung Rp 310K
POS
Bestell.
Lager
Daten
● Zweites Problem

Die Lohnabrechnung war zwei Stunden Tabellen-Rechnen.

Dreizehn Mitarbeiter, drei Schichten täglich, Anwesenheit auf Papierscheinen. Am Monatsende prüfte ich nach, wer wann erschienen war, berechnete den Anwesenheitsbonus per Hand und trug jede Zeile in eine Tabelle ein.

Zwei Stunden, wenn alles glattlief. Länger, wenn ein Zettel fehlte oder jemand eine Schicht bestritt.

Ayu
Morgen
07:0215:00
Budi
Mittag
10:45
Citra
Abend
frei?
Dimas
Morgen
06:5815:04
Eka
Abend
14:5022:10
Fajar
Mittag
11:00
Gita
Morgenspät
07:4515:00
● Die Lösung

Einstempeln per Selfie. Lohnabrechnung läuft von selbst.

Mitarbeiter stempeln am POS-Terminal per Selfie und GPS-Check ein — von zu Hause aus nicht möglich, und der Zettel kann nicht verschwinden. Schicht, Anwesenheitsquote, Bonus und Abzüge werden laufend berechnet.

Am Zahltag öffne ich den Lohnabrechnungs-Reiter, lese die Zahl ab, zähle das Bargeld. Zehn Minuten, fertig.

9:41 ●●●● ◐ ▮▮▮
Lohnabrechnung
Feb 2026 · 13 Mitarb.
Bereit
A
Ayu Pramesti
26 Tage · 100%
Rp 3.240K
B
Budi Santoso
25 Tage · 96%
Rp 3.105K
C
Citra Wulandari
24 Tage · 92%
Rp 2.980K
D
Dimas Pratama
26 Tage · 100%
Rp 3.240K
E
Eka Saputra
22 Tage · 85%
Rp 2.785K
Gesamtlohn · Feb
Rp 38.420K
Print
POS
Bestell.
Lager
Team
● Drittes Problem

An einem Sonntagabend ging uns das Hähnchen aus.

Der Lagerbestand hing auf einem Whiteboard in der Küche. Wer daran dachte, strich Dinge durch. Wer nicht, ließ es. Zweimal kam ich herein und fand leere Verpackungskartons bei einer vollen Warteschlange an Online-Bestellungen.

Keine Frühwarnung, keine Verbrauchsrate, kein Meldebestand. Nur ein Marker und die Hoffnung, dass jemand aufpasst.

LAGER — So
Chicken?? kg Flour2 sacks Oil 5L3 Oil 5L1? Box Mlow Box Lok Sambal jar~15 Rice6 kg LPG2 LPG1
← wer hat gestrichen?
um 21:40 leer → ~18 Bestellungen verloren
● Die Lösung

Lager zieht selbst ab. Es warnt Sie, bevor es leer ist.

Jeder Verkauf zieht automatisch die richtige Menge vom richtigen Artikel ab — die Rezeptzuordnung wird einmal eingerichtet, dann läuft sie. Wenn der Bestand unter den Meldebestand für die aktuelle Tagesumsatzrate fällt, erhält der Inhaber morgens eine Push-Benachrichtigung.

Lieferungen werden in derselben App eingebucht — scannen, Menge, Lieferant, Belegfoto. Das Whiteboard ist jetzt leer. Die Küche mag es so.

9:41 ●●●● ◐ ▮▮▮
Lager
48 SKUs · 2 Alarme
Niedrig
!
Hähnchenschenkel
4,2 kg · jetzt bestellen
1,8 Tage
!
Verpackungsbox M
28 Stk. · jetzt bestellen
0,6 Tage
~
Speiseöl 5L
2 Kanister · beobachten
3,2 Tage
Weizenmehl
24 kg · ok
6,1 Tage
LPG 12kg
3 Flaschen · ok
9,0 Tage
Lagerwert
Rp 12.8M
Einbuchen
POS
Bestell.
Lager
Team
Vorher & nachher

Wie ein Sonntag früher aussah.

Der Sonntag sollte mein Tag sein. Stattdessen war er Aufholdag — der einzige Tag, an dem ich mich hinsetzen und die Woche entwirren konnte. Das hat sich geändert.

Vorher Sonntag · 9 Std. 30 Min.
  • 0:00StartWochenbons aus der Ops-Kasse, dem Personalraum und der Brieftasche zusammensuchen.
  • 0:30+30 Min.Jeden Bon von Hand ins Kassenbuch übertragen.
  • 3:00+3 Std.Kassenlade mit Tagesberichten abgleichen — 40 Minuten nach einer 15.000-Rupiah-Differenz suchen.
  • 4:30+4 Std. 30Excel öffnen. Kassenbuch in die Monatstabelle eintippen. Eine kaputte Formel reparieren.
  • 6:30+6 Std. 30Wöchentliche Anwesenheitszettel vom Klemmbrett des Schichtleiters holen.
  • 8:00+8 Std.Mitarbeiter anrufen, um eine Dienstagschicht zu bestätigen. Sprachnachricht zurück: „Ich hab vergessen zu unterschreiben."
  • 9:30+9 Std. 30Halbwegs durch die Lohnrechnung. Einen versäumten Verspätungsabzug entdeckt.
9 Std. 30 Min.
Nachher Sonntag · 20 Min.
  • 0:00StartApp auf dem Sofa öffnen. Kassenabstimmung von gestern kurz überfliegen — stimmt.
  • 0:05+5 Min.Ausgabenprotokoll durchsehen. Zwei Fotos müssen neu kategorisiert werden. Tippen, tippen, fertig.
  • 0:10+10 Min.Lageralarm von vorhin prüfen — Hähnchen vom Schichtleiter am Freitag nachbestellt.
  • 0:15+15 Min.Lohnvorschau kurz ansehen. Alles im Plan. Schließt sich am 28. von selbst.
  • 0:20+20 Min.Telefon weglegen. Irgendwo hingehen.
20 Min. · 3,5 % von vorher
Wie es entstanden ist

Vier Wochen, von Anfang bis Ende.

01

Woche 1 — Konzept

Jeden Admin-Schritt, den ich per Hand erledigte, aufgelistet. Alles gestrichen, was für einen Einzelbetrieb nicht tragend war — keine Rezepte, keine Zutatenbäume, kein Kunden-CRM. Nur das, was ich wirklich jede Woche neu eintippte.

02

Wochen 2–3 — Entwicklung

React Native + Expo auf dem Telefon, PHP + MySQL im Backend. Offline-first-Sync von Tag eins — die Küche stoppt nicht, wenn das WLAN flackert. Audit-Log bei jeder Änderung, damit nichts lautlos verschwindet.

03

Woche 4 — Einführung

13 Mitarbeiter in Morgen-, Mittag- und Abendschicht eingewiesen. SOP auf Bahasa verschriftlicht. Kassenbuch und Tabellen wurden eine Woche danach außer Betrieb genommen. Over-the-Air-Updates, wenn etwas klemmt.

Ergebnis · echte Zahlen aus dem Livesystem

Acht Monate später — was die Datenbank sagt.

Jede Zahl unten stammt direkt aus der Produktivdatenbank — keine Pitch-Deck-Schätzung. Die Zähler starten, wenn Sie hierher scrollen.

0 Std.
Gesparte Verwaltungszeit
6 Std./Woche × 52 Wochen — ein ganzer Monat Inhaberzeit zurück
Rp 0M
Automatisch berechnete Lohnabrechnung
über 8 Monate · null Streitigkeiten, null manuelle Neuberechnungen
0
Niedrigbestand-Alarme ausgelöst
abgefangen, bevor der Betrieb leer war — 0 verpasste Bestellungen seit dem Start
0%
Kassenabstimmungsquote
240 Tagesabschlüsse · Kassendifferenz unter Rp 5K bei 99,4 % davon
0Min.
Medianer Lohnabschluss
von 1 Stunde auf 14 Minuten · tippen, drucken, Bargeld zählen
Unter der Haube

Für einen Betrieb gebaut, nicht für ein Pitch Deck.

Die Technik ist bewusst unspektakulär. Jede Entscheidung beantwortete eine Frage: Was passiert, wenn das WLAN im Ansturm ausfällt und 40 Online-Bestellungen in der Warteschlange hängen?

Architektur

Offline-first, Server-autoritativ

Das Telefon ist für die nächsten 30 Sekunden die Quelle der Wahrheit; der Server für alles Ältere. Bestellungen, Umsätze und Lagerabzüge werden zuerst lokal geschrieben, dann synchronisiert — die Küche stoppt nicht, weil der Router ausgefallen ist.

React Native · SQLite cache · WAL sync
Stack

React Native + PHP / MySQL

Expo für OTA-Updates, damit Korrekturen in Minuten live gehen, nicht in App-Store-Wochen. PHP + MySQL im Backend, weil die Hosting-Rechnung 6 USD/Monat beträgt und der Cousin des Inhabers den Code lesen kann, wenn ich ausfalle.

Expo · PHP 8.2 · MySQL 8 · Nginx
Datenintegrität

Audit-Log bei jeder Änderung

Jeder Verkauf, jede Stornierung, jede Ausgabe, jede Lohnänderung hinterlässt eine Zeile mit Nutzer, Zeitstempel und Vorher-/Nachher-Wert. Nichts verschwindet lautlos. Wenn eine Zahl eine Woche später falsch aussieht, ist genau sichtbar, wer sie angefasst hat und was vorher dort stand.

Append-only log · soft deletes · time-travel reads
Hardware

Läuft auf Telefonen, die die Mitarbeiter schon haben

Kein eigenes POS-Terminal, kein proprietäres Tablet. Ein gemeinsames Android an der Theke für die Kasse, ein Thermodrucker (ESC/POS über Bluetooth) für Belege und das Telefon des Inhabers für das Dashboard. Gesamte Hardware-Kosten: unter Rp 2M.

Android 10+ · Bluetooth thermal · QRIS scanner
Integrationen

Online-Bestellungen, QRIS, WhatsApp

GoFood- und GrabFood-Bestellungen laufen in dieselbe Bestellwarteschlange wie Walk-ins. QRIS-Zahlungen werden automatisch mit der Kasse abgestimmt. Lohnzettel gehen per WhatsApp raus, wenn der Monat geschlossen wird — keine gedruckten Umschläge mehr.

Merchant APIs · QRIS callback · WA Business
Sicherheit

Inhaber sieht alles, Mitarbeiter sieht nur seinen Bereich

Rollenbasierte Berechtigungen von Anfang an. Kassierer können Bestellungen aufnehmen und Ausgaben erfassen, aber nicht stornieren, keine Lohnabrechnung bearbeiten, keine Margen einsehen. Jede erhöhte Aktion erfordert die PIN des Inhabers.

RBAC · PIN elevation · device binding
Weiter → SNAP self-photo

Etwas bei Ihnen
ähnlich kaputt?

Kostenloses Analyse-Gespräch. Wir sagen Ihnen, was das Problem am günstigsten löst.