Portfolio / System Ops / floural

Das Rezept steckt im System,
nicht im Kopf der Inhaberin.

Floural ist eine kleine Bäckerei und Tortenwerkstatt, die schneller gewachsen ist als ihre eigenen Abläufe. Die Inhaberin war gleichzeitig Rezeptbuch, Trainerin, Schiedsrichterin bei Zuspätkommen und Haltbarkeitswächterin. Wir haben ihr ein POS gebaut, das alle diese Aufgaben übernimmt — plus ein paar, von denen sie noch gar nicht wusste, dass sie sie braucht — damit eine brandneue Bäckerin ab dem ersten Tag allein eine Schicht führen kann.

KundeFloural Bakery
LeistungenPOS · Produktion · Lager · Personal
Einarbeitung2 Wochen → 1 Schicht
KanäleDine-in · GoFood · ShopeeFood · Pre-order
Jahr2026
Die Probleme der Inhaberin

Sechs Dinge, die in ihrem Kopf steckten — und dort nichts verloren hatten.

Alle scheiterten auf dieselbe Art: Die Bäckerei lief, wenn die Inhaberin da war — und stand still, wenn nicht. Der Auftrag war klar: raus aus dem Kopf, rein in ein System, dem das Personal vertraut.

Pain 01

Das Rezept lebte an drei Orten. Keiner davon stimmte mit dem anderen überein.

WhatsApp-Fotos, ein zerlesenes Notizbuch und das Gedächtnis der Inhaberin. Jede neue Bäckerin bedeutete, denselben Chiffon von Null beizubringen — und jedes Mal ein bisschen anders.

„Ich war das Rezeptbuch. Wenn ich bei einer Hochzeitstortenlieferung war, hörte die Bäckerei auf zu backen."
Pain 02

Produkte standen im Regal. Niemand wusste, wie lange schon.

Das Personal zuckte die Schultern: „Sieht frisch aus." Die Kunden fanden das irgendwann nicht mehr so. Eine schlechte Sahne-Charge kostete die Bewertungen eines ganzen Samstags.

Pain 03

Komponenten werden in Chargen produziert. Als „Lagerbestand" verwaltet, geht die Charge verloren.

Biskuit, Mangocreme, Ganache — in Chargen mit eigenem Ablaufdatum gefertigt. Das alte POS zählte sie als eine einzige Zahl. Eine 6-Tage-Creme wurde vor einer 2-Tage-Creme verbraucht. FIFO war Theorie.

Pain 04

Eine neue Kassiererin brauchte zwei Wochen Einarbeitung.

Das POS war eine Tabellenkalkulation mit Verkleidung. Keine Farbcodierung, keine Kürzel, kein erkennbarer Aufbau. Neue Mitarbeiterinnen lernten durch Fehler — auf Kosten der Kundschaft.

Pain 05

Die Bonusberechnung war Bauchgefühl. Zuspätkommen wurde jeden Monat diskutiert.

Die Inhaberin erinnerte sich, wer zu spät kam — manchmal. Boni wurden zu Verhandlungen. Gerechtigkeit war ein Eindruck, keine Zahl.

„Manche Monate fühlte ich mich wie der Bösewicht. Andere wie ein Weichei."
Pain 06

GoFood, ShopeeFood, Dine-in, Pre-order — vier Kassenbücher, keine Zusammenfassung.

Der Tagesabschluss war vier manuelle Abstimmungen. P&L pro Kanal war ein Gerücht, keine Zahl.

● Pain 01

Die Produktion beginnt mit dem Rezept. Nicht mit einer Frage an die Inhaberin.

Jedes Produkt besteht aus Komponenten (Biskuit, Creme, Ganache), die ihrerseits aus Zutaten bestehen. Die Rezepte der Inhaberin leben in der Datenbank — eines pro Komponente, eines pro Fertigprodukt — und ein Produktionsauftrag bedeutet schlicht: Komponente wählen, starten.

Das System zeigt der Bäckerin die genauen Mengen für die gewählte Chargengröße, bucht die Zutaten beim Abschluss zum gewichteten Durchschnitts-HPP ab und schreibt eine neue Komponentencharge mit Produktionsdatum und Ablaufzeit. Das Rezept ist die einzige Quelle der Wahrheit. Die Inhaberin ist nicht mehr der Flaschenhals.

„In der ersten Woche hat die neue Bäckerin eine vollständige Schicht gearbeitet, ohne mir einmal zu schreiben. Ich musste ein bisschen weinen — auf die gute Art." — Inhaberin, Floural
floural / produktion / charge starten
Bäckerin · Tika
Mango Cream Komponente · 3 Tage Haltbar
CHARGEN-ZIEL 2,000 g
Schlagsahne 1.200 g vorrätig
Mangopüree 600 g vorrätig
Feinzucker 160 g vorrätig
Zitronensaft 40 g vorrätig
Bei Abschluss → bucht Zutaten zum Durchschnitts-HPP ab, schreibt Charge MC-260422-A, Ablauf 25. Apr. 2026 21:00, Lagerort Kühler 2.
● Pain 02

Grün, gelb, rot. Das Regal zeigt es Ihnen — nicht Ihre Nase.

Jedes ausgestellte Fertigprodukt hat seinen eigenen Haltbarkeitsschwellenwert (Torten ≠ Gebäck ≠ Brot). Sobald eine Einheit ins Regal kommt, startet die Uhr. Die Anzeige zeigt einen Farbbalken, der von grün über gelb nach rot wechselt — Personal und Inhaberin sehen dasselbe Bild von jedem Punkt im Raum.

Rot erreicht? Die Einheit landet im Abfallprotokoll mit einem kategorisierten Grund — nie nur „entsorgt" — damit die Inhaberin monatlich sehen kann, ob es Überproduktion, Fehlbehandlung oder Kontamination ist.

floural / regal / live
14:32
Cheesecake Slice CH · seit 2h im Regal ● Frisch · noch 22h
Mango Tart MT · seit 09:14 im Regal ▲ Bald verkaufen · noch 4h
Choco Chiffon CC · seit gestern im Regal ■ Entnehmen & Abfall erfassen
Croissant CR · seit 1h im Regal ● Frisch · noch 7h
● Pain 03

Jede Charge hat eine ID. Das System greift zuerst auf die älteste zurück.

Wenn eine Bäckerin eine fertige Torte zusammenstellt, fragt das POS nicht „ist Creme da?" — es wählt die Cremecharge mit dem nächsten Ablaufdatum, die noch ausreichend Menge hat, bucht daraus ab und notiert auf der Bestellzeile, aus welcher Charge die Torte stammt.

Wenn die Bäckerin FIFO überschreibt (selten, manchmal berechtigt), wird das mit Begründung protokolliert. Der Verderb einer ganzen Charge erscheint in der Abfalltabelle zum HPP-Wert, nicht zum Verkaufspreis — die Inhaberin sieht die echten Kosten.

floural / komponenten / mangocreme-chargen
FIFO · auto
ChargeHergestelltAblaufRestLagerStatus
MC-260420-B 20. Apr. 06:30 23. Apr. 06:30 340 g Kühler 1 ALS NÄCHSTES
MC-260421-A 21. Apr. 14:10 24. Apr. 14:10 1.820 g Kühler 2 WARTEND
MC-260422-A 22. Apr. 09:05 25. Apr. 09:05 2.000 g Kühler 2 WARTEND
● Pain 04

Das POS, mit dem eine neue Kassiererin ab Tag eins arbeitet.

Jedes Produkt hat ein 2–4-stelliges Kürzel, eine Kategoriefarbe und eine feste Rasterposition, die die Inhaberin festlegt. Neue Kassiererinnen lernen den Aufbau in einer Stunde — weil er sich nie ändert. Suche per Kürzel oder Name: schnell für Routiniers, nachsichtig für Anfängerinnen.

Checkout ist ein einziger Bildschirm: Artikel, Kunde (optional, mit Treuepunkten), Zahlungsmethode (Bar, QRIS, Überweisung, GoFood, ShopeeFood, Anzahlung), fertig. Kassenlade öffnet automatisch bei Barzahlung; Betrag und Wechselgeld werden berechnet; Bon wird gedruckt; Bestellnummer ist Datum plus Laufnummer.

floural / pos / bestellung #260422-014
Kassiererin · Tag 1
Torte Cheesecake
Stück
CH 38k
Torte Mango Tart
MT 42k
Torte Choco
Chiffon
CC 35k
Gebäck Croissant
CR 22k
Gebäck Pain au
Chocolat
PC 26k
Getränke Iced Latte
IL 28k
Einarbeitungs-Script · Tag 1: „Farbe tippen. Produkt tippen. Zahlen tippen. Bar tippen. Fertig." Fünf Taps pro Bestellung. Neue Mitarbeiterinnen nehmen Bestellungen in der ersten Stunde auf.
● Pain 05

Jede Verspätungsminute ist eine Zahl. Jeder Bonus hat ein Prüfprotokoll.

Das Personal checkt per Selfie zu Schichtbeginn ein (Pagi 07:00, Siang 15:00, Malam 21:00). Das System liest den Zeitstempel, wendet die konfigurierte Karenzzeit (5 Min.) an und rechnet jede weitere Minute in „Verspätungspunkte" um — 1 Punkt pro 5 Minuten, Rp 3.000 pro Punkt.

Am Monatsende: Bonus = Grundbetrag − (Verspätungspunkte × Abzug). Die Inhaberin genehmigt einmal. Streitigkeiten fallen auf null — weil die Rechnung auf dem Bildschirm steht, mit Fotos.

floural / anwesenheit / 22. april
Schicht · Pagi
RT
Rina Tania
Kassiererin · pagi · 07:00
06:58 PÜNKTLICH
DH
Dimas Hartono
Bäcker · pagi · 07:00
07:13 8 MIN. ZU SPÄT · 1 Pt
TK
Tika Kurnia
Bäckerin · pagi · 07:00
06:51 PÜNKTLICH
BONUS · DIMAS H · APR GRUND. 500k 4 Pt × 3k = 488k
● Pain 06 + Bonus

Vier Verkaufskanäle, ein Kassenbuch. Plus das, worum sie nie gebeten hat.

Jeder Kanal — Dine-in, Takeaway, GoFood, ShopeeFood, Pre-order mit Anzahlung — bucht in dieselbe Auftragstabelle mit Kanal-Tag. Tagesabschluss ist ein einziger Bildschirm, nicht vier. P&L pro Kanal ist ein Filter, kein Projekt.

Und das Bonus-Feature: Kunden-Treuepunkte (1 pro Rp 1.000 Umsatz, Verfall nach Inhaberin-Regel), kategorisiertes Abfallprotokoll mit geschätztem Rp-Verlust, Verpackungslager, das pro Verkauf automatisch abgebucht wird, und ein systemweites Prüfprotokoll — jede Zahl auf jedem Bildschirm lässt sich auf eine Person und einen Zeitpunkt zurückverfolgen.

floural / tagesabschluss · 22. apr
1 Kassenbuch · 4 Kanäle
Vor Ort
42
Rp 1.84m
GoFood
31
Rp 1.22m
ShopeeFood
18
Rp 0.71m
Vorbestellung
07
Rp 2.95m
▸ Abfallprotokoll · heute Rp 84k
Mango Tart · 2 pcs kadaluarsa Rp 38k
Whipping cream · 220 g terkontaminasi Rp 28k
Croissant · 1 pc jatuh Rp 18k
Wie wir es gebaut haben

Sechs Wochen. Modelliert nach ihrem echten Ablauf — nicht nach einem generischen POS.

Wir haben kein POS geforkt. Wir haben die ersten drei Tage in der Bäckerei zugeschaut. Das Datenmodell — drei Ebenen, Chargen, FIFO, Haltbarkeit — stand auf dem Whiteboard, bevor eine Zeile Code existierte.

01

Woche 1 — Zuschauen und Rezepte aufschreiben

In der Bäckerei gesessen. Jedes Rezept — Biskuit, Creme, Ganache, alle Produkte — in strukturierte Komponenten- und Produktschemata übertragen. Das Datenmodell wurde das Rezeptbuch.

02

Woche 2 — Dreistufiges Lager

ingredientscomponentsproductsshelf_items mit Chargentabellen für Komponenten und Regaleinheiten. Gewichteter Durchschnitts-HPP bei jedem Wareneingang und jedem Produktionsauftrag.

03

Woche 3 — Produktion + Haltbarkeit

Produktionsauftragsmaske mit Rezept als Checkliste. Haltbarkeitsschwellen pro Produkt (grün/gelb/rot in Stunden), verbunden mit Live-Farbbalk­en. Abfallprotokoll mit kategorisierten Gründen.

04

Woche 4 — POS für sofortigen Einsatz

Kachelraster mit Kürzeln, kanalgetaggte Bestellungen, Checkout auf einem Bildschirm, Anzahlung + Restbetrag für Pre-orders. Kassiererin in 90 Minuten anhand eines 1-seitigen Skripts eingearbeitet.

05

Woche 5 — Personal & Finanzen

Selfie-Anwesenheit, Verspätungspunkte-Konfiguration, monatlicher Bonus-Entwurf → Genehmigungsablauf. Kassenlade mit Öffnung / Umsatz / Auszahlungen / Tagesabschluss. Prüfprotokoll bei jeder Mutation.

06

Woche 6 — Zwei neue Bäckerinnen, live

Zwei frische Bäckerinnen als Pilottest eingestellt. Beide führten bis Ende der Woche eine vollständige Schicht allein — Rezepte vom Bildschirm, FIFO vom Bildschirm, Regalentscheidungen vom Bildschirm. Die Inhaberin blieb an einem Samstag zu Hause.

Was jetzt funktioniert

Sechs Dinge, die die Inhaberin nicht mehr im Kopf tragen muss.

Keine erfundenen Monat-für-Monat-Zahlen — das System ist im Frühbetrieb. Das sind die Abläufe, die von den Schultern der Inhaberin auf den Bildschirm gewandert sind.

1

Einzige Quelle der Wahrheit für Rezepte

Jedes Rezept in der Datenbank, versioniert. Neue Bäckerinnen lesen den Bildschirm, nicht die Inhaberin.

90 Min.

Kassiererinnen-Einarbeitung

Kachelraster + Kürzel + Checkout auf einem Bildschirm. Neue Mitarbeiterin nimmt echte Bestellungen in der ersten Stunde auf.

3

Lagerebenen, FIFO-konform

Zutaten → Komponenten → Produkte. Komponentenchargen werden automatisch älteste-zuerst entnommen.

G/Y/R

Haltbarkeit, sichtbar

Jede Regaleinheit hat einen Live-Farbbalken. „Sieht frisch aus?" wird ersetzt durch „ist es grün?"

0

Bonusstreitigkeiten

Verspätungsminuten → Punkte → Rp-Abzug. Fotos und Zeitstempel. Die Inhaberin genehmigt einmal.

4

Kanäle, ein Kassenbuch

Dine-in, GoFood, ShopeeFood, Pre-order — alle buchen in dieselbe Auftragstabelle. Tagesabschluss ist ein Bildschirm.

Der Stack

Gebaut, um vom Betreiber besessen, gehostet und bearbeitet zu werden.

▸ Frontend

Vanilla JS PWA

Installierbar auf dem Android-Tablet des Personals. Kein Framework — jeder Bildschirm ist ein einzelnes JS-Modul, das der Neffe der Inhaberin (Informatikstudent) lesen kann. Service Worker hält das POS am Laufen, wenn das WLAN flackert.

PWA · ES modules · service worker · printer.js
▸ Backend

PHP + MySQL · eine Datei pro Domäne

Aktionsbasiertes Routing (?action=), reines PDO, JWT. 25-Tabellen-Schema für Einstellungen, Nutzer, Produkte/Komponenten/Zutaten mit Rezepten, Chargen, Regal, Anwesenheit, Boni, Verpackung, Abfall, Prüfprotokoll.

PHP · MySQL · PDO · JWT · transactional integrity
▸ Lagermodell

Dreistufig mit Chargen

Zutaten (roh) → Komponenten (halbfertig, chargenweise, mit Ablaufdatum) → Produkte (fertig, rezeptgebunden) → Regaleinheiten (mit Zeitstempel im Verkauf). Gewichteter Durchschnitts-HPP zieht sich durch alle Ebenen.

component_recipes · product_components · shelf_items · waste_records
▸ Betriebsschleife

Anwesenheit, Bonus, Kassenlade, Prüfprotokoll

Selfie-Check-in mit Schichterkennung, konfigurierbarer Karenz + Abzug, monatliche Bonus-Entwürfe. Kassenlade pro Tag mit Öffnung / Umsatz / Auszahlungen / Abschluss. Jede Mutation im Prüfprotokoll mit Nutzer + IP.

attendance · bonuses · cash_drawer · daily_reconciliation · audit_log
Zurück zu → Alle Projekte

Ihre Bäckerei, Küche
oder Werkstatt noch im Kopf?

Kostenloses Erstgespräch. Wir sagen Ihnen, was sich zu bauen lohnt — und was nicht.