Design Elevator Management System - Single Lift
State PatternQueue ManagementPriority Queue
Design an elevator management system for a single elevator car in a building. The system should efficiently handle internal requests (from inside the elevator) and external requests (from floor buttons), manage direction-based request prioritization, handle state transitions (IDLE, MOVING_UP, MOVING_DOWN, STOPPED), and coordinate door operations. Focus on request queue management and direction optimization without the complexity of coordinating multiple elevators.
What You'll Build
- The system must manage a single elevator car that can access all floors in the building.
- Users should be able to request an elevator by pressing up or down buttons on any floor (external requests).
- Users inside the elevator should be able to select their destination floor (internal requests).
- The system should maintain a queue of pending requests and process them efficiently based on current direction and floor position.
- When the elevator is moving UP, it should prioritize requests above the current floor going UP, and internal requests to floors above.
- ...and more
🎯
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 State Pattern, Queue Management 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