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

Complete & continue

Defend it out loud

The AI interviewer will probe your design for Food Delivery (Swiggy/Zomato) and score it.

Mock interview