Skip to content
miito.devThe Workshop · File 0176
Back to the register

Pho Kam Long — POS and kitchen display

An iPad point of sale and kitchen display for the restaurant, with its own server and a table-call device.

Directive
R-002
Class
Client
Role
Design and build
Client
Pho Kam Long
Period
Apr 2026 – Jun 2026
Status
In development
The POS on an iPad: the floor plan, a table's check, the kitchen display, takeaway and bookings.

The account§ 01

An iPad app built with Expo and React Native for taking orders at the table, running checks, takeaway and reservations, with a kitchen display that times each ticket from the moment it is fired.

Behind it is a Fastify server with PIN sign-in, roles and an audit log, and a sync protocol that keeps the iPads working offline. A small firmware gateway, written in C, lets a table call for service and shows the call on the floor plan until staff answer it.

Outcomes

  • Floor plan, checks, takeaway, reservations and waitlist on the iPad.
  • Kitchen display with live ticket times.
  • PIN sign-in with roles, lockout and an audit log.
  • Offline-first sync between the iPads and the server.
  • Table-call alerts from a firmware gateway, relayed over MQTT and WebSocket.

Timeline

  1. POS app begun
  2. Staff sign-in and roles
  3. Kitchen display timing
  4. Offline sync
  5. Table-call alerts

In figures§ 02

  • 5staff roles, from owner to kitchen
  • 3languages on the iPad
  • 200+commits on the POS app
  • Offlinefirst: orders are kept on the iPad and synced after

What it does§ 03

  1. Floor plan

    Every table by area, dining, bar and patio, marked seated, open, to clean or reserved, with its guests, time and running total.

  2. Checks

    Orders taken by seat and by course, fired to the kitchen, split, and paid.

  3. Kitchen display

    Tickets by station, timed from the moment they are fired, marked done from the line.

  4. Takeaway

    Pickup and delivery orders on a board from pending through preparing to ready.

  5. Bookings

    The day's reservations on a timeline, with a waitlist that counts the wait live.

  6. Staff sign-in

    A PIN per person, roles that decide what they can do, lockout after failed tries and an audit log.

  7. Table call

    A button at the table that calls for service; the call shows on the floor plan until someone answers it.

  8. Floor editor

    The room laid out by hand in an edit mode: tables placed, selected together or removed, and the layout saved when the editor closes.

  9. Three languages

    English, French and Vietnamese, chosen in settings and kept on the iPad, with prices formatted for each.

Screens§ 04

  • Fig. 1The floor plan
  • Fig. 2A table's check
  • Fig. 3Kitchen display
  • Fig. 4Takeaway board
  • Fig. 5Bookings
  • Fig. 6Sign in by PIN

How it fits together§ 05

The iPads keep working when the network drops and catch up when it returns.

  1. Table call deviceFirmware in C, CRC-checked messages
    MQTT
  2. Fastify serverStaff auth, orders, a sync log in Postgres
    WebSocket · sync
  3. iPad POS and KDSExpo and React Native, an offline store