This repository contains resources to learn Low Level Design (LLD) / Object Oriented Design (OOD) and prepare for interviews.
👉 For a better and more comprehensive experience, checkout the LLD page at AlgoMaster.io
- Basics OOP Concepts
- SOLID Principles with Pictures
- SOLID Principles with Code
- DRY Principle
- YAGNI Principle
- KISS Principle
- Coursera - Object-Oriented Design
Creational Patterns | Structural Patterns | Behavioral Patterns |
---|---|---|
Singleton | Adapter | Iterator |
Factory Method | Bridge | Observer |
Abstract Factory | Composite | Strategy |
Builder | Decorator | Command |
Prototype | Facade | State |
Flyweight | Template Method | |
Proxy | Visitor | |
Mediator | ||
Memento | ||
Chain of Responsibility |
- Design Parking Lot
- Design Stack Overflow
- Design a Vending Machine
- Design Logging Framework
- Design Traffic Signal Control System
- Design Coffee Vending Machine
- Design a Task Management System
- Design ATM
- Design LinkedIn
- Design LRU Cache
- Design Tic Tac Toe Game
- Design Pub Sub System
- Design an Elevator System
- Design Car Rental System
- Design an Online Auction System
- Design Hotel Management System
- Design a Digital Wallet Service
- Design Airline Management System
- Design a Library Management System
- Design a Social Network like Facebook
- Design Restaurant Management System
- Design a Concert Ticket Booking System
- Design CricInfo
- Design Splitwise
- Design Chess Game
- Design a Snake and Ladder game
- Design Ride-Sharing Service like Uber
- Design Course Registration System
- Design Movie Ticket Booking System
- Design Online Shopping System like Amazon
- Design Online Stock Brokerage System
- Design Music Streaming Service like Spotify
- Design Online Food Delivery Service like Swiggy
Contributions are welcome! If you'd like to add a new problem, improve existing content, or fix errors:
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature-name
- Commit your changes:
git commit -m 'Add some feature'
- Push to the branch:
git push origin feature/your-feature-name
- Submit a pull request
Please make sure to update Readme files and documentation as appropriate.
If you find this resource helpful, please give it a star and share it with others!