https://github.com/skp3214/system-design
A repository to learn system design
https://github.com/skp3214/system-design
hld lld projects system-design
Last synced: 3 months ago
JSON representation
A repository to learn system design
- Host: GitHub
- URL: https://github.com/skp3214/system-design
- Owner: skp3214
- Created: 2025-05-19T14:46:18.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-07-15T14:29:40.000Z (3 months ago)
- Last Synced: 2025-07-16T07:53:30.149Z (3 months ago)
- Topics: hld, lld, projects, system-design
- Language: Java
- Homepage:
- Size: 32.7 MB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# System Design
## Overview of System Design
System Design is a critical discipline in software engineering that focuses on architecting robust, scalable, and efficient systems to meet real-world requirements. It bridges the gap between high-level concepts and low-level implementations, ensuring that software solutions are both functional and maintainable. This course is divided into **Low-Level Design (LLD)** and **High-Level Design (HLD)** to provide a comprehensive understanding of the process.
### Key Objectives
- **LLD**: Focuses on the detailed design of individual components, including object-oriented principles, design patterns, and project implementations.
- **HLD**: Emphasizes the overall system architecture, including scalability, load balancing, data distribution, and integration strategies (to be added later).
- **Holistic Approach**: Combines theoretical foundations with practical projects to prepare learners for end-to-end system development.### Notes Structure
### Low Level Design (LLD)
| **Lecture** | **Topic** | **Description** | **Link/Resource** |
|-------------------------|-------------------------------------------------------|--------------------------------------------------------------------------------|-----------------------------------------------|
| [Lecture 1](/system-design/1/1.md) | Introduction to System Design | Introduction to system design principles. | [Link](/system-design/1/1.md) |
| [Lecture 2](/system-design/2/2.md) | Oops - Real World Examples | Practical OOP concepts with examples. | [Link](/system-design/2/2.md) |
| [Lecture 3](/system-design/3/3.md) | Inheritance and Polymorphism | Deep dive into inheritance and polymorphism. | [Link](/system-design/3/3.md) |
| [Lecture 4](/system-design/4/4.md) | Class and Sequence Diagram in UML Diagrams | Learn UML for design visualization. | [Link](/system-design/4/4.md) |
| [Lecture 5](/system-design/5/5.md) | SOLID Design Principles - Part 1 | First half of SOLID principles. | [Link](/system-design/5/5.md) |
| [Lecture 6](/system-design/6/6.md) | SOLID Design Principles - Part 2 | Completion of SOLID principles. | [Link](/system-design/6/6.md) |
| [Lecture 7](/system-design/7/7.md) | Document Editor LLD - Project 1 | Design a text editor system. | [Link](/system-design/7/7.md) |
| [Lecture 8](/system-design/8/8.md) | Design Pattern in LLD - Strategy Design Pattern | Encapsulate algorithms for flexibility. | [Link](/system-design/8/8.md) |
| [Lecture 9](/system-design/9/9.md) | Design Pattern in LLD - Factory Design Pattern | Simplify object creation. | [Link](/system-design/9/9.md) |
| [Lecture 10](/system-design/10/10.md) | Design Pattern in LLD - Singleton Design Pattern | Ensure a single instance. | [Link](/system-design/10/10.md) |
| [Lecture 11](https://github.com/skp3214/ZomatoLite-FoodApp-LLD-Project.git) | Build Zomato Food Delivery App - Project 2 | Create a food delivery app. | [GitHub](https://github.com/skp3214/ZomatoLite-FoodApp-LLD-Project.git) |
| [Lecture 12](/system-design/12/12.md) | Design Pattern in LLD - Observer Design Pattern | Build event-driven systems. | [Link](/system-design/12/12.md) |
| [Lecture 13](/system-design/13/13.md) | Design Pattern in LLD - Decorator Design Pattern | Add responsibilities dynamically. | [Link](/system-design/13/13.md) |
| [Lecture 14](/system-design/14/14.md) | LLD of Notification System | Design a notification framework. | [Link](/system-design/14/14.md) |
| [Lecture 15](/system-design/15/15.md) | Design Pattern in LLD - Command Design Pattern | Enable undo/redo functionality. | [Link](/system-design/15/15.md) |
| [Lecture 16](/system-design/16/16.md) | Design Pattern in LLD - Adapter Design Pattern | Bridge incompatible interfaces. | [Link](/system-design/16/16.md) |
| [Lecture 17](/system-design/17/17.md) | Design Pattern in LLD - Facade Design Pattern | Simplify complex subsystems. | [Link](/system-design/17/17.md) |
| [Lecture 18](https://github.com/skp3214/SpotifyLite-MusicApp-LLD-Project.git) | Music Player App LLD - Project 2 | Develop a music player. | [GitHub](https://github.com/skp3214/SpotifyLite-MusicApp-LLD-Project.git) |
| [Lecture 19](/system-design/19/19.md) | Design Pattern in LLD - Composite Design Pattern | Uniform treatment of objects. | [Link](/system-design/19/19.md) |
| [Lecture 20](/system-design/20/20.md) | Design Pattern in LLD - Template Method Design Pattern | Define algorithm skeletons. | [Link](/system-design/20/20.md) |
| [Lecture 21](/system-design/21/21.md) | Design Pattern in LLD - Proxy Design Pattern | Control object access. | [Link](/system-design/21/21.md) |
| [Lecture 22](/system-design/22/22.md) | Design Pattern in LLD - Chain of Responsibility Design Pattern | Chain request handlers. | [Link](/system-design/22/22.md) |
| [Lecture 23](/system-design/23/23.md) | Payment Gateway LLD | Design a secure payment system. | [Link](/system-design/23/23.md) |
| [Lecture 24](/system-design/24/24.md) | Discount Coupon Engine LLD | Build a coupon management system. | [Link](/system-design/24/24.md) |
| [Lecture 25](/system-design/25/25.md) | Design Pattern in LLD - Bridge Design Pattern | Decouple abstraction and implementation. | [Link](/system-design/25/25.md) |
| [Lecture 26](https://github.com/skp3214/ZeptoLite-InventoryManagement-LLD-Project.git) | Zepto Clone - Inventory Management LLD - Project 3 | Model an inventory system. | [GitHub](https://github.com/skp3214/ZeptoLite-InventoryManagement-LLD-Project.git) |
| [Lecture 27](https://github.com/skp3214/TinderLite-DatingApp-LLD-Project.git) | Tinder Clone - Dating App LLD - Project 4 | Design a dating app matching system. | [GitHub](https://github.com/skp3214/TinderLite-DatingApp-LLD-Project.git) |
| [Lecture 28](/system-design/28/28.md) | Design Pattern in LLD - Builder Design Pattern | Construct complex objects step-by-step. | [Link](/system-design/28/28.md) |
| [Lecture 29](/system-design/29/29.md) | Design Pattern in LLD - Iterator Design Pattern | Traverse collections efficiently. | [Link](/system-design/29/29.md) |
| [Lecture 30](/system-design/30/30.md) | Design Pattern in LLD - Flyweight Design Pattern | Optimize with shared objects. | [Link](/system-design/30/30.md) |
| [Lecture 31](https://github.com/skp3214/SplitWiseClone-ExpenseSplittingApp-LLD-Project) | SplitWise Clone - Expense Splitting App - LLD - Project 5 | Implement an expense-sharing app. | [GitHub](https://github.com/skp3214/SplitWiseClone-ExpenseSplittingApp-LLD-Project) |
| [Lecture 32](/system-design/32/32.md) | Design Pattern in LLD - State Design Pattern | Alter behavior by state. | [Link](/system-design/32/32.md) |
| [Lecture 33](https://github.com/skp3214/TicTacToe-LLD-Project.git) | Tic Tac Toe Game LLD - Project 6 | Build a two-player game. | [GitHub](https://github.com/skp3214/TicTacToe-LLD-Project.git) |
| [Lecture 34](https://github.com/skp3214/SnakeAndLadder-LLD-Project.git) | Snake and Ladder Game LLD - Project 7 | Design a board game. | [GitHub](https://github.com/skp3214/SnakeAndLadder-LLD-Project.git) |
| [Lecture 35](/system-design/35/35.md) | Design Pattern in LLD - Mediator Design Pattern | Centralize object communication. | [Link](/system-design/35/35.md) |
| [Lecture 36](/system-design/36/36.md) | Design Pattern in LLD - Prototype Design Pattern | Clone objects efficiently. | [Link](/system-design/36/36.md) |
| [Lecture 37](https://github.com/skp3214/ChessGame-LLD-Project.git) | Chess Game - LLD - Project 8 | Create a chess game system. | [GitHub](https://github.com/skp3214/ChessGame-LLD-Project.git) |
| [Lecture 38](/system-design/38/38.md) | Design Pattern in LLD - Visitor Design Pattern | Add operations to object hierarchies. | [Link](/system-design/38/38.md) |
| [Lecture 39](/system-design/39/39.md) | Design Pattern in LLD - Memento Design Pattern | Save and restore states. | [Link](/system-design/39/39.md) |
| [Lecture 40](/system-design/40/40.md) | Wrapping Up with LLD: Null Object Pattern and Anti-Patterns | Learn safe defaults and avoid pitfalls. | [Link](/system-design/40/40.md) |---
### High Level Design (HLD)
### [Later On]()
----
### Learning Outcomes
- **LLD Mastery**: Gain expertise in OOPs, UML, 22+ design patterns, and 8 hands-on projects.- **Best Practices**: Apply SOLID principles and avoid anti-patterns.
---
`Note:` These notes have been thoughtfully crafted with the assistance of Grok, utilizing code from [Aditya's LLD Lecture Code](https://github.com/adityatandon15/LLD.git). Should you identify any inaccuracies in definitions or code, we warmly invite you to submit a pull request with corrections. Please explore and learn from this repository at your own discretion, embracing the opportunity to contribute and grow!