Portfolio Project

F&B Pulse

Mobile companion app

A React Native mobile app for F&B owners. Real-time sales monitoring, AI-generated daily briefings, and instant business insights from their phone. They never have to wonder “how's the shop doing?”

The problem

Running a small F&B business means being on your feet — literally. Owners split their time between the kitchen, the floor, supplier runs, and sometimes a second outlet across town. They're rarely sitting at a desktop.

Yet the questions never stop:

  • “How's lunch service going?”
  • “Did we hit our target today?”
  • “Are we running low on anything?”
  • “Should I come in early tomorrow?”

Most POS dashboards are desktop-only or have poorly adapted mobile views. By the time an owner checks the numbers at night, it's too late to act on them. What they need isn't a shrunken-down dashboard. They need a mobile-native experience designed around quick glances, timely alerts, and fast actions.

The approach

React Native + Expo for cross-platform reach.

Most F&B owners in Singapore use a mix of iOS and Android. React Native with Expo delivers a native experience on both platforms from a single TypeScript codebase. Over-the-air updates allow fast iteration.

Shared Go backend — no separate mobile API.

The mobile app connects to the same Go backend that powers the web POS dashboard. The API already handles authentication, order data, inventory, and AI services. Adding mobile-specific endpoints is straightforward.

Push notifications as the primary UX.

Unlike the web dashboard where users actively look at data, the mobile app comes to the user. We deliver stock alerts, sales milestones, daily summaries, and AI insights proactively via push notifications.

AI briefings generated server-side on a schedule.

We pre-compute the morning briefing at 6am daily using the latest forecast data, stock levels, and historical comparisons. When the owner opens the app, the briefing loads instantly. No LLM latency.

Key features

Real-time sales feed

  • Live orders as they're placed via WebSocket
  • Running daily total always visible
  • Order details: items, total, channel (dine-in / takeaway / online)

Daily and weekly summary

  • Revenue, orders, average ticket, covers
  • Same-day-last-week comparison with percentage change
  • 7-day revenue sparkline
  • Top 5 and bottom 5 items

Push notifications

  • Stock alerts with forecast-based quantities
  • Sales milestones and anomaly detection
  • Evening daily summary
  • Configurable by category with quiet hours

AI Daily briefing

  • Generated every morning, ready when the owner wakes up
  • Day context, stock status, yesterday's recap, forecast
  • Actionable recommendations
  • Tap any section to drill into underlying data

AI Chat

  • Same natural-language Q&A as web, mobile-optimized
  • Streaming responses for fast perceived performance
  • Suggested questions based on time of day
  • Voice input for hands-free queries

Quick actions

  • Mark item sold out — syncs to POS and Shopify
  • Quick price updates across all channels
  • Approve AI-suggested promotions
  • Confirmation step on all actions

Tech stack

LayerTechnology
MobileReact Native, Expo
LanguageTypeScript
BackendGo (shared with F&B Command)
Real-timeWebSocket
Push notificationsExpo Notifications + FCM/APNs
AIGoogle Gemini
State managementTanStack Query
NavigationExpo Router

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

  • Every API call authenticated with short-lived JWTs
  • Tokens stored in native secure storage (iOS Keychain / Android Keystore)
  • Biometric authentication (Face ID / fingerprint) for sensitive actions
  • Certificate pinning prevents man-in-the-middle attacks

Data protection (PDPA-aligned)

  • On-device business data encrypted at rest using platform-native encryption
  • Push notifications contain minimal data — full details load only after in-app authentication
  • No customer personal data stored on device — aggregated metrics only

Mobile-specific security

  • We code-sign all OTA updates via Expo to prevent tampering
  • Deep links validated against an allowlist
  • Quick actions require explicit confirmation and server-side authorization
  • Session timeout with re-authentication after inactivity

What this demonstrates

Cross-platform mobile (iOS + Android)React Native / Expo expertiseReal-time data (WebSocket)Push notification architectureMobile-first AI UXBiometric auth and mobile securityBackend integrationProduction-ready patterns