base on Learn Low Level Design (LLD) and prepare for interviews using free resources. <p align="center"> <img src="images/lld-repo-logo.png" width="350" height="200"> </p> <p align="center"> <a href="https://blog.algomaster.io/">Join Free Newsletter</a> </p> 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](https://algomaster.io/learn/lld) ## 🧱 OOP Fundamentals - [Classes and Objects](https://algomaster.io/learn/lld/classes-and-objects) - [Enums](https://algomaster.io/learn/lld/enums) - [Interfaces](https://algomaster.io/learn/lld/interfaces) - [Encapsulation](https://algomaster.io/learn/lld/encapsulation) - [Abstraction](https://algomaster.io/learn/lld/abstraction) - [Inheritance](https://algomaster.io/learn/lld/inheritance) - [Polymorphism](https://algomaster.io/learn/lld/polymorphism) ## šŸ”— Class Relationships - [Association](https://algomaster.io/learn/lld/association) - [Aggregation](https://algomaster.io/learn/lld/aggregation) - [Composition](https://algomaster.io/learn/lld/composition) - [Dependency](https://algomaster.io/learn/lld/dependency) ## 🧭 Design Principles - [DRY Principle](https://algomaster.io/learn/lld/dry) - [YAGNI Principle](https://algomaster.io/learn/lld/yagni) - [KISS Principle](https://algomaster.io/learn/lld/kiss) - [SOLID Principles with Pictures](https://medium.com/backticks-tildes/the-s-o-l-i-d-principles-in-pictures-b34ce2f1e898) - [SOLID Principles with Code](https://blog.algomaster.io/p/solid-principles-explained-with-code) ## 🧩 Design Patterns | **Creational Patterns** | **Structural Patterns** | **Behavioral Patterns** | | ----------------------------------------------------------------------------- | --------------------------------------------------------------- | ------------------------------------------------------------------------------------- | | [Singleton](https://algomaster.io/learn/lld/singleton) | [Adapter](https://algomaster.io/learn/lld/adapter) | [Iterator](https://algomaster.io/learn/lld/iterator) | | [Factory Method](https://algomaster.io/learn/lld/factory-method) | [Bridge](https://algomaster.io/learn/lld/bridge) | [Observer](https://algomaster.io/learn/lld/observer) | | [Abstract Factory](https://algomaster.io/learn/lld/abstract-factory) | [Composite](https://algomaster.io/learn/lld/composite) | [Strategy](https://algomaster.io/learn/lld/strategy) | | [Builder](https://algomaster.io/learn/lld/builder) | [Decorator](https://algomaster.io/learn/lld/decorator) | [Command](https://algomaster.io/learn/lld/command) | | [Prototype](https://algomaster.io/learn/lld/prototype) | [Facade](https://algomaster.io/learn/lld/facade) | [State](https://algomaster.io/learn/lld/state) | | | [Flyweight](https://algomaster.io/learn/lld/flyweight) | [Template Method](https://algomaster.io/learn/lld/template-method) | | | [Proxy](https://algomaster.io/learn/lld/proxy) | [Visitor](https://algomaster.io/learn/lld/visitor) | | | | [Mediator](https://algomaster.io/learn/lld/mediator) | | | | [Memento](https://algomaster.io/learn/lld/memento) | | | | [Chain of Responsibility](https://algomaster.io/learn/lld/chain-of-responsibility) | ## šŸ—‚ļø UML - [Class Diagram](https://blog.algomaster.io/p/uml-class-diagram-explained-with-examples) - [Use Case Diagram](https://blog.algomaster.io/p/119449cd-b003-46da-9e4d-0eb356d216d8) - [Sequence Diagram](https://blog.algomaster.io/p/4dd99bdc-5c35-4a80-bc53-1777cb57aa05) - [Activity Diagram](https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-activity-diagram/) - [State Machine Diagram](https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-state-machine-diagram/) ## āœ… [How to Answer a LLD Interview Problem](https://blog.algomaster.io/p/how-to-answer-a-lld-interview-problem) <img src="images/interview-template.png" width="350" height="250"> ## šŸ’» Low Level Design Interview Problems ### Easy Problems - [Design Parking Lot](problems/parking-lot.md) - [Design Stack Overflow](problems/stack-overflow.md) - [Design a Vending Machine](problems/vending-machine.md) - [Design Logging Framework](problems/logging-framework.md) - [Design Traffic Signal Control System](problems/traffic-signal.md) - [Design Coffee Vending Machine](problems/coffee-vending-machine.md) - [Design a Task Management System](problems/task-management-system.md) ### Medium Problems - [Design ATM](problems/atm.md) - [Design LinkedIn](problems/linkedin.md) - [Design LRU Cache](problems/lru-cache.md) - [Design Tic Tac Toe Game](problems/tic-tac-toe.md) - [Design Pub Sub System](problems/pub-sub-system.md) - [Design an Elevator System](problems/elevator-system.md) - [Design Car Rental System](problems/car-rental-system.md) - [Design an Online Auction System](problems/online-auction-system.md) - [Design Hotel Management System](problems/hotel-management-system.md) - [Design a Digital Wallet Service](problems/digital-wallet-service.md) - [Design Airline Management System](problems/airline-management-system.md) - [Design a Library Management System](problems/library-management-system.md) - [Design a Social Network like Facebook](problems/social-networking-service.md) - [Design Restaurant Management System](problems/restaurant-management-system.md) - [Design a Concert Ticket Booking System](problems/concert-ticket-booking-system.md) ### Hard Problems - [Design CricInfo](problems/cricinfo.md) - [Design Splitwise](problems/splitwise.md) - [Design Chess Game](problems/chess-game.md) - [Design a Snake and Ladder game](problems/snake-and-ladder.md) - [Design Ride-Sharing Service like Uber](problems/ride-sharing-service.md) - [Design Course Registration System](problems/course-registration-system.md) - [Design Movie Ticket Booking System](problems/movie-ticket-booking-system.md) - [Design Online Shopping System like Amazon](problems/online-shopping-service.md) - [Design Online Stock Brokerage System](problems/online-stock-brokerage-system.md) - [Design Music Streaming Service like Spotify](problems/music-streaming-service.md) - [Design Online Food Delivery Service like Swiggy](problems/food-delivery-service.md) ## šŸ“‡ Courses - [Master LLD Interviews - AlgoMaster.io](https://algomaster.io/learn/lld/what-is-lld) ## šŸ“š Books - [Head First Design Patterns](https://www.amazon.in/dp/9385889753) - [Clean Code](https://www.amazon.in/dp/B001GSTOAM) - [Refactoring: Improving the Design of Existing Code](https://www.amazon.in/dp/0134757599) ## šŸ“© Newsletter - [AlgoMaster Newsletter](https://blog.algomaster.io/) ## Additional resources - [Coursera - Object-Oriented Design](https://www.coursera.org/learn/object-oriented-design) - [Coursera - Design Patterns](https://www.coursera.org/learn/design-patterns) - [Github - Awesome Design Patterns](https://github.com/DovAmir/awesome-design-patterns) ## šŸ¤ Contributing Contributions are welcome! If you'd like to add a new problem, improve existing content, or fix errors: 1. Fork the repository 2. Create a feature branch: `git checkout -b feature/your-feature-name` 3. Commit your changes: `git commit -m 'Add some feature'` 4. Push to the branch: `git push origin feature/your-feature-name` 5. Submit a pull request Please make sure to update Readme files and documentation as appropriate. --- <p align="center"> <i>If you find this resource helpful, please give it a star and share it with others!</i> </p> ", Assign "at most 3 tags" to the expected json: {"id":"9355","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"