{"id":27057529,"url":"https://github.com/charlybutar21/clean-architecture-example","last_synced_at":"2026-04-10T23:03:22.204Z","repository":{"id":256207872,"uuid":"854603637","full_name":"charlybutar21/clean-architecture-example","owner":"charlybutar21","description":"This repository provides a practical example of implementing Clean Architecture using Spring Boot and JSP. It is designed to help understand the principles of Clean Architecture while also learning how to create front-end views with JSP.","archived":false,"fork":false,"pushed_at":"2024-09-17T10:43:37.000Z","size":743,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-09-18T07:22:27.762Z","etag":null,"topics":["clean-architecture","css","javascript","jsp","rest-api","spring-boot"],"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/charlybutar21.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}},"created_at":"2024-09-09T13:19:37.000Z","updated_at":"2024-09-17T10:43:40.000Z","dependencies_parsed_at":"2024-09-09T16:26:16.075Z","dependency_job_id":null,"html_url":"https://github.com/charlybutar21/clean-architecture-example","commit_stats":null,"previous_names":["charlybutar21/clean-architecture-example"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charlybutar21%2Fclean-architecture-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charlybutar21%2Fclean-architecture-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charlybutar21%2Fclean-architecture-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charlybutar21%2Fclean-architecture-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/charlybutar21","download_url":"https://codeload.github.com/charlybutar21/clean-architecture-example/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247328507,"owners_count":20921196,"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":["clean-architecture","css","javascript","jsp","rest-api","spring-boot"],"created_at":"2025-04-05T11:28:17.062Z","updated_at":"2026-04-10T23:03:17.178Z","avatar_url":"https://github.com/charlybutar21.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Clean Architecture\n\u003cp align=\"justify\"\u003e\nThis repository provides a practical example of implementing Clean Architecture using Spring Boot and JSP. It is designed to help understand the principles of Clean Architecture while also learning how to create front-end views with JSP.\n\u003c/p\u003e\n\n## What is clean-architecture?\n\u003cp align=\"justify\"\u003e\nClean architecture is a software architectural pattern introduced by Robert C. Martin.\nClean architecture is also a way to design an application so that the code is organized, well-structured, and easy to develop or change. \nThe main principle is to separate different parts of the application into layers that don’t depend on each other. \nFor example, the business logic (the rules of the application) shouldn’t rely on technical details like the database or the user interface.\n\u003c/p\u003e\n\n\u003cp align=\"justify\"\u003e\nWith clean architecture, each layer has its own responsibility, so if something changes in one part (like switching the database), other parts don’t need to be changed. \nThis makes the application more flexible and easier to maintain.\n\u003c/p\u003e\n\n## Code Separation in Layers of Different Levels \n![img.png](images/img.png)\n\u003cp align=\"justify\"\u003e\nTo explain this concept We can see in the diagram that the original version of the CA contains four distinct layers:\n\n- Entities: Business rules and encapsulates data and core business functions.\n- Use Cases: Application-specific logic and rules that orchestrate the flow of data to and from the entities to achieve the goals of a specific use case.\n- Interface Adapters: Glues the UI, database, and backend with use cases, and contains the implementations of data source interfaces and communication with external systems.\n- Frameworks \u0026 Drivers: Includes the mobile framework code, platform-specific classes, and third-party libraries.\n\u003c/p\u003e\n\n## The Dependency Rule \n\u003cp align=\"justify\"\u003e\nThe Dependency Rule states that dependencies should only point inwards, and inner layers should not be aware of outer layers.\n\u003c/p\u003e\n\n## Dependency Inversion\n\u003cp align=\"justify\"\u003e\nDependency Inversion is a key principle of CA, where dependencies are inverted by depending on abstractions rather than concrete implementations. This enables the swapping of dependencies and facilitates testability.\n\u003c/p\u003e\n\n## Benefits of Clean Architecture\n(+) separation of concerns,\n\n(+) testability,\n\n(+) robustness,\n\n(+) and readability\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharlybutar21%2Fclean-architecture-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcharlybutar21%2Fclean-architecture-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharlybutar21%2Fclean-architecture-example/lists"}