solidcodersolidcoder
Explore Courses
solidcodersolidcoder

Practical courses for software engineering interviews — no gatekeeping, no fluff.

Company-wise Questions

  • Flipkart Machine Coding Questions
  • Swiggy Machine Coding Questions
  • Meesho Machine Coding Questions

Machine Coding Tutorial

  • Machine Coding Tutorial

Explore

  • Courses
  • About
  • Privacy Policy
  • Terms

© 2026 solidcoder · Practical courses for software engineering interviews.

Built for the AI era — learn by doing.

Home/Machine Coding/Flipkart Machine Coding Questions/Restaurant Management System
Chapters — Flipkart Machine Coding Questions▾

Restaurant Management System

Machine Coding·SDE-3+·5 min read·Sep 11, 2026

Design a restaurant system — table setup, menu management, filtered browsing, billing with payment surcharges, and a kitchen order workflow — Zomato / Swiggy style.

Asked inFlipkartZomatoSwiggy

Design a system for managing a restaurant, covering table setup, menu management, customer ordering with filters, and billing across multiple payment methods.

What the round tests

This one tests whether you can model a multi-actor workflow cleanly — admin, customer, and (in the bonus) kitchen staff all acting on shared state like tables, menu items, and orders — while keeping billing logic (taxes, payment surcharges) decoupled from the ordering flow itself.

Objective

The primary objective of this project is to design and implement a restaurant management system where admins configure tables and the menu, customers browse and place orders with filtering support, and the system calculates an accurate bill — including taxes and payment-method surcharges — across cash, card, and online payment.

Functional Requirements

Two tiers of scope

Requirements are split into two tiers so you know what to prioritize under time pressure: build first, and build if time allows.

Part 1 — Basic Requirements

Core functionality you must build and get working first.

1. Table Management

The restaurant admin can define and manage the number of tables in the restaurant.

2. Menu Management

Menu item attributes
Attribute
Detail
Name
The dish's name.
Price
The dish's price.
Veg / non-veg
Dietary classification of the item.
Category
Starter, main course, or dessert.

The admin can add, update, or remove items from the menu at any time.

3. Customer Ordering & Filtering

Ordering rules
Rule
Detail
Browsing
Customers can browse the full menu.
Filtering
Customers can filter the menu by veg/non-veg and by category.
Building an order
Customers add items to their order, specifying a quantity for each.
Placing the order
Once items are selected, the customer places the order.

4. Billing & Payment

Billing rules
Rule
Detail
Bill calculation
The total bill for each order includes taxes and any additional charges, on top of the item subtotal.
Payment options
Customers can pay via cash, credit/debit card, or online payment.
Card surcharge
Card payments (credit/debit) incur an additional charge on top of the base bill.

Part 2 — Bonus Features

Bonus — score higher if time allows

Extensibility checks — can your design support a kitchen-facing workflow and evolving orders without a rewrite of the core ordering and billing logic.

Bonus features
Feature
What to build
Kitchen workflow
Kitchen staff can view incoming orders, mark them as prepared, and notify wait-staff once an order is ready for serving.
Multiple orders per table
Allow additional items to be added to a table even after an initial order has already been placed for that table.

Example Usage: Full Walkthrough

The source problem doesn't specify an exact command syntax, so here's one reasonable walkthrough exercising setup, filtered browsing, ordering, and billing.

1. Admin sets up tables and the menu

> setTableCount(10)
✅ Restaurant configured with 10 tables.

> addMenuItem("Paneer Tikka", price: 250, veg: true, category: "starter")
> addMenuItem("Chicken Biryani", price: 400, veg: false, category: "main course")
> addMenuItem("Gulab Jamun", price: 120, veg: true, category: "dessert")
✅ 3 menu items added.

2. Customer filters the menu

> browseMenu(filter: { veg: true })
🍽 Veg items:
 - Paneer Tikka   ₹250  starter
 - Gulab Jamun    ₹120  dessert

3. Customer places an order at a table

> placeOrder(tableId: 4, items: [
    { item: "Paneer Tikka", qty: 2 },
    { item: "Gulab Jamun", qty: 1 },
  ])
✅ Order #501 placed for table 4. Subtotal: ₹620.

4. More items are added to the same table before it's billed (bonus)

> addItemsToTable(tableId: 4, items: [
    { item: "Chicken Biryani", qty: 1 },
  ])
✅ Order #502 added to table 4. Combined subtotal: ₹1020.

5. Kitchen marks the order as ready (bonus)

> kitchenMarkPrepared(orderId: 501)
✅ Order #501 marked as prepared. Wait-staff notified.

6. Bill is calculated and paid

> generateBill(tableId: 4)
🧾 Table 4 bill:
   Subtotal: ₹1020.00
   Tax (5%): ₹51.00
   Total: ₹1071.00

> payBill(tableId: 4, method: "card")
💳 Card surcharge (2%): ₹21.42
✅ Final amount charged: ₹1092.42. Table 4 closed.
Result

Table 4 accumulates two separate orders before billing, the kitchen workflow marks the first order ready independently of billing, and the final bill correctly layers tax on the combined subtotal, then a card surcharge on top of that — showing all four core areas (tables, menu, ordering, billing) working together.

Up next2/2
Part 3 · SDE-3+
←
← Prev Chapter
Quick Commerce System
5 min
Next Chapter →
Parking Lot
5 min · continue reading
→

Enroll in machine coding mastery series

₹30,000₹3,00090% OFF
Enroll Now →

Use code SOLID50 · 3 years · 40+ lessons

On this page
  • Objective
  • Functional Requirements
    • Part 1 — Basic Requirements
    • Part 2 — Bonus Features
  • Example Usage: Full Walkthrough