Back to work

RestoFlow

A Restaurant POS System (Philippine-based)

React 19TypeScriptViteTailwind CSS 4ZustandFramer Motion
RestoFlow

A tablet-first point-of-sale simulation for a beachfront restaurant and wine bar.

[Overview]

RestoFlow is a simulated restaurant POS that covers a full service from the floor to the end-of-day report. A server can seat a party, take an order, fire courses to the kitchen, print a bill, take payment and close out the day, all from a tablet held in landscape. The restaurant is fictional, but it is modelled closely on how a real one runs: 27 tables across seven dining areas, a menu of about 170 items, and Philippine tax and discount rules. It is a front-end project with no backend. All state lives in the browser, so it runs anywhere as a static site.

[The goal]

Most POS demos stop at a product grid and a cart. RestoFlow sets out to simulate the parts of restaurant service that make a POS hard to get right: tables that change state, courses that fire separately, prices that vary by the day, tax that is already inside the menu price, and an audit trail that never loses a ticket.

[What it does]

  • Floor plan. The venue is drawn as a nautical sea chart with all 27 tables. Each table shows one of four states (Open, Serving, Bill, Held) using colour, icon, border and a word, so it stays readable for colour-blind staff.
  • Ordering. Eight menu sections with sub-filters, search, modifiers and kitchen notes.
  • Course firing. Sending to the kitchen locks and timestamps those lines, and the next round goes out as its own course.
  • Market-price seafood. Dishes listed as "market price" open a keypad, so the server keys in the day's price before the item joins the ticket.
  • Live wine pricing. Wine prices move every few seconds on a simulated market with an index and sparkline, and the price locks the moment an item is ordered, so a guest's bill never drifts.
  • Billing to local rules. Menu prices already include VAT, so the tax is backed out rather than added on top. It also handles the 20% Senior Citizen / PWD discount with VAT exemption, and Happy Hour at 10% off drinks.
  • Payment. Cash, card, GCash, or charge-to-room against a mock resort booking folio.
  • Receipts. A print stylesheet produces a properly formatted 80mm receipt.
  • Audit. Day, week and month reports covering takings, covers, payment mix, best sellers and sales by server, plus a printable Z-reading laid out with the fields a Philippine venue reports to the BIR. Voided tickets are recorded with their reasons, never discarded.

[Tech stack]

  • Framework. React 19, TypeScript
  • Build. Vite
  • Styling. Tailwind CSS 4
  • State. Zustand, persisted to localStorage
  • Motion. Framer Motion
  • Icons. Phosphor Icons
  • Charts. Hand-built SVG, no chart library