PracHub
QuestionsPremiumLearningGuidesCheatsheetNEWCareers
|Home/Software Engineering Fundamentals/Amazon

Design an OOD restaurant management system

Last updated: Mar 29, 2026

Quick Overview

This question evaluates object-oriented design skills including domain modeling, class relationships (composition/aggregation), state management, separation of concerns, and extensibility for billing, ordering, and kitchen workflows.

  • medium
  • Amazon
  • Software Engineering Fundamentals
  • Software Engineer

Design an OOD restaurant management system

Company: Amazon

Role: Software Engineer

Category: Software Engineering Fundamentals

Difficulty: medium

Interview Round: Onsite

## Object-oriented design: Restaurant management system Design an object-oriented system for a dine-in restaurant that supports the following: ### Functional requirements - The restaurant has **tables** with capacity; parties can be **seated** at a table. - A party can create **one or more orders**; an order contains multiple **order items** (menu item + quantity + special instructions). - The kitchen tracks order item **states** (e.g., `PLACED`, `IN_PREP`, `READY`, `SERVED`, `CANCELLED`). - The restaurant generates a **bill** for a table/party and supports **splitting the bill** (by item or by amount). - Payment can be made via multiple methods (cash/card); a bill can have multiple payments. ### Non-functional / design goals - Clean separation of concerns (table management, ordering, kitchen workflow, billing/payments). - Extensible to add features later (takeout/delivery, discounts, loyalty). ### What to provide - Key classes, fields, and methods (UML-style text is fine). - Important relationships (composition/aggregation) and patterns if appropriate. - Brief explanation of how typical flows work (seat → order → prepare → serve → bill → pay).

Quick Answer: This question evaluates object-oriented design skills including domain modeling, class relationships (composition/aggregation), state management, separation of concerns, and extensibility for billing, ordering, and kitchen workflows.

Related Interview Questions

  • Fix the Password Reset Workflow - Amazon (medium)
  • Choose lock granularity for concurrent storage - Amazon (hard)
  • Explain inheritance, polymorphism, constructors, destructors - Amazon (easy)
  • Build a responsive grid of fixed boxes - Amazon (medium)
  • Explain Aurora-style internals: WAL, MVCC, replication, recovery - Amazon (hard)
Amazon logo
Amazon
Sep 5, 2025, 12:00 AM
Software Engineer
Onsite
Software Engineering Fundamentals
3
0

Object-oriented design: Restaurant management system

Design an object-oriented system for a dine-in restaurant that supports the following:

Functional requirements

  • The restaurant has tables with capacity; parties can be seated at a table.
  • A party can create one or more orders ; an order contains multiple order items (menu item + quantity + special instructions).
  • The kitchen tracks order item states (e.g., PLACED , IN_PREP , READY , SERVED , CANCELLED ).
  • The restaurant generates a bill for a table/party and supports splitting the bill (by item or by amount).
  • Payment can be made via multiple methods (cash/card); a bill can have multiple payments.

Non-functional / design goals

  • Clean separation of concerns (table management, ordering, kitchen workflow, billing/payments).
  • Extensible to add features later (takeout/delivery, discounts, loyalty).

What to provide

  • Key classes, fields, and methods (UML-style text is fine).
  • Important relationships (composition/aggregation) and patterns if appropriate.
  • Brief explanation of how typical flows work (seat → order → prepare → serve → bill → pay).

Solution

Show

Comments (0)

Sign in to leave a comment

Loading comments...

Browse More Questions

More Software Engineering Fundamentals•More Amazon•More Software Engineer•Amazon Software Engineer•Amazon Software Engineering Fundamentals•Software Engineer Software Engineering Fundamentals
PracHub

Master your tech interviews with 7,500+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • Careers
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.