Real-time sales tracker and digital logbook for Malaysian Kopitiam owners
Challenge: Small Malaysian Kopitiam operators typically track daily sales manually using pen and paper or basic spreadsheets. This approach is error-prone, time-consuming, and provides no real-time insight into which items are selling, when peak hours occur, or how revenue trends over time.
Solution: Kopitiam Digital Waiter is a lightweight, mobile-friendly web application that lets Kopitiam owners record sales in seconds, monitor item performance, and view daily analytics — all from any browser, with no complex setup required.
At-a-glance view of today's total revenue (RM), items sold, and transactions. Includes milestone alerts and an AI-powered quick tip based on current sales activity.
Interactive menu grid with +/- quantity controls. Tap the green button to record a sale. Shows live top-selling items and today's running sales total in the header bar.
Horizontal progress bar chart ranking all menu items by total quantity sold. Top 3 items highlighted in emerald; remaining in grey. Shows "X sold" for each item.
Two charts: an Area Chart showing busy hours (total order volume by hour) and a Bar Chart showing daily revenue trends for the last 7 days. Powered by Recharts.
Powered by Google Gemini AI, the dashboard generates context-aware tips for the owner. If sales are live today, it references the top-selling item. Otherwise it uses historical best-seller data to suggest preparation priorities.
The server automatically detects when a menu item crosses significant sales milestones during the day (e.g. 10+ orders) and surfaces a congratulatory alert on the dashboard.
The app seeds from a real Kopitiam dataset (CSV) on first launch, giving owners instant analytics from day one without needing to enter historical data manually.
The analytics engine automatically groups all historical sales by hour using SQLite queries, surfacing which hours of the day see the highest order volumes — no manual analysis needed.
Kopitiam_dataset.csv and populates the database with historical sales data/api/menu, /api/sales (POST), /api/stats/today, /api/stats/performance, /api/stats/analyticsnpm run dev — Start development server with Vite HMRnpm run build — Build the React SPA to dist/npm run start — Run production server (requires built dist)npm run lint — TypeScript type checkingdist/ folder and handles all API routes