home about projects drawings ceramics
View CV ↗
rabianduman@hotmail.com
All projects
Digitable · POS System

Designing one calm system for a restaurant's busiest hours.

The waiter on their feet, the kitchen mid-rush, and the guest at the table, three roles, three devices, one product.

My role
Product Designer · Product owner
UX/UI · Service Design
Tools
Figma · Flutter · Claude Design · Claude Code ·  Aider · pen & paper · apron :)
Timeline
12 mo

Understanding the problem

Menemen illustration
a month on the floor

Before I drew a single screen, I spent a month working inside a restaurant, taking orders, running plates, watching the pass.

A POS looks calm in a screenshot. On a Friday night it isn't. So I worked the floor for a month first.

DIGITABLE · POSNO. 01

Three users, not one

Waiter, kitchen, guest. Same information, three completely different hands.

DIGITABLE · POSNO. 02

Rules nobody writes down

Noise, grease, one thumb, a two-second glance. New staff had to get it in one shift, not one week.

DIGITABLE · POSNO. 03

Where the money leaks

Orders lost between floor and kitchen, dishes fired twice, guests who can't pay. Every leak was a design problem.

The approach

01

One system, three screens

A colour means the same thing on every device; a price is formatted once, in a shared foundation.

02

Built for the rush, not the demo

The most frequent action is the biggest, closest target. Anything costing an extra tap during service was cut.

03

Map the whole loop

I mapped the full service, QR scan to cleared table, across all three roles. That map caught the leaks before they shipped.

Designing the flows

The service looked simple. It wasn't, product edits, split payments, returns, cancellations, transfers. I expanded every branch with the developers, then collapsed it into a few calm screens per role.

One corner of the flow map
Built screen-by-screen with the developers. The real map runs far wider than this window, branches, edge cases and returns in every direction.
Screen Decision Sub-flow Exit
F1.1
F1.2
F1.3
F1.4
F1.5
F1.6
F1.7
F1.8
F1.1.1
F1.1.2
F1.1.3
F1.1.4
F1.4.1
F1.1.5
F1.1.6
F1.1.7
F1.1.8
F1.1.9
F1 · ordering & payment, 1 of 6 regions

Coursing, the detail that proves you were there

The kitchen doesn't cook a whole order at once, starters now, mains later. So the station lets the kitchen group items into courses and fire each when it should be cooked. Making meal-timing the default, not extra work, is the kind of decision you only make after standing at a real pass.

From wireframe to final

Same screen, three fidelities. Structure is locked in grey before a single colour is chosen; the final surface only adds what the grey layer proved it needed.

01Lo-fi wireframe
02Hi-fi wireframe
Menu
Breakfast Egg Dishes Desserts
Breakfast
11. Product Name
vegetarian · vegan · spicy
Description added by the restaurant / pellentesque…
6.90 €
image
11. Product Name
vegetarian · vegan · spicy
Description added by the restaurant / pellentesque…
6.90 €
image
11. Product Name
vegetarian · vegan · spicy
Description added by the restaurant / pellentesque…
6.90 €
image
2
03Final UI
Menu
Breakfast Egg Dishes Desserts
Breakfast
11. Menemen
vegetarianvegan
Scrambled eggs with tomato & green pepper…
6.90 €
Menemen
12. Sucuk & Eggs
contains meat
Fried eggs with Turkish sausage & bread…
8.50 €
Sucuk & Eggs
13. Breakfast Plate
vegetarian
Cheeses, olives, tomato, cucumber & honey…
12.00 €
Name1231 added Menemen.
My Orders
Call WaiterRequest received · 05:54
Pay

Guest self-ordering, menu, cart, call waiter & pay. Food images are left as labelled placeholders for real photography.

The system

Waiter app · mobile app

The command center

A live table map (grid ⇄ list) split into "my tables" and "others," with search. From here: order approval, item edits, adding new orders, table & order transfer with hand-back approval, cancellations, and payment.

Hello Alex
2
+
My Tables
21Empty
22Ready
23Occupied
24Payment
25Confirm
26Payment
27Confirm
28Calling
29Calling
30Empty
31Empty
Others
21
Payment11 min ago
Total: €545.12
22
Confirm11 min ago
Total: €545.12
23
Calling2 min ago
Total: €0.00
24
Ready5 min ago
Total: €128.40
25
Empty,
21
1 00:03:35
8313:17
Mixed Grill Platter4x
Chicken Shish4x
Lamb Chops1x
Seasonal Salad2x
Crispy Cheese Rolls4x
2 00:03:35
8413:17
Margherita3x
Four Cheese Pizza1x
Lentil Soup1x
3 00:03:35
8513:17
Chocolate Soufflé1x
Baklava1x
İskender Kebab1x
Grilled Sea Bass4x
Manti4x
ActiveCompleted 1/5 07 July 2026
15:20:39
POS station · tablet

The ticket rail

Incoming orders land as receipt cards, grouped into courses the kitchen fires one at a time. Auto-print (ESC/POS), countdown badges, and distinct sounds for send / print / ready.

Guest · web

Self-service ordering

Multi-language menu, basket, live order status, and a "request to pay" signal, so the guest is never stuck waiting to catch a waiter's eye.

Payment4
Hi KebabLover
Pick the orders you'd like to pay for, then request payment.
Menemen
Extras: Olives, Pickles · No: Tomato
by KebabLover
6.90 €
Menemen
Extras: Olives, Pickles
by KebabLover
6.90 €
Sucuk & Eggs
Extras: Bread
by KebabLover
8.50 €
Treating the table? What a gesture!
Pay for the whole table
Omelette
Extras: Olives, Pickles
by Shishaboy
6.90 €
Request payment22.30 €
Payment received. We'll be right with you!
How would you rate our service?
😪🙁🙂😄🥰
Send
Waiter · payment

The screen we rebuilt the most.

Full bill, split by item, split by amount, partial payments, and card and cash in one transaction, all had to live on a single screen without overwhelming a waiter mid-rush.

The core gesture reduced it to one motion: swipe the tile to Card or Cash. The calculator handles splits, change and remainders.

// enter an amount → swipe to card or cash → repeat until paid
Table 10
Dine-in Coupon
1.
Adana Kebab
by Curious Otter
€16.90
x1 €16.90
2.
Lemonade
by Curious Otter
€3.90
x2 €7.80
3.
Caesar Salad
by Curious Otter
€9.90
x1 €9.90
4.
Turkish Coffee
by Curious Otter
€3.50
x3 €10.50
5.
Sparkling Water
by Curious Otter
€2.00
x1 €2.00
Total:€340.30
Paid:€0.00
Remaining:€340.30
1.
100
Cash
2.
240.30
Card
Card Cash €100
drag the amount onto a payment method
Close Payment

Decisions I'd defend

Transfer

Transfer with hand-back approval

A waiter can pass a table to a colleague, but the receiver has to accept it. Ownership never changes silently, which kills the "who's got table 9?" problem mid-rush.

Shared truth

Real-time, one source of truth

Empty, seated, ordering, food ready, wants to pay: each is a distinct live state shown the same way on every device, so the floor and kitchen never disagree.

Resilience

Designed offline states

When the network drops, the app tells the truth, queues actions locally, and syncs on reconnect. The waiter keeps serving.

Safety

Friction only where it's costly

Cancelling asks for a reason; irreversible actions confirm. Everywhere else, zero friction.

Next project
Harby · Logistics ERP