Food Delivery (Swiggy/Zomato)
Restaurants, carts, orders, and delivery-agent assignment with live status updates.
Hard50 minOrder lifecycleAgent assignmentObserver
Design a food delivery platform like Swiggy or Zomato: customers browse restaurants, build a cart, place orders, restaurants accept and prepare them, and delivery agents pick up and deliver. It's a three-sided marketplace, so the design has to coordinate three actors around one order lifecycle.
Requirements
Functional
- Customers search restaurants by location, cuisine, rating; view menus with item availability.
- Cart holds items from one restaurant at a time; apply coupons; see bill (items, taxes, delivery fee, packaging).
- Place order and pay (online or cash on delivery).
- Restaurant accepts or rejects; marks food preparing and ready.
- System assigns a nearby delivery agent; agent picks up and delivers.
- Live order tracking with status updates and agent location.
- Cancel before the restaurant starts preparing (full refund); later cancellations follow policy.
- Ratings for restaurant and agent.
Non-functional
- An agent carries at most N orders at a time (often 1, or batched 2 from the same restaurant).
- Status updates reach the customer within seconds.
- Assignment and pricing logic swappable per city.
- Idempotent order placement and payment callbacks.
Try it first
Set a timer, sketch your own design on paper, then compare it with the reference walkthrough.
50:00
Defend it out loud
The AI interviewer will probe your design for Food Delivery (Swiggy/Zomato) and score it.