Portfolio Project

F&B Command

AI-powered POS dashboard

A modern cloud POS and operations dashboard for small F&B businesses. AI-driven demand forecasting, inventory alerts, and natural-language business insights help them sell smarter.

View live demo →

The problem

Small F&B businesses in Singapore operate on razor-thin margins. Hawker stalls, cafes, bubble tea shops, casual dining. Yet most still rely on basic cash registers or overpriced legacy POS systems. They get numbers but no intelligence.

Owners make gut-feel decisions about ordering, prep quantities, staffing, and promotions. This leads to real daily costs:

  • Food waste from over-ordering perishable ingredients
  • Stockouts that turn away customers during peak hours
  • Overstaffing on slow days, understaffing on busy ones
  • Missed promotions — not knowing which items to push and when

Enterprise F&B chains solve this with expensive analytics platforms. Small operators can't afford those. They need the same intelligence in a simpler package.

The approach

Go backend for performance and simplicity.

A POS system handles frequent writes (every order) and needs to be fast and reliable. Go's concurrency model and low resource footprint make it ideal. A single Go binary serves the API and handles WebSocket connections for real-time updates. It stays responsive under load.

React frontend for speed of development.

React's component model makes it efficient to build complex interactive UIs — order entry, drag-and-drop menu management, real-time charts.

Python microservice for forecasting.

The demand forecasting model runs as a separate Python service using Meta's Prophet library. Prophet handles daily and hourly demand prediction, accounting for seasonality, holidays, and trend changes.

LLM for natural-language insights.

Instead of building dozens of pre-canned reports, we added an AI chat feature. Owners ask questions in plain English. The system converts those into SQL, runs them against the database, and returns human-readable answers. Powered by Google Gemini.

PostgreSQL for everything.

One database for orders, inventory, menu items, and forecasts. Simple, reliable, well-understood. No need for exotic data stores at this scale.

Key features

Order management

  • Dine-in, takeaway, and delivery order entry
  • Table management for dine-in restaurants
  • Real-time order feed via WebSocket
  • Order status tracking from placed to fulfilled

Menu and category management

  • Categories and modifiers (size, add-ons, spice level)
  • Pricing, cost of goods, and item-level margins
  • One-click sold out — syncs to all channels

Sales dashboard

  • Daily revenue, order count, average ticket
  • Hourly sales heatmap for peak/slow periods
  • Item mix breakdown and trend comparisons

AI Demand forecasting

  • 7-day demand predictions by item, broken down by hour
  • Factors: historical sales, day of week, holidays, weather
  • Trained on the business's own data

AI Inventory alerts

  • Connects forecast to current stock levels
  • Actionable alerts like “Order 5 kg chicken by Thursday”
  • Waste tracking with cost impact

AI Insights chat

  • Ask questions in plain English about your business
  • Returns answers with charts and tables
  • Conversation history for follow-up questions

Tech stack

LayerTechnology
FrontendReact 19, Vite, TypeScript, Ant Design
BackendGo
DatabasePostgreSQL
AI — ForecastingPython, Prophet / statsforecast
AI — ChatGoogle Gemini
DeploymentStatic hosting (frontend), Railway (backend + DB)

Security and data protection

We follow zero trust principles, aligned with ISO 27001 controls and IMDA's Data Protection Trustmark (DPTM) requirements.

Zero trust architecture

  • We authenticate and authorize every API request — no implicit trust
  • Short-lived JWTs with refresh token rotation, scoped by outlet and role
  • Go backend to Python forecasting via mutual TLS and signed requests
  • Least-privilege access — a cashier can enter orders but can't export financial reports

Data protection (PDPA-aligned)

  • Tenant data isolation with row-level security policies
  • We encrypt customer personal data at rest and in transit
  • Automatic data retention policies
  • AI chat queries are stateless — business data never sent to LLM for training

Application security

  • Input validation and parameterized queries throughout
  • Rate limiting on all public endpoints
  • Comprehensive audit logging
  • Automated dependency scanning in CI/CD

What this demonstrates

Full-stack web applicationReal-time systems (WebSocket)Data visualizationClassical ML (Prophet forecasting)LLM integration (NL-to-SQL)Zero trust securityPDPA-aligned data handlingProduction-grade engineering