{"id":25549819,"url":"https://github.com/stormdotcom/low-level-design-lld-","last_synced_at":"2026-05-15T08:03:31.191Z","repository":{"id":230869299,"uuid":"780306195","full_name":"stormdotcom/Low-Level-Design-LLD-","owner":"stormdotcom","description":"sample code demonstrating SOLID principles and Dependency Inversion implemented in both Java and JavaScript.","archived":false,"fork":false,"pushed_at":"2024-04-12T07:00:06.000Z","size":36,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-04-12T13:21:03.496Z","etag":null,"topics":["java","javascript","js","lld","oops"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/stormdotcom.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}},"created_at":"2024-04-01T07:26:41.000Z","updated_at":"2024-04-15T05:55:01.588Z","dependencies_parsed_at":"2024-04-01T09:31:15.727Z","dependency_job_id":"fcbd3d32-8272-4a7b-bd55-f016ea3fac14","html_url":"https://github.com/stormdotcom/Low-Level-Design-LLD-","commit_stats":null,"previous_names":["stormdotcom/low-level-design-lld-"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stormdotcom%2FLow-Level-Design-LLD-","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stormdotcom%2FLow-Level-Design-LLD-/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stormdotcom%2FLow-Level-Design-LLD-/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stormdotcom%2FLow-Level-Design-LLD-/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stormdotcom","download_url":"https://codeload.github.com/stormdotcom/Low-Level-Design-LLD-/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239816502,"owners_count":19701753,"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":["java","javascript","js","lld","oops"],"created_at":"2025-02-20T10:20:28.170Z","updated_at":"2026-02-14T15:30:17.153Z","avatar_url":"https://github.com/stormdotcom.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SOLID Principles, Dependency Injection, OOPs Sample Code\n\nSample code demonstrating SOLID principles and Dependency Injection, OOPs Sample Code implemented in both Java and JavaScript/TypeScript.\n\n## Introduction\n\nSOLID is an acronym for five design principles intended to make software designs more understandable, flexible, and maintainable. emphasizing the decoupling of high-level modules from low-level modules by introducing an abstraction layer between them.\n\nThis repository contains sample code illustrating each of the SOLID principles and Dependency Injection, OOPs in both Java and JavaScript/TypeScript.\n\n### SOLID Principles: Guidelines for Better Software Systems\n\n1. **Maintainability**:\n\n   - Ensure Bug-Free Code\n   - Enhance Readability and Understandability\n   - Facilitate Easy Debugging and Maintenance\n\n2. **Extendability**:\n\n   - Enable Addition of New Features with Minimal Impact\n   - Promote Scalability and Adaptability to Future Requirements\n   - Support Seamless Integration of Enhancements\n\n3. **Reusability**:\n\n   - Encourage Componentization and Modularization\n   - Foster Creation of Highly Cohesive and Loosely Coupled Modules\n\n4. **Easily Testable**:\n   - Test Coverage should be their\n5. **Modular**\n   - Easy to read the code\n   - Easy to debug code\n\n- ##### Single Responsibility Principle [SRP](SOLID/SRP/SRP.md)\n- ##### Open/Closed Principle [OCP](SOLID/OCP/ocp.md)\n- ##### Liskov Substitution Principle [LSP](SOLID/LSP/lsp.md)\n- ##### Interface Segregation Principle [ISP](SOLID/ISP/isp.md)\n\n### Folder Directory\n\n```\nSOLID/\n└── js or ts\n├── SIP/\n├── OCP/\n├── LSP/\n├── ISP/\n└── DIP/\nDesignPattern/\n├── FlyWeight/\n├── Observer/\n├── Adapter/\n├── Decorator/\n├── Facade/\n├── Factory/\n├── Prototype/\n├── SingleTon/\n├── Strategy/\n└── UML-Diagram/\n\njava/\n├── DesignPattern/\n│   ├── FlyWeight/\n│   ├── Observer/\n│   ├── Adapter/\n│   ├── Decorator/\n│   ├── Facade/\n├── SOLID/\n│   ├── SIP/\n│   ├── OCP/\n│   ├── LSP/\n│   ├── ISP/\n│   ├── DIP/\n```\n\n## Getting Started\n\nTo get a local copy of the sample code up and running, follow these steps:\n\n1. Clone the repository:\n\n   ```\n   git clone https://github.com/stormdotcom/Low-Level-Design-LLD-\n   ```\n\n2. Navigate to the `java` or `root` ( for js/ts) directory, depending on the language you want to explore.\n\n3. Choose a specific SOLID principle or Dependency Inversion example folder.\n\n4. Explore the code.\n\n## Java Samples\n\n- **Single Responsibility Principle (SRP):** Demonstrates how to design classes that have a single responsibility.\n- **Open/Closed Principle (OCP):** Shows how to design classes that are open for extension but closed for modification.\n- **Liskov Substitution Principle (LSP):** Illustrates how to use subclassing without introducing bugs.\n- **Interface Segregation Principle (ISP):** Demonstrates how to segregate interfaces to make them more focused.\n- **Dependency Inversion Principle (DIP):** Shows how to design modules that depend on abstractions rather than concrete implementations.\n\n## JavaScript/TypeScript Samples\n\n- **Single Responsibility Principle (SRP):** JavaScript/TypeScript examples demonstrating classes with single responsibilities.\n- **Open/Closed Principle (OCP):** JavaScript/TypeScript examples showing how to extend functionality without modifying existing code.\n- **Liskov Substitution Principle (LSP):** JavaScript/TypeScript examples illustrating substitution of derived classes for base classes.\n- **Interface Segregation Principle (ISP):** JavaScript/TypeScript examples demonstrating how to split interfaces to keep them focused.\n- **Dependency Inversion Principle (DIP):** JavaScript/TypeScript examples showing how to invert dependencies to decouple components.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstormdotcom%2Flow-level-design-lld-","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstormdotcom%2Flow-level-design-lld-","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstormdotcom%2Flow-level-design-lld-/lists"}