LoongDingXuan — Trilingual Site & In-House Delivery Platform
Three languages, one kitchen, and a delivery fleet you can watch live.
Visit the live siteOverview
A trilingual restaurant website paired with a complete in-house delivery platform. Customers browse, order, and watch their driver move across a live map, while staff dispatch orders and track the fleet from a custom operations dashboard.
What this proves
That we build systems, not pages. One data model serving three roles — customer, dispatcher and driver — updating live, with no server of our own.
Key features
Live order tracking with driver GPS
A four-stage progress timeline with live status from a real-time database subscription, a driver card with tap-to-call, and the assigned driver’s GPS position moving on the map. This is the feature customers screenshot — and the reason to order direct rather than through an aggregator.
Three complete language editions
English, Arabic in true right-to-left, and Chinese — each a fully translated standalone document with its own typeface, not a runtime string swap. The Arabic edition mirrors navigation order, menu rows, accordion chevrons, underline origin and even the mobile drawer’s slide-in direction.
Map-pinned address with live pricing
Pin on an interactive map, use one-tap GPS, or type manually. A dropped pin reverse-geocodes to a street address, and a hand-implemented haversine distance drives both the delivery fee and the ETA, recalculating live as the pin moves. Egyptian addresses are notoriously hard to express as text — map pinning solves a real local problem.
Operations dashboard with one-click dispatch
An authenticated five-panel console: a live order queue split into "needs action" and "active", order status control, driver assignment from a dropdown, a live fleet map, self-service driver onboarding, and 30-day analytics with a seven-day volume chart and per-driver performance.
A dedicated mobile driver app
A separate authenticated app built for a phone in a motorcycle mount: assigned orders, tap-to-call, one-tap handoff to turn-by-turn navigation, picked-up and delivered buttons, a live earnings tab, and a single toggle for GPS broadcasting that removes the location record entirely when switched off.
Local payment methods and promo codes
Cash on delivery, card on delivery, InstaPay and Vodafone Cash — matching how customers in this market actually pay. Promo codes are looked up against the database and checked for an active flag before any discount applies, so the restaurant can run promotions without a developer.
The experience
As a diner you arrive at a full-screen hero and choose your language — with the entire page, including its typography and layout direction, adapting to that choice. You browse a tabbed signature menu, open FAQ answers, check opening hours, and either book a table or move into the ordering flow.
As a delivery customer you build a cart from a categorised catalog with live quantity controls and a running total pinned to the bottom of the screen. At checkout you pin your address on a map, tap to use GPS, or type it — and watch the delivery fee and arrival estimate recalculate from your actual distance. You land on a printable, shareable receipt, then follow your order through a four-stage timeline while your driver moves across the map in real time.
As the restaurant you sign into an operations dashboard showing today’s revenue, new orders demanding action, and every active delivery. You assign a driver from a dropdown and the order propagates instantly to that driver’s phone and to the customer’s tracking screen. You watch the whole fleet move on a live map, onboard new drivers from a form, and review thirty days of volume, revenue, average order value, cancellation rate and per-driver performance.
Design
Two deliberately distinct design languages coexist, which is itself a mark of maturity. The guest-facing site runs on deep jade green with warm antique gold as the sole accent and cream text — reading as lacquer, brass and candlelight rather than the red-and-gold cliché of most Chinese restaurant sites.
The staff-facing tools invert to a near-black operations UI with a soft accent and a semantic status palette — green for delivered, amber for in-transit, red for cancelled. It reads as a control room, not a restaurant, which is correct: the audience and the lighting conditions are different.
Arabic is handled as a layout problem rather than a translation problem. Font families are swapped at the custom-property level, so the Arabic face resolves through the same variables while every downstream rule stays identical — and a dedicated RTL rule block mirrors direction everywhere it matters, down to which side the mobile drawer slides in from.
Engineering
A driver’s phone must stream its position continuously, and that position must appear with low latency and no polling on both an internal fleet map and an arbitrary customer’s public tracking page — on a static site with no server. The driver app writes each high-accuracy fix to a real-time database node. The admin dashboard subscribes to the whole node and reconciles markers by driver id, moving an existing marker rather than destroying and recreating it so the map stays smooth. The customer page subscribes to a single driver only, and only once that driver is assigned, detaching the previous listener before attaching a new one.
Choosing a document store for durable orders while using the real-time database for the coordinate firehose is the correct split: the real-time store is the cheaper and lower-latency option for rapid position writes, and orders need queryable documents.
Customer, dispatcher and driver each need a different view of the same order, updating live, with no backend to broker between them. One orders collection is the shared source of truth, with each role attached through a differently scoped subscription — the driver app filters to orders assigned to them and still active, the customer to their single document, the admin to recent orders by creation time. A dispatch action writes one document update and it propagates to both other roles simultaneously.
The whole system — nine pages, a database-backed ordering platform, an admin dashboard, a driver app, four map integrations and a custom animation layer — ships with no build step, no bundler and no dependency tree. Every runtime library is a script tag. That means no build breakage, no dependency rot, and deployment by copying files to any static host.
The project also degrades gracefully before credentials are supplied: every page checks whether its configuration still holds placeholder values and falls back to a demo path, and every geospatial constant has an inline fallback, so no page throws if the config fails to load.
Responsive experience
Marketing pages break at 992px, where the location grid stacks and reorders so the map appears above the info panel, and at 768px for the drawer navigation and single-column forms. The catalog adds a 480px breakpoint where cards flip from horizontal to vertical. The admin dashboard breaks at three widths, swapping its sidebar for a scrolling tab bar. The driver app is mobile-first throughout, and the receipt page carries a dedicated print stylesheet.
Not demonstrated by this project
Stated plainly, because a portfolio is more useful when it is precise about its limits.
- No self-hosted backend — all server-side capability is a managed platform
- No server-side business logic; pricing, distance and analytics are computed client-side
- No online payment processing — payment is collected on delivery or by transfer
- The reservation and newsletter forms on the marketing site are presentation-only
- No 3D or WebGL anywhere in this project
Portfolio assessment
- Visual design
- 8.0 / 10
- Technical complexity
- 8.0 / 10
- Interactivity
- 8.0 / 10
- Business value
- 9.0 / 10
- Portfolio appeal
- 8.0 / 10


