Object-oriented design interview questionMedium

Design an Airline Management System

Design an airline domain model covering airports, aircraft seat layouts, scheduled flights versus dated flight instances, passengers, reservations and tickets, seat assignment, and flight status transitions.

1. Problem Statement

Design an airline management system: the airline schedules flights between airports, operates dated flight instances on specific aircraft, and lets passengers book reservations with assigned seats, possibly across multiple legs. Flights move through statuses like scheduled, boarding, departed, and arrived. Start by clarifying scope and the core objects.

2. Live Coding Format

Work in the provided coding workspace while explaining your decisions to the live interviewer. Validation may use inline tests, examples, comments, or a verbal walkthrough.

3. Key Focus Areas

  • 1
    Flight (schedule) vs. FlightInstance (dated operation)
  • 2
    Aircraft seat layout and seat compatibility
  • 3
    Seat assignment uniqueness and release
  • 4
    Flight status transitions and multi-leg itinerary connections

4. What Strong Candidates Should Demonstrate

  • Separate a scheduled Flight template from a dated FlightInstance that owns seats and status.
  • Model aircraft seat layouts and enforce seat existence and cabin compatibility.
  • Enforce one-passenger-per-seat and legal flight-status transitions.
  • Model multi-leg itineraries whose legs must connect.

Want interactive feedback?

Practice this problem in the live coding workspace while the interviewer probes your clarification, implementation, trade-offs, and validation.

Continue to Dashboard

Core Concepts

Hidden because they name the technique, which a real interviewer would not tell you.

Show core concepts
Object-Oriented DesignDomain ModelingState MachineScheduling

Continue preparing

Build a complete software engineer mock interview plan

Related Object-Oriented Design

Implement an In-Memory Rate Limiter

Design and implement an in-memory rate limiter as an object-oriented module, validate it with concrete test cases, and discuss concurrency considerations.

Related Object-Oriented Design

Design an ATM Transaction Engine

Design an ATM that authenticates a card and PIN, and supports balance inquiry, cash withdrawal with denomination dispensing, and deposits, including session/state handling and hardware abstractions.

Related Object-Oriented Design

Design Blackjack and a Deck of Cards

Design a reusable deck of cards and a single-round Blackjack game: cards, suits and ranks, deck shuffle/deal, hand scoring with flexible ace values, player and dealer turns, and terminal outcomes (blackjack, bust, win/lose/push).

Related Object-Oriented Design

Design a Power Plant Electricity Allocator

Design a class-level system modeling a power plant that distributes electricity to multiple neighbourhoods, each with a stated demand, subject to the plant's total capacity.