Case study · Hospitality & events
Eclipse Cocktails
Orders, bar queue and M-Pesa for an events cocktail bar.
- Bar ordering system
- Hospitality & events
- Waiter app · Bar queue screen · Admin console
- PHP · MySQL · Vue · M-Pesa
01 · Project overview
What was built, and for whom.
Eclipse Cocktails runs a cocktail bar at events. CodeWave built the system the team uses on the night: waiters take orders from the menu on their phones, the bar works through a live queue, and payments come in as cash, an M-Pesa prompt or a Paybill transfer. At the close of each event, every waiter's takings are cashed up by payment channel, alongside commission and deductions.
- Eclipse Cocktails, a cocktail bar serving at events
- Selected project
- Waiter app, Bar queue screen, Admin console
- pos payments web
02 · Business challenge
The problem, as the business experienced it.
At a busy event, waiters, bartenders and the cashier need to agree on what was ordered, what has been served and how it was paid, including M-Pesa payments that arrive without a matching order.
Event service is fast and crowded. Orders, bottles and money move quickly between people, and M-Pesa payments do not always arrive attached to the order they belong to.
- Waiters and bartenders need the same view of every order
- The last bottle cannot be sold twice
- Paybill payments need matching to the right waiter and order
- Each waiter's cash, M-Pesa and commission must reconcile at close
03 · Our approach
How we got from the problem to the system.
CodeWave built a web-based ordering system with a waiter app, a live bar queue, cash and M-Pesa payments matched to waiters, and an end-of-day cash-up for every waiter.
-
01
Take the order
A waiter app with the menu by category, search, a cart, table tags and notes, with prices re-read on the server for every order.
-
02
Run the bar
A bar queue that refreshes every few seconds with a chime for new tickets, moving orders from pending to preparing, ready and picked up.
-
03
Match the money
Cash, M-Pesa STK prompts and Paybill payments, with Paybill transfers matched to a waiter's account number or claimed from a shared pool.
-
04
Close the night
Per-waiter cash-ups split by payment channel, commission and deductions, saved as snapshots so later changes cannot rewrite them.
04 · Solution architecture
Layers of the system.
Clients at the top, the core application in the middle, integrations and data underneath. Green marks the integration layer where the system meets the outside world.
Staff
- Waiter app
- Bar queue
- Admin console
Operations
- Menu & stock
- Orders
- Events
- Cash-up & settlement
- Reports
Payments
- M-Pesa STK Push
- M-Pesa Paybill (C2B)
- Cash
Platform
- PHP
- MySQL
- Vue
05 · Key features
What the system does.
Waiter ordering
Menu, search, cart, table tags and notes on the waiter's phone.
Live bar queue
New tickets appear within seconds, with a sound alert and clear prep stages.
M-Pesa prompt & Paybill
STK Push at checkout and Paybill transfers matched or claimed by waiters.
Stock that cannot oversell
Guarded stock updates stop two waiters selling the same last bottle.
End-of-day cash-up
Takings per waiter by channel, with commission, deductions and settlement.
M-Pesa tools
Credential checks, callback URL registration and diagnostics in the admin console.
06 · Technology
The stack behind it.
Chosen for the job — mature, supportable and straightforward to host and staff for in Kenya.
- PHP
- Vue Tailwind CSS
- MySQL
- M-Pesa Daraja STK Push C2B Paybill
07 · Business impact
What changed for the business.
Outcomes are described qualitatively. Figures are published only when verified by the client and approved for release.
-
01
Waiters and the bar work from the same live list of orders
-
02
Paybill payments are tied to the waiter and order they belong to
-
03
Every waiter's takings reconcile by channel at the end of the night
-
04
Voids, reversals and closed days stay on record
08 · Screens
Interface illustration.
A representative illustration of the interface, not a live screenshot — no client data is shown.
Pending2
Mojito ×2
Waiter · ———
Old Fashioned
Waiter · ———
Preparing2
Margarita ×3
Waiter · ———
Negroni
Waiter · ———
Ready1
Mocktail ×2
Waiter · ———
Similar problem?
Have a process that looks like this one?
Tell us how it runs today. We will tell you what a system built for your operation would involve.
