{"id":37144430,"url":"https://github.com/yinebebt/hexagonal-architecture","last_synced_at":"2026-01-14T16:57:30.839Z","repository":{"id":226122644,"uuid":"767818928","full_name":"yinebebt/hexagonal-architecture","owner":"yinebebt","description":"Hexagonal architecture through a Go-based project demonstration","archived":false,"fork":false,"pushed_at":"2025-01-25T08:41:29.000Z","size":7561,"stargazers_count":17,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-21T10:51:27.907Z","etag":null,"topics":["adapters","go","gorm","graphql","grpc","handler","hexagonal-architecture","mongodb","port","postgres","repository","rest-api","websocket"],"latest_commit_sha":null,"homepage":"","language":"Go","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/yinebebt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":["yinebebt"],"custom":[""]}},"created_at":"2024-03-06T00:20:29.000Z","updated_at":"2025-01-25T08:43:42.000Z","dependencies_parsed_at":"2024-03-28T21:02:01.674Z","dependency_job_id":"16dcc9d4-e2fd-49bb-90e6-61cba1163515","html_url":"https://github.com/yinebebt/hexagonal-architecture","commit_stats":null,"previous_names":["yinebeb-01/hexagonal-architecture","yinebebt/hexagonal-architecture"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/yinebebt/hexagonal-architecture","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yinebebt%2Fhexagonal-architecture","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yinebebt%2Fhexagonal-architecture/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yinebebt%2Fhexagonal-architecture/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yinebebt%2Fhexagonal-architecture/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yinebebt","download_url":"https://codeload.github.com/yinebebt/hexagonal-architecture/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yinebebt%2Fhexagonal-architecture/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28427167,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T16:38:47.836Z","status":"ssl_error","status_checked_at":"2026-01-14T16:34:59.695Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["adapters","go","gorm","graphql","grpc","handler","hexagonal-architecture","mongodb","port","postgres","repository","rest-api","websocket"],"created_at":"2026-01-14T16:57:30.166Z","updated_at":"2026-01-14T16:57:30.831Z","avatar_url":"https://github.com/yinebebt.png","language":"Go","funding_links":["https://github.com/sponsors/yinebebt",""],"categories":[],"sub_categories":[],"readme":"# Hexagonal-architecture\n![build-workflow](https://github.com/yinebebt/hexagonal-architecture/actions/workflows/build-and-test.yml/badge.svg)\n\nHexagonal architecture is a design pattern suitable for building scalable and complex projects.\nThis repository serves as a demonstration of the principles of Hexagonal Architecture in a Go project.\n\nThe goal of this project is to provide a straightforward example that developers can use to understand and apply\nHexagonal Architecture in their own projects. By following the structure and patterns demonstrated here, developers\ncan build scalable and maintainable systems with ease.\n\nIn this demo, the core business functionality revolves around managing user and video entities.\nAdministrators have the capability to manage videos, while users are provided with access to view the available videos.\n\nExplore the concept of Hexagonal Architecture further\nin [Hexagonal-architecture](https://medium.com/@yinebeb-tariku/hexagonal-architecture-93a946776242).\n\n## Adapters\n\n### Handler\n\n- [x] REST API - GIN\n- [ ] gRPC\n- [ ] GraphQL\n- [ ] WebSocket\n\n### Repository\n\n- [x] Sqlite\n- [ ] Mongodb\n- [x] Postgres\n\n## Project structure\n\n```\n/app\n|-- /cmd\n|   |-- main.go\n|-- /docs   \n|-- /internal\n|   |-- /adapter\n|   |   |-- /handler\n|   |   |   |-- /rest\n|   |   |   |-- /gRPC\n|   |   |-- /reository\n|   |   |   |-- /sqlite\n|   |   |   |-- /postgres\n|   |   |   |-- /mongo\n|   |   |-- /glue\n|   |   |   |-- /route\n|   |   |   |-- route.go\n|   |   |-- /dto\n|   |   |-- /templates\n|   |-- /core\n|   |   |-- /entity\n|   |   |-- /port\n|   |   |-- /service\n|   |   |   |-- /test\n|   |   |-- /util   \n```\n\n## Installation\n\nInstall **godog** binary:\n\n```bash\ngo install github.com/cucumber/godog/cmd/godog@latest\n```\n\nUse `go test` command to run feature tests since godog's cli is deprecated.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyinebebt%2Fhexagonal-architecture","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyinebebt%2Fhexagonal-architecture","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyinebebt%2Fhexagonal-architecture/lists"}