Skip to content
Selected project

Case study · Hospitality & events

Eclipse Cocktails

Orders, bar queue and M-Pesa for an events cocktail bar.

Category
Bar ordering system
Industry
Hospitality & events
Platforms
Waiter app · Bar queue screen · Admin console
Technology
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.

Built for
Eclipse Cocktails, a cocktail bar serving at events
Type
Selected project
Platforms
Waiter app, Bar queue screen, Admin console
Focus
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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

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.

Backend
PHP
Frontend
Vue Tailwind CSS
Data
MySQL
Integrations
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.

  1. 01

    Waiters and the bar work from the same live list of orders

  2. 02

    Paybill payments are tied to the waiter and order they belong to

  3. 03

    Every waiter's takings reconcile by channel at the end of the night

  4. 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.

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.