Case Study

Inkanteen logo

A Canteen Operating Suite — QR Ordering, POS, Catering & Dashboard

InKanteen is not one app but a product suite for running canteens and food courts end to end: a QR-based ordering web app for diners, a cashier POS, a B2B catering subscription product, and an operator dashboard. Built on a Vue + NestJS stack with event-driven messaging so multiple tenants and order channels stay in sync.

ClientInKanteen
IndustryFood & Beverage / Canteen Operations
EngagementCompleted — multi-product build
RoleEngineering Partner
A Canteen Operating Suite — QR Ordering, POS, Catering & Dashboard
metric #1

4 products on one shared backend

metric #2

QR · POS · Catering · Dashboard

metric #3

Multi-tenant, event-driven

01 / Brief

The Problem

Multi-tenant canteens juggle several order channels at once — diners ordering at the table, a cashier ringing up walk-ins, and recurring catering orders — usually across disconnected tools. The result is mismatched stock, slow queues, and no consolidated view for the operator. InKanteen needed these channels to run as one system: a QR menu diners could order and pay from on their own phones, a fast POS for the cashier, a catering flow for subscriptions, and a dashboard that ties tenant operations together.

02 / Constraints

Constraints

  • [01]Multiple products sharing one domain model — menu, orders, tenants, payments
  • [02]Order events must stay consistent across QR, POS, and catering channels
  • [03]Diner-facing flow must work instantly on a phone with no app install
  • [04]Indonesian users — UI and payment flows in Bahasa
  • [05]Built to support multiple canteen tenants from one backend
03 / Execution

Our Approach

We built InKanteen as a suite of products on a shared Vue 3 + Vite frontend and a NestJS service layer, with RabbitMQ carrying order events between channels so the QR menu, POS, and catering flows reconcile against one source of truth. The diner app lets customers select a tenant, browse the menu, order, and pay straight from a QR scan — no install. The POS gives cashiers a tap-to-cart, checkout, and payment-success flow for walk-ins. The catering product handles subscription-style recurring orders for B2B clients (built end to end, kept as an internal product). The operator dashboard sits on top for menu, tenant, and order management. MySQL backs the transactional data.

Technical Takeaway

Optimizing ordering flows for high-traffic environments requires a unified POS cart management system and multi-tenant billing pipelines that handle transactions concurrently without lag.

04 / Showcase

Gallery

Menu app — select tenant & menu

Menu app — order & detail

Menu app — checkout & payment

Cashier POS — menu & cart

Cashier POS — item options

Cashier POS — order detail & payment

05 / Impact

Outcome

  • QR ordering app — diners order and pay from their own phones, no install
  • Cashier POS with tap-to-cart, checkout, and payment-success flow
  • B2B catering subscription product built end to end
  • Operator dashboard for menu, tenant, and order management
  • Event-driven backend keeps QR, POS, and catering channels in sync
  • Multi-tenant by design — one backend serving many canteens
06 / Perspective

Why this matters

InKanteen is a reminder that most real software is a suite, not an app. The interesting work was not any single screen — it was keeping a QR order, a POS sale, and a catering subscription consistent across one event-driven backend. That discipline, building several products against a shared domain model, is exactly what we now bring to client work at Idin Studio.

07 / Architecture

Tech Stack

Frontend & UI

Vue 3ViteTailwind CSS

DevOps & Infrastructure

NestJSNode.jsRabbitMQMySQLWebpack
LET'S GO

Get in touch

Have a project in mind?

Reply within 24 hours during WIB business hours. Indonesian or English — whichever fits you.

top rated plus · 100% jss · 8+ clients

A Canteen Operating Suite — QR Ordering, POS, Catering & Dashboard | Idin Studio