← Selected work
10

Diana Kitchen

A food ordering system for a vendor in Ilesa, with account-free checkout, bank transfer payments and daily operations managed from her phone.

Role
Software Engineer / Product Development
Focus
Commerce · Payments · Messaging · Small Business
Stack
Laravel 13 · PHP 8.3 · Next.js (App Router) · React · TypeScript · Tailwind CSS · PostgreSQL · Redis · WhatsApp Business Cloud API · Vant (virtual accounts)
Type
Commerce · Payments · WhatsApp
dianakitchen.ilesa.tech
Diana Kitchen — product screenshot

The problem

For a food vendor taking orders on WhatsApp, every sale starts with a conversation: what is available, how much it costs, whether payment has arrived and where to deliver. Keeping track of those details competes with the work of preparing food. Diana Kitchen needed an ordering process that could keep moving while the vendor cooked.

The approach

Customers order from a daily menu without creating an account or downloading an app. The vendor manages menus, payments and deliveries from her phone. Stock reservations, payment verification and order changes are enforced by the server, keeping both experiences consistent with the same business rules.

The build

  • —Timed cart reservations hold available portions during checkout and release them when the reservation expires, preventing the same portion from being sold twice.
  • —Each order receives a virtual bank account for payment. The server verifies incoming transfers before confirming the order.
  • —Menus can be published for today and tomorrow, with an automatic midnight rollover and each order assigned to its intended day.
  • —WhatsApp confirmations and threaded vendor replies run through a queue, so message retries do not interrupt payment processing.
  • —An append-only wallet ledger records transactions, with withdrawal controls that prevent duplicate processing and concurrent balance changes.
  • —The vendor dashboard covers orders, menus, delivery areas, riders and customers. An initial menu interface requiring 42 forms was redesigned around one row per dish.
  • —Nightly database backups are checked with pg_restore before being counted as successful.

The outcome

Diana Kitchen is live for a food vendor in Ilesa, bringing daily menus, ordering, bank transfer payments and delivery management into one system. The Laravel API and vendor dashboard are deployed through Coolify, with the customer site on Vercel.

Next projectGUMED Portal →