Skip to content
MRJ

Food Loft

Food hall management and multi-outlet POS/ERP

The question

Can a browser point of sale read a stored-value card from a desk reader while the balance stays server-side, so a lost card is recoverable?

A multi-tenant platform for company-owned and partner food outlets, now serving 7+ outlets, with 24 Laravel modules, a Vue 3 POS, real-time updates over Laravel Reverb, and NFC stored-value card payments through a compiled Deno agent.

7+
Outlets
24
Modules
3 engineers
Team
Architecture
many tenantsone schemaone truth

how it is put together

Problem

A food hall with company-owned and partner outlets needed one system for sales, kitchen operations, inventory and recipes, loyalty, promotions, settlement between the hall and its partners, reporting, and payment and delivery provider integrations.

Architecture

  • 24 Laravel 12 modules with role-based access, audit logging, and per-tenant outlet scoping.
  • A Vue 3 POS frontend with real-time order and kitchen updates over Laravel Reverb WebSockets.
  • NFC stored-value cards: a single-file Deno executable on each cashier desktop reads MIFARE UIDs from an ACR122U reader over PC/SC and serves them to the browser on localhost; balances live server-side, so a lost card is recoverable.

What I built

Led a three-engineer team, owned the architecture and the module conventions, and wrote the NFC agent and its integration into the cash counter and POS flows.

Outcome

Serving 7+ outlets with NFC payments at the counter.