Mobikon's clients wanted a way for their customers to order food online — both on the web and through native mobile applications. Rather than building custom apps for each restaurant, we built a white-label platform: a single AngularJS codebase that could be easily themed and deployed to any restaurant brand.
The platform shipped as both a responsive web application and hybrid iOS/Android apps via Apache Cordova. Each brand received its own uniquely styled storefront with custom colors, menus, payment methods, and feature flags — all driven by JSON configuration files. The shared codebase powered 10+ restaurant brands across Singapore, India and the United Kingdom.
A replica of the white-label ordering storefront. Switch between restaurant brand themes to see the same UI re-skinned with different color palettes. Browse the menu, add items to your cart, and complete a simulated checkout for your order.
A single platform powers 10+ restaurant brands, each with its own look and feel. New restaurants are onboarded rapidly through a configuration file — defining brand colors, menus, currency, operating hours, and available features — without any code changes.
Customers browse categorized menus, customize items with add-ons, and build their cart with real-time price updates. The app supports dine-in, takeaway, and delivery — with offline browsing for previously viewed outlets.
At checkout, customers can pay via PayPal, cash on delivery, or redeem loyalty points — with delivery charge waivers and discount codes applied automatically.
After each order, customers earn loyalty points and can share feedback via in-app surveys. Push notifications and proximity-triggered offers (via iBeacon) keep diners engaged with personalized promotions.
A 700+ line order model handles complex pricing entirely client-side: item-level tax calculations (pre-tax and post-tax), tiered delivery charge waivers, percentage and absolute discounts, loyalty point deductions, and configurable cent-rounding — all updated instantly as the cart changes.
True white-label multi-tenancy through configuration-driven theming (brandColor1/brandColor2), per-brand feature flags (loyalty, feedback, beacons), and environment-specific deployment pipelines — each brand receiving a uniquely styled native app from a single shared repository.
The Breeze.js OData client fetches menu hierarchies (Property → Outlet → Menu → Category → Item) with three-tier caching: Breeze entity cache for in-session speed, LocalStorage for persistence, and IndexedDB for full offline browsing of previously viewed outlets.
Apache Cordova compiles the web app to iOS and Android with custom plugins for iBeacon proximity detection (triggering outlet-specific offers), push notifications (GCM/APNS), native date pickers, and geolocation for delivery address suggestions.