Design an Elevator System

Easy
+150 XP
Low Level DesignLLDSystem DesignOOPState PatternObserver PatternStrategy

Design a smart elevator control system for a high-rise building with multiple elevator cars. The system should intelligently dispatch elevators to minimize wait times, handle both external (floor buttons with UP/DOWN direction) and internal (cabin buttons) requests, and support concurrent operations.

Key requirements:

  1. The system should have a central controller to manage all elevators in the building
  2. Each elevator should have distinct states (idle, moving up, moving down) with different behaviors in each state
  3. The system should support different algorithms for selecting which elevator to assign to a request (e.g., nearest elevator, least loaded), and these algorithms should be easily swappable
  4. Multiple displays and other components need to be notified when elevator states or positions change
  5. The system must handle concurrent requests from multiple users safely without race conditions or data corruption

🛗 Smart Elevator Dispatcher

Status: System Idle
E1
IDLE
E2
IDLE
E3
IDLE

Floor Controls

Floor 6
Floor 5
Floor 4
Floor 3
Floor 2
Floor 1

System Logs

What You'll Build

🎯
Step-by-Step Guidance
Follow our systematic 8-step approach to design the system from scratch. Learn how to identify actors, assign responsibilities, and create class diagrams.
📊
Interactive UML Builder
Build class diagrams visually with our drag-and-drop UML editor. Connect classes, define relationships, and see your design come to life.
💻
Multi-Language Support
Practice in Python, Java, C++, TypeScript, JavaScript, or C#. Get complete solutions and explanations in all supported languages.
🤖
AI-Powered Review
Get instant feedback on your design and code. Our AI reviews your implementation and suggests improvements based on best practices.
📚
Design Patterns
Learn how to apply design patterns like Low Level Design, LLD and more. Understand when and why to use each pattern.
Complete Solutions
Access detailed solutions with explanations, UML diagrams, and code implementations. Learn from industry best practices.
🐍 Python ☕ Java 📘 TypeScript 🟨 JavaScript ⚡ C++ 🟣 C#

Ready to Master This Problem?

Join thousands of developers practicing Low Level Design. Build your design step-by-step, get AI feedback, and learn from complete solutions.

🚀 Start Practicing Now