Bar Ordering & POS
Online ordering and bartender point of sale
Online ordering and an offline-capable POS for a neighbourhood bar — tabs, split bills, shifts, and end-of-night reconciliation.


The problem
A local bar needed online ordering for pickup and a POS its bartenders could rely on during a busy night, including when the connection drops.
What I built
A public site with Stripe ordering, plus a React POS backed by an Express API with live sync between devices and an offline mode.
Core features
- -Online ordering with pickup scheduling, tips, promo codes, and refunds
- -Bartender POS with tabs, split bills, and menu add-ons
- -Shifts and end-of-night reconciliation
- -Live sync across devices and a staff screen
- -Offline mode that keeps the POS working without a connection
Engineering highlights
- -Offline-capable POS built on IndexedDB, so bartenders can keep working through a dropped connection
- -Real-time updates between bartender devices over Socket.io
- -End-to-end tests for auth, shifts, bill splitting, tabs, and refunds
Tech stack
ReactViteDexie (IndexedDB)Tailwind CSSNode.jsExpressPostgreSQLSocket.ioStripeDigitalOcean
Impact
- -One system replacing separate tools for online orders and in-house tabs