๐ณ Kitchen Display โ
The Kitchen Display System (KDS) is a real-time order board powered by Socket.IO. It shows incoming orders to kitchen staff and allows status updates without refreshing the page.

โ๏ธ How It Works โ
- ๐ A customer places an order via the storefront
- ๐ก The server emits a Socket.IO event to the
kitchenroom - ๐บ The admin kitchen display board receives the event and adds the order
- ๐จโ๐ณ Kitchen staff update the order status (e.g., Preparing โ Ready)
- ๐ Status updates are broadcast in real-time to all connected clients
๐ก Socket.IO Events โ
โฌ๏ธ Server โ Client โ
| Event | Payload | Description |
|---|---|---|
order:created | Order object | ๐ New order placed |
order:updated | Order object | ๐ Order status changed |
โฌ๏ธ Client โ Server โ
| Event | Payload | Description |
|---|---|---|
join:kitchen | { locationId } | ๐ Join the kitchen room for a location |
๐ Kitchen Room โ
Each location has its own kitchen room. When a staff member opens the kitchen display, the client joins:
javascript
socket.emit('join:kitchen', { locationId: 'location-id' });Events are only broadcast to clients in the relevant location's room.
๐ Status Updates from Kitchen โ
Staff click status buttons on the kitchen display to advance the order through its lifecycle:
PENDING โ CONFIRMED โ PREPARING โ READYEach status change calls PATCH /api/orders/:id/status and triggers real-time events.
๐ Integration โ
The kitchen display is part of the admin dashboard. It uses React with Socket.IO client to maintain a live connection to the server.
See Real-Time Events for the full event architecture.