Jennifer Cerio, Full Stack DeveloperJennifer Cerio

Work/Case study

Point of sale PWA

A restaurant POS that keeps working when the internet doesn't.

I built an installable POS system that connects checkout, kitchen operations, inventory, sales, expenses, and thermal printing while supporting offline order capture and automatic synchronization.

SpudTan POS checkout with bowl categories, current order, and totals

Problem

Counter orders, kitchen tickets, stock, and end-of-day totals were too easy to split across notebooks, printers, and messages — and a dropped connection could stop checkout.

Solution

A React PWA on Supabase with checkout, a realtime kitchen board, recipe-based inventory, sales and expense reporting, role-based staff access, IndexedDB offline queueing, and Web Bluetooth ESC/POS printing.

Outcome

The counter, kitchen, inventory, and reports run in one installable system, and orders still capture when connectivity fails.

Role

Design and full-stack development

Architecture

Engineering challenges

Checkout that survives a dropped connection

If the network fails during checkout, the order is stored in IndexedDB, remains queued, retries automatically, and syncs once connectivity returns.

Kitchen and counter as one live system

Orders have to appear on a tablet kitchen board in realtime, with complete, reprint, and void-with-reason flows that match how the line actually works.

Inventory that follows the recipe

Stock deducts from what was sold, including waste and restock, instead of living in a separate notebook from the POS.

Features

POS

  • Product selection and add-ons
  • Walk-in, online, pickup, rider, and third-party booking orders

Kitchen queue

  • Realtime kitchen board
  • Mark orders complete, reprint labels, void with reason
  • Tablet-optimized layout

Sales & expenses

  • Daily, weekly, and monthly reports
  • Cash vs GCash and bowls sold
  • CSV export
  • Business expenses, capital, salary tracking, and categories

Inventory

  • Stock tracking, restock, usage, and waste
  • Low-stock warnings
  • Recipe-based automatic stock deduction

Authentication & security

  • Supabase Row Level Security
  • Private receipt uploads
  • Security headers
  • Protected order totals
  • Service-role API for managing staff accounts
  • Roles: super_admin, admin, staff, viewer

Engineering

  • Installable PWA with IndexedDB offline order capture
  • Automatic retry and sync when connectivity returns
  • Supabase Auth, PostgreSQL, RLS, Realtime, and Storage
  • Web Bluetooth ESC/POS thermal printing

Technology

React 19TypeScriptVite 8Tailwind CSS 4React RouterZustandSupabasePostgreSQLIndexedDBPWAWeb BluetoothESC/POSVercel