{"id":15591219,"url":"https://github.com/zhashkevych/task-management-microservices","last_synced_at":"2025-04-28T11:16:30.274Z","repository":{"id":118975546,"uuid":"305052709","full_name":"zhashkevych/task-management-microservices","owner":"zhashkevych","description":"Microservice Architecture Example w/ Go + KrakenD + Postgres","archived":false,"fork":false,"pushed_at":"2020-10-24T05:24:05.000Z","size":101,"stargazers_count":14,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-28T11:16:13.625Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/zhashkevych.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":"2020-10-18T08:08:13.000Z","updated_at":"2025-03-01T18:18:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"da89a81f-39e6-41e2-8b0c-f13fd3d98a83","html_url":"https://github.com/zhashkevych/task-management-microservices","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/zhashkevych%2Ftask-management-microservices","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhashkevych%2Ftask-management-microservices/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhashkevych%2Ftask-management-microservices/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhashkevych%2Ftask-management-microservices/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zhashkevych","download_url":"https://codeload.github.com/zhashkevych/task-management-microservices/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251302782,"owners_count":21567601,"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":[],"created_at":"2024-10-02T23:40:38.722Z","updated_at":"2025-04-28T11:16:30.227Z","avatar_url":"https://github.com/zhashkevych.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Microservices Structure Example (Task Management Software)\n## Stack\n- Go\n- Postgres\n- \u003ca href=\"https://www.krakend.io/\"\u003eKrakenD\u003c/a\u003e as API Gateway\n- \u003ca href=\"https://github.com/lpereira/lwan\"\u003e Lwan\u003c/a\u003e (as file server)\n- Docker \u0026 Docker-Compose\n\n## Requirements\n- Installed Docker\n- Installed `golang-migrate` \n\n## CLI Tools\n- `make help` to see all available instructions\n- `make run` to build \u0026 run project\n- `make migrate-users` \u0026 `make migrate-tasks` to apply database migrations\n\n## Build \u0026 Run Project\n- Run `make run` in terminal window\n- **If you are running project locally for the first time,** open new window and run `make migrate-users \u0026\u0026 make migrate-tasks`\n\n## TODO\n- Inter Process Communication (gRPC / Message Queue)\n- Logging \u0026 Tracing\n\n## Endpoints\n### POST /user/sign-up\n\nCreate New User\n\n**Example Input**:\n```json\n{\n  \"first_name\": \"Albert\",\n  \"last_name\": \"Einstein\",\n  \"username\": \"generalrelativity\",\n  \"password\": \"E=mc2baby\"\n}\n```\n**Example Response**:\n```json\n{\n  \"id\": 1\n}\n```\n\n### GET /user/token\n\nGenerate JWT Token\n\n**Example Input**:\n```json\n{\n  \"username\": \"generalrelativity\",\n  \"password\": \"E=mc2baby\"\n}\n```\n**Example Response**:\n```json\n{\n  \"access_token\": \"eyJhbGciOiJIUzI1NiIsImtpZCI6IjEifQ.eyJhdWQiOiJodHRwOi8vZ2F0ZXdheTo4MDgwIiwiZXhwIjoxNjAzMzAzMzUyLCJpc3MiOiJodHRwOi8vdXNlcnMtc2VydmljZTo4MDAwIiwidXNlcl9pZCI6MX0.nL3ZtfqxBsgMLFcPrX16MekQWrduWE3dAUGFhm1bZzI\"\n}\n```\n\n### GET /user/profile\n\nReturn User Info\n\n**HTTP Headers**:\n\n```\nAuthorization: Bearer \u003caccess_token\u003e\n```\n\n**Example Response**:\n```json\n{\n  \"id\": 1,\n  \"first_name\": \"Albert\",\n  \"last_name\": \"Einstein\",\n  \"username\": \"generalrelativity\",\n  \"password\": \"E=mc2baby\"\n}\n```\n\n### POST /tasks\n\nCreate New Task\n\n**HTTP Headers**:\n\n```\nAuthorization: Bearer \u003caccess_token\u003e\n```\n\n**Example Input**:\n```json\n{\n  \"title\": \"Task 1\"\n}\n```\n**Example Response**:\n```json\n{\n  \"id\": 1\n}\n```\n\n### GET /tasks\n\nGet All Tasks\n\n**HTTP Headers**:\n\n```\nAuthorization: Bearer \u003caccess_token\u003e\n```\n\n**Example Response**:\n```json\n{\n  \"tasks\": [\n    {\n      \"id\": 1,\n      \"title\": \"Task 1\",\n      \"created_at\": \"2020-10-21T06:09:26.654986Z\",\n      \"user_id\": 1\n    }\n  ]\n}\n```\n\n### GET /tasks/1\n\nGet Task By Id\n\n**HTTP Headers**:\n\n```\nAuthorization: Bearer \u003caccess_token\u003e\n```\n\n**Example Response**:\n```json\n{\n  \"id\": 1,\n  \"title\": \"Task 1\",\n  \"created_at\": \"2020-10-21T06:09:26.654986Z\",\n  \"user_id\": 1\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhashkevych%2Ftask-management-microservices","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzhashkevych%2Ftask-management-microservices","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhashkevych%2Ftask-management-microservices/lists"}