Course Content
Data Structures & Algorithms
Full Stack Web Development
Understanding and playing with DOM (Document Object Model)
0/2
MERN project
0/2
Low Level System Design
LLD Topics
High Level System Design
Fast-Track to Full Spectrum Software Engineering

1. Functional Requirements 

 

1.1 Customer Order Flow

 

  • A customer can place an order containing one or more pizzas.
  • Each pizza can have a specific size (Small, Medium, Large), crust type (Thin, Cheese Burst, etc.), and multiple toppings.
  • Orders can include beverages and sides.
  • Each order must have a unique ID, timestamp, and total cost.
  • Orders move through statuses: NEW → PREPARING → BAKED → PACKED → DELIVERED.

 

1.2 Menu Management

 

  • Maintain a catalog of items (Pizza, Sides, Drinks).
  • Menu items have price, category, and availability status.
  • Enable dynamic updates to the menu (add, remove, update items).

 

1.3 Pizza Customization

 

  • Enable customers to build custom pizzas.
  • Each topping/crust/size has a configurable price.
  • A Pizza is composed of base + crust + toppings + optional extras.

 

1.4 Kitchen Management

 

  • Display orders in a queue to the kitchen staff.
  • Track preparation time per order.
  • Update order status as it moves through the kitchen.

 

1.5 Inventory Management

 

  • Maintain quantity for ingredients (cheese, dough, sauce, toppings, etc.).
  • Reduce inventory as pizzas are prepared.
  • Trigger alerts for low-stock items.
  • Restocking should update inventory records.

 

1.6 Delivery Management

 

  • Assign delivery agents to orders once packed.
  • Track delivery status and update order when completed.
  • Calculate estimated delivery time and route optimization (basic simulation in LLD).

 

1.7 Billing & Payment

 

  • Calculate subtotal, taxes, discounts, and total.
  • Support multiple payment methods (Cash, Card, UPI).
  • Generate printable/digital receipt.

 

1.8 User Management

 

  • Roles: Customer, Chef, DeliveryAgent, Manager.
  • Role-based access: e.g., only chefs can update preparation status, only managers can restock inventory.
  • User registration and authentication system.

 

1.9 Notifications (Optional/Bonus)

 

  • Notify kitchen when a new order arrives.
  • Notify customer when order is out for delivery.

——————————————————————

 

2. Non-Functional Requirements 

 

  • Modular design (SOLID principles)
  • Use design patterns where appropriate (e.g., Factory for Pizza, Strategy for Payment)
  • Maintainability: Clear separation of concerns between modules
  • Scalability: Support for multiple kitchens or branches (extendible class structure)
  • Testability: Mock interfaces for components like inventory or payment
0% Complete
WhatsApp Icon

Hi Instagram Fam!
Get a FREE Cheat Sheet on System Design.

Hi LinkedIn Fam!
Get a FREE Cheat Sheet on System Design

Loved Our YouTube Videos? Get a FREE Cheat Sheet on System Design.