{"id":21499247,"url":"https://github.com/carlossalasamper/angular-clean-architecture","last_synced_at":"2025-03-17T12:45:56.112Z","repository":{"id":235469726,"uuid":"736958947","full_name":"carlossalasamper/angular-clean-architecture","owner":"carlossalasamper","description":"🧅 An Angular scaffold with a clean architecture that is easy to understand.","archived":false,"fork":false,"pushed_at":"2025-01-28T07:27:59.000Z","size":712,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-28T08:24:57.619Z","etag":null,"topics":["angular","angular-scaffolding","clean-architecture","clean-code","ddd","ddd-architecture","dependency-injection","dependency-inversion","scaffold","web-development"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/carlossalasamper.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","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},"funding":{"github":["carlossalasamper"],"buy_me_a_coffee":"carlossala95"}},"created_at":"2023-12-29T11:27:05.000Z","updated_at":"2025-01-28T07:28:03.000Z","dependencies_parsed_at":"2024-04-23T14:02:22.834Z","dependency_job_id":"d7f91ed8-2c42-4462-836c-2a65ecd529ee","html_url":"https://github.com/carlossalasamper/angular-clean-architecture","commit_stats":null,"previous_names":["carlossalasamper/angular-clean-architecture"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlossalasamper%2Fangular-clean-architecture","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlossalasamper%2Fangular-clean-architecture/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlossalasamper%2Fangular-clean-architecture/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlossalasamper%2Fangular-clean-architecture/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/carlossalasamper","download_url":"https://codeload.github.com/carlossalasamper/angular-clean-architecture/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244038324,"owners_count":20387826,"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":["angular","angular-scaffolding","clean-architecture","clean-code","ddd","ddd-architecture","dependency-injection","dependency-inversion","scaffold","web-development"],"created_at":"2024-11-23T17:15:07.871Z","updated_at":"2025-03-17T12:45:56.068Z","avatar_url":"https://github.com/carlossalasamper.png","language":"TypeScript","funding_links":["https://github.com/sponsors/carlossalasamper","https://buymeacoffee.com/carlossala95"],"categories":["Site Templates","Recently Updated"],"sub_categories":["Free Templates","[Feb 28, 2025](/content/2025/02/28/README.md)"],"readme":"# Angular Clean Architecture\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"./assets/images/angular-clean-architecture-banner.png?raw=true\" style=\"max-width: 100%; width: 600px;\" /\u003e\n\u003c/p\u003e\n\u003cp align=\"center\" style=\"margin-top: 10px;\"\u003eAn \u003cb\u003eAngular scaffold\u003c/b\u003e with a clean architecture that is easy to understand.\u003c/p\u003e\n\n## Features\n\n- 🚀 [Angular 19](https://blog.angular.dev/meet-angular-v19-7b29dfd05b84)\n- 📁 Clean architecture. Layered file structure\n- 🛡️ TypeScript bulletproof typing\n- 🎨 Design System and UI: [Tailwind CSS](https://tailwindcss.com/)\n- 🖌️ Code format: [angular-eslint](https://github.com/angular-eslint/angular-eslint?tab=readme-ov-file#quick-start)\n- 🧰 State Manager: [NgRx](https://ngrx.io/)\n- 🐩 Git hooks: [Husky](https://www.npmjs.com/package/husky)\n\n\u003chr\u003e\n\n## 📁 Project File Structure\n\n\u003e ⚠️ What makes the implementation of the clean architecture concept more difficult in my opinion is that since it is defined theoretically, each person implements it using different terminology or omitting/adding some layers or pieces to simplify it or continue to make it more complex.\n\nFor this reason, I think it is important to emphasize the documentation that accompanies the architecture to avoid obstacles with the rest of the people who are going to work with this system.\n\nI briefly explain each of the four layers that make up clean architecture within the /src folder:\n\n```\n└── /src\n    └── /app\n        ├── /core                      # Core bounded context\n        │   └── /presentation\n        └── /post                      # Post bounded context\n            ├── /domain\n            ├── /application\n            ├── /infrastructure\n            └── /presentation\n```\n\n### Domain\n\nThis layer contains all the enterprise business rules: entities, specifications...\n\n### Application\n\nThis layer contains the use cases of the bounded context.\n\n### Infrastructure\n\nThis layer contains the technical details (implementation) of the domain layer and third parties integrations.\n\n### Presentation\n\nThis layer contains the React source code: views and controllers (Mobx controllers).\n\n### Referencesw\n\n- https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html\n- https://jeffreypalermo.com/2008/07/the-onion-architecture-part-1/\n\n\u003chr\u003e\n\n## Development server\n\nRun `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files.\n\n## Code scaffolding\n\nRun `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.\n\n## Build\n\nRun `ng build` to build the project. The build artifacts will be stored in the `dist/` directory.\n\n## Running unit tests\n\nRun `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).\n\n## Running end-to-end tests\n\nRun `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities.\n\n## Further help\n\nTo get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarlossalasamper%2Fangular-clean-architecture","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcarlossalasamper%2Fangular-clean-architecture","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarlossalasamper%2Fangular-clean-architecture/lists"}