Back to workApp · Restaurant / POS

Pizza Story

Restaurant management and point-of-sale platform — staff use a web POS or a Windows desktop installer with local API and receipt printing; mobile extends ordering and floor visibility; all clients share a Node API and MongoDB backend with realtime updates over WebSockets.

Overview

Pizza Story is a restaurant management and POS ecosystem. A TypeScript Express backend on MongoDB exposes REST resources for menu, tables, orders, payments, kitchen tickets, customers, inventory, and loyalty, and uses Socket.IO so web and desktop clients stay in sync per restaurant. The primary staff experience is a Vite + React SPA with MUI and Redux, deployable to the web or embedded inside an Electron Windows installer that runs a local Node API and supports USB thermal printing. A React Native app extends the same backend for mobile workflows such as table service and quick reporting.

How it works (architecture)

API layer (PS-Backend)

Express (TypeScript) REST API under /api/* for users, orders, tables, payments, KOT (kitchen tickets), customers, menu, inventory, loyalty, and printing. The HTTP server also hosts Socket.IO so clients join restaurant-scoped rooms for live updates (orders, floor activity).

Data & security

MongoDB with Mongoose; health checks expose DB connectivity. Auth uses JWT-style flows with bcrypt for passwords. Razorpay is integrated for payments.

Web POS (PS-Frontend)

Single-page app with Vite + React + TypeScript. Axios for API calls, Redux Toolkit + redux-persist for state, TanStack React Query for server state, Socket.IO client for realtime. UI: Material UI (MUI) + Emotion, Recharts, MUI X Date Pickers and date-fns, Framer Motion, React Router, Notistack toasts, Tailwind where configured.

Desktop (PS-Desktop)

Electron app bundling the same POS UI (production build from PS-Frontend) with a bundled Node backend and Windows Node runtime as extra resources. electron-builder produces an NSIS Windows installer (Pizza Story POS). Printing via backend routes using ESC/POS-style tooling and USB/serial libraries for thermal printers in-store.

Mobile (PSMobile)

React Native (RN 0.81, React 19, TypeScript) with React Navigation (native stack), AsyncStorage, gesture handler and safe area libraries. Consumes the same REST API with a configurable base URL for cloud vs local development.

Tech stack

AreaTechnologies
BackendNode.js, Express, TypeScript, Mongoose, Socket.IO, JWT, bcrypt, Razorpay, CORS, cookie-parser
Frontend (web POS)React 18, TypeScript, Vite, Redux Toolkit, React Query, Axios, MUI, Tailwind, React Router, Recharts, Socket.IO client
DesktopElectron, electron-builder (NSIS), bundled local API + static renderer
MobileReact Native, TypeScript, React Navigation, AsyncStorage
Data / infraMongoDB (Atlas in deployment paths), optional Render-hosted API (referenced from mobile config for production URLs)

Engineering highlights

  • REST API and Socket.IO realtime layer for multi-client POS behaviour per restaurant.
  • Staff web POS with MUI and Redux Toolkit — reporting, dates, charts, and operational flows wired to the backend.
  • Windows desktop distribution via Electron (NSIS installer) with bundled local API and thermal printer integration for stores.
  • React Native mobile app sharing the same API for compact waiter / floor workflows (Android-focused paths; iOS-ready structure in-repo).

Product surface area

  • Operations: Dashboard, tables, menu, orders, checkout, bills, KOT, customers, inventory, reports.
  • Payments & loyalty: Payment APIs, loyalty routes.
  • Realtime: Socket.IO restaurant rooms for collaborative POS behaviour.
  • Hardware: Printer integration from the desktop / local stack.
  • Mobile: Login, dashboard, table selection, menu, order flow, confirmation, history, details, reports, profile — aligned with a compact staff / waiter workflow.

Screenshots

Product imagery from the Pizza Story build (public/images/Work/PizzaStory).

Pizza Story screenshot 1
Pizza Story screenshot 2
Pizza Story screenshot 3
Pizza Story screenshot 4
Pizza Story screenshot 5

Want a similar product for your business?

Discuss a project