SkillAgentSearch skills...

LowLevelDesign

This repository provides comprehensive coverage of all major object-oriented design patterns with practical, real-world Java examples. In addition, it features detailed low-level design implementations of popular real-life systems, including ATM machines, Vending Machines, Splitwise, Cricbuzz, BookMyShow, Uber, Swiggy, and more.

Install / Use

/learn @AvinashDogiparthi/LowLevelDesign

README

Low Level Designs & Design Patterns

Java Build License

Welcome to the Low Level Designs and Design Patterns repository!

This repository serves as a comprehensive reference for developers mastering Low-Level Design (LLD). It contains production-ready implementations of Object-Oriented Design (OOD) principles, design patterns, and full-scale system design solutions using Java.


Table of Contents

  1. Core Concepts
  2. Design Patterns
  3. System Design Solutions (LLD)
  4. How to Run
  5. Contributing

🧠 Core Concepts

Understanding the foundational principles of software architecture.

| Module | Description | | :--- | :--- | | A_SOLIDPrinciples | Implementation of S.O.L.I.D principles (Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion). |


Design Patterns

Comprehensive implementations of Creational, Structural, and Behavioral patterns.

| Code | Pattern Name | Description | | :--- | :--- | :--- | | AA | Singleton | Thread-safe, Lazy, Eager, and Enum implementations. | | A | Strategy | Interchangeable algorithms (e.g., Parking Spot allocation). | | B | Observer | Publish-Subscribe mechanism (e.g., Availability notifications). | | C | Factory | Interface-based object creation logic. | | D | Abstract Factory | Creating families of related or dependent objects. | | E | Chain of Responsibility | Passing requests along a chain of handlers. | | F | Proxy | Controlling access to an object (Lazy loading, Protection). | | G | Null Object | Handling null references gracefully with default behavior. | | H | State | Altering object behavior when its internal state changes. | | I | Composite | Tree structures of objects (Part-Whole hierarchy). | | J | Adapter | Bridging incompatible interfaces to work together. | | K | Builder | Step-by-step construction of complex objects. | | L | Facade | Simplified interface to a complex subsystem. | | M | Bridge | Decoupling abstraction from its implementation. | | N | Flyweight | Efficient sharing of objects to reduce memory load. |


Low Level Designs (LLD)

Real-world low-level design problems often asked in technical interviews.

| Code | System / Problem | Key Concepts / Description | | :--- | :--- | :--- | | C | Parking Lot | Multi-floor parking management, Ticket generation, Spot allocation. | | CA | Producer Consumer | Multi-threading, Blocking Queues, Concurrency control. | | D | Tic Tac Toe | Game loop, Board management, Player strategies. | | E | Car Rental System | Inventory management, Booking reservations, Store locations. | | F | Snake & Ladder | Game entities (Board, Dice, Player), Movement logic. | | G | BookMyShow | Movie ticketing, Theater seating, Concurrency handling for booking. | | H | Vending Machine | State Pattern implementation (Idle, Selection, Dispense). | | I | ATM Design | State Pattern, Transaction handling, Cash dispensing chain. | | J | File System | Composite Pattern, Command Pattern for file operations. | | K | Calculator | Basic arithmetic operations and expression evaluation. | | -- | Logger | Chain of Responsibility, Log levels, Appenders. | | M | Uber/Ride Sharing | Driver matching strategies, Trip management, Pricing. | | N | Zepto/Quick Commerce | Inventory, Order management, Delivery assignment strategies. | | O | CultFit/Gym | Workout scheduling, Slot booking, Center management. | | P | Twitter/Social | User graph, News feed generation, Posting, Following. | | Q | Swiggy/Food Delivery | Restaurant menu, Order processing, Coupons & Discounts. | | R | Issue Resolver | Ticketing system, Agent assignment, Strategy pattern. | | S | Text Editor | Flyweight pattern for characters, Formatting, Undo/Redo stack. | | T | Meeting Scheduler | Calendar slot availability, Invite management (Microsoft Teams style). | | U | Flight Booking | Airline inventory, Seat selection, Booking status, Search. | | V | Hotel Management | Room booking, Guest management, Service allocation. |


🚀 How to Run

Follow these steps to get the project up and running on your local machine.

1. Prerequisites

Ensure you have the following installed:

  • Java JDK: Version 17+ (Verify with java -version)
  • IDE: IntelliJ IDEA (Recommended), Eclipse, or VS Code.

2. Setup

# Clone the repository
git clone [https://github.com/AvinashDogiparthi/LowLevelDesign.git](https://github.com/AvinashDogiparthi/LowLevelDesign.git)

# Navigate to project directory
cd LowLevelDesign

🤝 Contributing

Contributions are welcome! Whether it's fixing a bug, improving documentation, or adding a new design pattern implementation, your help is appreciated.

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/AmazingFeature).
  3. Commit your changes (git commit -m 'Add some AmazingFeature').
  4. Push to the branch (git push origin feature/AmazingFeature).
  5. Open a Pull Request.

Please feel free to open Issues for improvements or suggestions.


❤️ Support

If you find this repository helpful or use it for your learning, please give it a Star ⭐! Your support encourages the creation of more comprehensive guides and design implementations.


📧 Contact

For any queries, feedback, or discussions regarding Low Level Design:

  • Email: dnvavinash@gmail.com
  • LinkedIN: click here

Feel free to reach out via GitHub for any collaborations!

Related Skills

View on GitHub
GitHub Stars20
CategoryDesign
Updated1mo ago
Forks10

Languages

Java

Security Score

80/100

Audited on Feb 19, 2026

No findings