Devsdesk
← Index
Full-StackElectronOffline-FirstEvent-DrivenReactNode.js

RMS — Restaurant Management System

Full-stack restaurant operations platform that runs both as a hosted web app and an offline-first desktop app from the same codebase. POS, kitchen display, recipe-driven inventory, RBAC, invoicing, and an audited order pipeline.

Problem

Small restaurants need a single tool that handles point-of-sale, kitchen workflow, and inventory — and that keeps working when the internet doesn't. Existing tools force a choice between cloud-only SaaS and clunky local installs.

Architecture

  1. H01

    Web + desktop from one codebase

    The desktop variant is ~3 files of Electron glue. The packaged app spawns a bundled mongod, starts the existing Express server in-process, and loads the prebuilt Vite SPA from disk. Same API, same UI, fully offline.

  2. H02

    Event-driven order pipeline

    Order state changes emit to an internal event bus. Inventory deduction, invoicing, and audit logging are independent subscribers. Every event persists to EventLog with status and retry count so failures can be replayed.

  3. H03

    Recipe-based inventory with full ledger

    When an order is marked ready, the recipe system deducts each ingredient and writes an InventoryLedger entry. Every gram of stock is traceable from a customer's order back to the ingredient batch.

  4. H04

    Immutable financial snapshots

    Orders snapshot tax name, percentage, amount, and menu item prices at creation time. Changing the active tax tomorrow doesn't retroactively alter yesterday's revenue.

  5. H05

    RBAC enforced at three layers

    22 named permissions checked at the route, component, and navigation layers. Cashiers see only their own orders. Self-deletion and self-demotion blocked at the service layer.

  6. H06

    Production-grade shared infra deployment

    Runs on a free-tier Oracle Ampere ARM64 VPS alongside an unrelated project. Fully additive — automatic TLS via Caddy, shared MongoDB replica set with per-project users.

Key features

Stack

Frontend

React 19Vite 7Tailwind v4Shadcn / RadixTanStack Query 5ZustandReact Router 7

Backend

Node.jsExpress 4MongoosePassport (JWT)JoiWinstonHelmetxss-cleanexpress-mongo-sanitize

Database

MongoDB 7 (replica set in production)

Desktop

Electron 37electron-builderbundled MongoDB binary

Infra

Caddy 2DockerDocker ComposeOracle Ampere ARM64

Status

Live web + desktop builds for Linux and Windows

04 — Start a project

An idea, an existing app, or something in between?

Tell us what you're trying to ship. We reply within one business day with a written take on scope and timeline — not a sales pitch.