Stravo
Bilingual restaurant ordering & delivery — loyalty ledger, delivery-zone geofencing, dual-build.

Overview
A dual-language restaurant ordering platform with a customer storefront and an admin dashboard. The system includes live order tracking, map-based delivery-zone detection, and a points-based loyalty mechanism. One codebase compiles into two independent, zero-overlap deployments.
Signature capabilities
Loyalty ledger
Append-only points ledger with server-authoritative redemption, per-customer locking to prevent double-spend, idempotent earning, and automatic refunds on cancellation.
Dual-build architecture
One environment flag tree-shakes the codebase into two zero-overlap bundles — the storefront ships no admin code and vice versa.
Delivery-zone geofencing
Customer coordinates resolve to the correct zone, fee and minimum order using distance math computed directly in the database.
Server-authoritative pricing
All prices are re-fetched server-side at order time; the client never controls totals.
Live order tracking
An auto-refreshing status timeline from pending through delivered, with a copyable order reference.
Bilingual & RTL
English and Arabic with dynamic direction switching and a persisted language preference.
Feature set
Customer storefront
- Menu browsing by category
- Debounced search (incl. Arabic)
- Product detail & recommendations
- Cart drawer
- Today's offers
- Delivery or pickup checkout
- Map-based delivery pin
- Delivery-zone detection
- Live order tracking
- Order history
Admin dashboard
- Orders management
- Menu & category CRUD
- Offers & promotions
- Delivery-zone editor
- Business settings (hours, tax, channels)
- Loyalty rewards manager & analytics
Loyalty & rewards
- Append-only points ledger
- Four reward types
- Configurable earn rate
- Auto refunds on cancellation
- Server-authoritative redemption
