{"id":19943613,"url":"https://github.com/elyosemite/hexagonalarchitecture","last_synced_at":"2025-03-01T13:25:50.245Z","repository":{"id":156585291,"uuid":"633075330","full_name":"elyosemite/HexagonalArchitecture","owner":"elyosemite","description":"This is a study project focused on software architecture. We will use the Hexagonal Architecture, also known as Ports and Adapters, which aims to separate business logic from the rest of the application, as well as being easily testable and flexible for changes.","archived":false,"fork":false,"pushed_at":"2023-04-26T22:45:07.000Z","size":516,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-12T05:09:34.624Z","etag":null,"topics":["adapter-pattern","architecture","design","hexagonal-architecture","ports-and-adapters","study","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/elyosemite.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}},"created_at":"2023-04-26T18:17:42.000Z","updated_at":"2024-02-03T05:35:09.000Z","dependencies_parsed_at":"2024-01-16T09:19:43.989Z","dependency_job_id":null,"html_url":"https://github.com/elyosemite/HexagonalArchitecture","commit_stats":null,"previous_names":["elyosemite/hexagonalarchitecture"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elyosemite%2FHexagonalArchitecture","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elyosemite%2FHexagonalArchitecture/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elyosemite%2FHexagonalArchitecture/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elyosemite%2FHexagonalArchitecture/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elyosemite","download_url":"https://codeload.github.com/elyosemite/HexagonalArchitecture/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241369958,"owners_count":19951840,"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":["adapter-pattern","architecture","design","hexagonal-architecture","ports-and-adapters","study","typescript"],"created_at":"2024-11-13T00:17:24.365Z","updated_at":"2025-03-01T13:25:50.217Z","avatar_url":"https://github.com/elyosemite.png","language":"TypeScript","readme":"# Study of `Hexagonal Architecture` with Clean Architecture\n\nThis is a study project focused on software architecture. We will use the `Hexagonal Architecture`, also known as Ports and Adapters, which aims to separate business logic from the rest of the application, as well as being easily testable and flexible for changes.\n\nIn addition, we will use the principles of `Clean Architecture`, which proposes the separation into layers of responsibilities and the `inversion of dependencies`, making the system more modular, decoupled and easy to maintain.\n\nWith `Domain-Driven Design`, we will map the domain of the application, defining business rules, entities and valuing the ubiquitous language, which is a set of common terms and concepts between business experts and developers.\n\nAnd, to ensure the quality of the code, we will use the `Test-Driven Development` technique, writing tests before implementing the code and ensuring that the application works correctly at all times.\n\nThe project will be developed using the `Typescript` programming language, and the technologies used will be `nodeJS v18.16.0`.\n\n# Requirements\n- `NodeJS` with version `v18.16.0`\n- `Typescript`\n- `ts-jest` with version `^29.1.0`\n\n# How to use\nTo use this project, you must follow the following steps:\n\n- Have to download from `git@github.com:Yuridsm/HexagonalArchitecture.git`\n- Run `npm run start`\n- To run tests you have type `npx jest`\n\n# Project structure\nThe project will be divided into [insert here the layers of the hexagonal architecture] and will follow the following folder structure:\n\n```bash\n/app\n    /domain\n        /models\n        /repositories\n        /services\n    /usecases\n    /adapters\n        /entrypoints\n        /gateways\n        /presenters\n/tests\n```\n\n- domain: contains business rules, entities, services, and repository interfaces.\n- usecases: contains the application use cases, which use domain interfaces to perform operations.\n- adapters: contains the input and output adapters of the application, as well as presenters, which are responsible for formatting information for display.\n- tests: contains unit and integration tests of the application.\n\n# Contribution\nFeel free to contribute to this project, just follow the following guidelines:\n\nFork the project;\nCreate a new branch with the feature to be added;\nMake the necessary changes and write the corresponding tests;\nMake sure all tests are passing;\nSend a pull request to the original repository.\nThank you for your contribution!","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felyosemite%2Fhexagonalarchitecture","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felyosemite%2Fhexagonalarchitecture","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felyosemite%2Fhexagonalarchitecture/lists"}