{"id":29601829,"url":"https://github.com/skp3214/system-design","last_synced_at":"2025-07-20T13:04:21.345Z","repository":{"id":294421603,"uuid":"986397626","full_name":"skp3214/System-Design","owner":"skp3214","description":"A repository to learn system design","archived":false,"fork":false,"pushed_at":"2025-07-15T14:29:40.000Z","size":34307,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-16T07:53:30.149Z","etag":null,"topics":["hld","lld","projects","system-design"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/skp3214.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-19T14:46:18.000Z","updated_at":"2025-07-15T14:29:43.000Z","dependencies_parsed_at":"2025-06-24T04:40:25.250Z","dependency_job_id":null,"html_url":"https://github.com/skp3214/System-Design","commit_stats":null,"previous_names":["skp3214/system-design"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/skp3214/System-Design","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skp3214%2FSystem-Design","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skp3214%2FSystem-Design/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skp3214%2FSystem-Design/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skp3214%2FSystem-Design/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skp3214","download_url":"https://codeload.github.com/skp3214/System-Design/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skp3214%2FSystem-Design/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266127671,"owners_count":23880488,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hld","lld","projects","system-design"],"created_at":"2025-07-20T13:04:20.149Z","updated_at":"2025-07-20T13:04:21.334Z","avatar_url":"https://github.com/skp3214.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# System Design\n\n## Overview of System Design\n\nSystem 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.\n\n### Key Objectives\n- **LLD**: Focuses on the detailed design of individual components, including object-oriented principles, design patterns, and project implementations.\n- **HLD**: Emphasizes the overall system architecture, including scalability, load balancing, data distribution, and integration strategies (to be added later).\n- **Holistic Approach**: Combines theoretical foundations with practical projects to prepare learners for end-to-end system development.\n\n### Notes Structure\n\n### Low Level Design (LLD)\n\n| **Lecture**            | **Topic**                                              | **Description**                                                                 | **Link/Resource**                              |\n|-------------------------|-------------------------------------------------------|--------------------------------------------------------------------------------|-----------------------------------------------|\n| [Lecture 1](/system-design/1/1.md) | Introduction to System Design                          | Introduction to system design principles.                                       | [Link](/system-design/1/1.md)                 |\n| [Lecture 2](/system-design/2/2.md) | Oops - Real World Examples                             | Practical OOP concepts with examples.                                           | [Link](/system-design/2/2.md)                 |\n| [Lecture 3](/system-design/3/3.md) | Inheritance and Polymorphism                           | Deep dive into inheritance and polymorphism.                                    | [Link](/system-design/3/3.md)                 |\n| [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)                 |\n| [Lecture 5](/system-design/5/5.md) | SOLID Design Principles - Part 1                       | First half of SOLID principles.                                                 | [Link](/system-design/5/5.md)                 |\n| [Lecture 6](/system-design/6/6.md) | SOLID Design Principles - Part 2                       | Completion of SOLID principles.                                                 | [Link](/system-design/6/6.md)                 |\n| [Lecture 7](/system-design/7/7.md) | Document Editor LLD - Project 1                        | Design a text editor system.                                                    | [Link](/system-design/7/7.md)                 |\n| [Lecture 8](/system-design/8/8.md) | Design Pattern in LLD - Strategy Design Pattern        | Encapsulate algorithms for flexibility.                                         | [Link](/system-design/8/8.md)                 |\n| [Lecture 9](/system-design/9/9.md) | Design Pattern in LLD - Factory Design Pattern         | Simplify object creation.                                                       | [Link](/system-design/9/9.md)                 |\n| [Lecture 10](/system-design/10/10.md) | Design Pattern in LLD - Singleton Design Pattern       | Ensure a single instance.                                                       | [Link](/system-design/10/10.md)               |\n| [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) |\n| [Lecture 12](/system-design/12/12.md) | Design Pattern in LLD - Observer Design Pattern        | Build event-driven systems.                                                     | [Link](/system-design/12/12.md)               |\n| [Lecture 13](/system-design/13/13.md) | Design Pattern in LLD - Decorator Design Pattern       | Add responsibilities dynamically.                                               | [Link](/system-design/13/13.md)               |\n| [Lecture 14](/system-design/14/14.md) | LLD of Notification System                             | Design a notification framework.                                                | [Link](/system-design/14/14.md)               |\n| [Lecture 15](/system-design/15/15.md) | Design Pattern in LLD - Command Design Pattern         | Enable undo/redo functionality.                                                 | [Link](/system-design/15/15.md)               |\n| [Lecture 16](/system-design/16/16.md) | Design Pattern in LLD - Adapter Design Pattern         | Bridge incompatible interfaces.                                                 | [Link](/system-design/16/16.md)               |\n| [Lecture 17](/system-design/17/17.md) | Design Pattern in LLD - Facade Design Pattern          | Simplify complex subsystems.                                                    | [Link](/system-design/17/17.md)               |\n| [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) |\n| [Lecture 19](/system-design/19/19.md) | Design Pattern in LLD - Composite Design Pattern       | Uniform treatment of objects.                                                    | [Link](/system-design/19/19.md)               |\n| [Lecture 20](/system-design/20/20.md) | Design Pattern in LLD - Template Method Design Pattern | Define algorithm skeletons.                                                     | [Link](/system-design/20/20.md)               |\n| [Lecture 21](/system-design/21/21.md) | Design Pattern in LLD - Proxy Design Pattern           | Control object access.                                                          | [Link](/system-design/21/21.md)               |\n| [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)               |\n| [Lecture 23](/system-design/23/23.md) | Payment Gateway LLD                                    | Design a secure payment system.                                                 | [Link](/system-design/23/23.md)               |\n| [Lecture 24](/system-design/24/24.md) | Discount Coupon Engine LLD                             | Build a coupon management system.                                               | [Link](/system-design/24/24.md)               |\n| [Lecture 25](/system-design/25/25.md) | Design Pattern in LLD - Bridge Design Pattern          | Decouple abstraction and implementation.                                        | [Link](/system-design/25/25.md)               |\n| [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) |\n| [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) |\n| [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)               |\n| [Lecture 29](/system-design/29/29.md) | Design Pattern in LLD - Iterator Design Pattern        | Traverse collections efficiently.                                               | [Link](/system-design/29/29.md)               |\n| [Lecture 30](/system-design/30/30.md) | Design Pattern in LLD - Flyweight Design Pattern       | Optimize with shared objects.                                                   | [Link](/system-design/30/30.md)               |\n| [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) |\n| [Lecture 32](/system-design/32/32.md) | Design Pattern in LLD - State Design Pattern           | Alter behavior by state.                                                        | [Link](/system-design/32/32.md)               |\n| [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) |\n| [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) |\n| [Lecture 35](/system-design/35/35.md) | Design Pattern in LLD - Mediator Design Pattern        | Centralize object communication.                                                | [Link](/system-design/35/35.md)               |\n| [Lecture 36](/system-design/36/36.md) | Design Pattern in LLD - Prototype Design Pattern       | Clone objects efficiently.                                                      | [Link](/system-design/36/36.md)               |\n| [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) |\n| [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)               |\n| [Lecture 39](/system-design/39/39.md) | Design Pattern in LLD - Memento Design Pattern         | Save and restore states.                                                        | [Link](/system-design/39/39.md)               |\n| [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)               |\n\n\n---\n\n### High Level Design (HLD)\n\n### [Later On]()\n\n----\n### Learning Outcomes\n- **LLD Mastery**: Gain expertise in OOPs, UML, 22+ design patterns, and 8 hands-on projects.\n\n- **Best Practices**: Apply SOLID principles and avoid anti-patterns.\n\n---\n\n`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!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskp3214%2Fsystem-design","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskp3214%2Fsystem-design","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskp3214%2Fsystem-design/lists"}