Frontend · Product
ChowPOS
Restaurant POS for sales, kitchen, stock, and delivery
Overview
ChowPOS runs a restaurant's day-to-day operations in one system: recording sales, sending orders to the kitchen, tracking stock and production, managing deliveries, and reporting on sales.
I worked mainly on the React frontend, building and extending the screens restaurant staff use every day — and reworked the sales-reporting APIs and queries so reports stay fast on large datasets.
What it does
- Sales reporting split into per-section APIs with progressive loading
- Stock receiving, production workflow, and delivery operation modules
- Report generation, receipt printing, and email notifications
The hard parts
One API call doing everything
The sales report was calculated in a single API call that computed every section at once, so owners stared at a spinner until the slowest breakdown finished. I split it into separate APIs per section and load them progressively — the priority summary renders first, and the heavier breakdowns fill in afterwards.
Fixing the queries underneath
Splitting the API made the slow parts visible. Some section queries were filtering and joining on columns with no index, so MySQL scanned whole tables as the data grew. Adding the missing indexes and optimizing those queries made each section fast on its own, not just perceived as faster.
Tech stack
Outcome
Shipped at Roomy Technologies and in production use by restaurant clients.