{"id":21310053,"url":"https://github.com/bahattincinic/messenger-challenge","last_synced_at":"2025-06-15T17:38:44.415Z","repository":{"id":67257748,"uuid":"259629475","full_name":"bahattincinic/messenger-challenge","owner":"bahattincinic","description":"Build Simple Messenger API with Golang","archived":false,"fork":false,"pushed_at":"2020-05-19T23:37:03.000Z","size":10215,"stargazers_count":12,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-06-19T15:03:46.179Z","etag":null,"topics":["api","clean-architecture","github-actions-golang","golang"],"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/bahattincinic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2020-04-28T12:23:22.000Z","updated_at":"2021-12-01T00:00:55.000Z","dependencies_parsed_at":"2023-02-27T17:31:06.517Z","dependency_job_id":null,"html_url":"https://github.com/bahattincinic/messenger-challenge","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bahattincinic%2Fmessenger-challenge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bahattincinic%2Fmessenger-challenge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bahattincinic%2Fmessenger-challenge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bahattincinic%2Fmessenger-challenge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bahattincinic","download_url":"https://codeload.github.com/bahattincinic/messenger-challenge/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225769370,"owners_count":17521258,"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":["api","clean-architecture","github-actions-golang","golang"],"created_at":"2024-11-21T17:12:07.352Z","updated_at":"2024-11-21T17:12:07.869Z","avatar_url":"https://github.com/bahattincinic.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Messenger Challenge\n\nI developed a simple Messenger API with golang to make a practice.\n\n## Requirements\n- Golang\n- The Clean Architecture (https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html)\n\n## Folder Structure\n\n```\n.\n├── README.md\n├── api                   # HTTP API is under this folder\n│   ├── handlers          # API controller/handlers\n│   ├── middlewares       # API middlewares\n│   └── routes.go         # All Api Routes\n├── config                # Project Configurations\n│   ├── config.go\n│   ├── development.yaml\n│   └── production.yaml\n├── domain                # All business logic related things are under this folder.\n│   ├── models            # Database and data models\n│   ├── repositories      # Database query layer\n│   └── usecases          # business usecases\n├── go.mod\n├── go.sum\n├── main.go\n└── messenger.db\n```\n\n## Installation\n\n```\n$ git clone git@github.com:bahattincinic/messenger-challenge.git\n$ cd messenger-challenge\n$ go mod download\n```\n\n## Running Unit Tests\n\n```\n$ go test ./... -coverprofile cp.out\n\n?   \tgithub.com/bahattincinic/messenger-challenge\t[no test files]\n?   \tgithub.com/bahattincinic/messenger-challenge/api\t[no test files]\n?   \tgithub.com/bahattincinic/messenger-challenge/api/handlers\t[no test files]\nok  \tgithub.com/bahattincinic/messenger-challenge/api/middlewares\t0.284s\tcoverage: 17.6% of statements\nok  \tgithub.com/bahattincinic/messenger-challenge/config\t0.299s\tcoverage: 90.0% of statements\n?   \tgithub.com/bahattincinic/messenger-challenge/domain/models\t[no test files]\nok  \tgithub.com/bahattincinic/messenger-challenge/domain/repositories\t0.373s\tcoverage: 63.0% of statements\nok  \tgithub.com/bahattincinic/messenger-challenge/domain/usecases\t0.564s\tcoverage: 73.1% of statements\n```\n\n## API Documentation\n\nPostman Documentation: https://documenter.getpostman.com/view/191558/SzmcZe7s?version=latest\n\n\n## Github Actions\n\nI added 2 different Github Actions Job for automating unit-test and linter process.\n\n\u003chttps://github.com/bahattincinic/messenger-challenge/actions\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbahattincinic%2Fmessenger-challenge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbahattincinic%2Fmessenger-challenge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbahattincinic%2Fmessenger-challenge/lists"}