{"id":36443670,"url":"https://github.com/samuelorlato/task-manager-api","last_synced_at":"2026-01-11T22:01:55.972Z","repository":{"id":212211388,"uuid":"730886676","full_name":"samuelorlato/task-manager-api","owner":"samuelorlato","description":"  A Go API made for studies that manages tasks with user authentication","archived":false,"fork":false,"pushed_at":"2024-01-17T23:33:37.000Z","size":53,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-06-19T19:33:30.365Z","etag":null,"topics":["api","clean-architecture","go","golang","hexagonal-architecture","jwt","todo-list"],"latest_commit_sha":null,"homepage":"","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/samuelorlato.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":"2023-12-12T22:24:12.000Z","updated_at":"2024-01-27T20:42:28.000Z","dependencies_parsed_at":"2024-01-16T03:28:57.766Z","dependency_job_id":"a77c19bd-0178-4077-8f6c-3ecf0fbcbed2","html_url":"https://github.com/samuelorlato/task-manager-api","commit_stats":null,"previous_names":["samuelorlato/task-manager-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/samuelorlato/task-manager-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samuelorlato%2Ftask-manager-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samuelorlato%2Ftask-manager-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samuelorlato%2Ftask-manager-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samuelorlato%2Ftask-manager-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/samuelorlato","download_url":"https://codeload.github.com/samuelorlato/task-manager-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samuelorlato%2Ftask-manager-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28324837,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-11T18:42:50.174Z","status":"ssl_error","status_checked_at":"2026-01-11T18:39:13.842Z","response_time":60,"last_error":"SSL_read: 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":["api","clean-architecture","go","golang","hexagonal-architecture","jwt","todo-list"],"created_at":"2026-01-11T22:01:55.304Z","updated_at":"2026-01-11T22:01:55.959Z","avatar_url":"https://github.com/samuelorlato.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Task Manager API\nA Go API made for studies that manages tasks with user authentication\n\n## Routes\n\n#### Users\n\n\u003cdetails\u003e\n \u003csummary\u003e\u003ccode\u003ePOST\u003c/code\u003e \u003ccode\u003e\u003cb\u003e/register\u003c/b\u003e\u003c/code\u003e \u003ccode\u003e(registers new user)\u003c/code\u003e\u003c/summary\u003e\n\n##### JSON Body Params\n\n\u003e | name     | type     | data type            |\n\u003e | -------- | -------- | -------------------- |\n\u003e | email    | required | string (valid email) |\n\u003e | password | required | string               |\n\n##### Responses\n\n\u003e | http code | content-type       | response                                                                                                                                  |\n\u003e | --------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- |\n\u003e | `201`     | `application/json` | `{\"ok\":\"use /login to authenticate\"}`                                                                                                     |\n\u003e | `400`     | `application/json` | `{\"description\":\"Validation error\",\"error\":\"Key: 'User.Email' Error:Field validation for 'Email' failed on the 'email' tag\"}`             |\n\u003e | `400`     | `application/json` | `{\"description\":\"Validation error\",\"error\":\"Key: 'UserDTO.Email' Error:Field validation for 'Email' failed on the 'required' tag\"}`       |\n\u003e | `400`     | `application/json` | `{\"description\":\"Validation error\",\"error\":\"Key: 'UserDTO.Password' Error:Field validation for 'Password' failed on the 'required' tag\"}` |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n \u003csummary\u003e\u003ccode\u003ePOST\u003c/code\u003e \u003ccode\u003e\u003cb\u003e/login\u003c/b\u003e\u003c/code\u003e \u003ccode\u003e(logs in user)\u003c/code\u003e\u003c/summary\u003e\n\n##### JSON Body Params\n\n\u003e | name     | type     | data type |\n\u003e | -------- | -------- | --------- |\n\u003e | email    | required | string    |\n\u003e | password | required | string    |\n\n##### Responses\n\n\u003e | http code | content-type       | response                                                                                                                                  |\n\u003e | --------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- |\n\u003e | `200`     | `application/json` | `{\"token\":\"...\"}`                                                                                                                         |\n\u003e | `400`     | `application/json` | `{\"description\":\"Validation error\",\"error\":\"Key: 'UserDTO.Email' Error:Field validation for 'Email' failed on the 'required' tag\"}`       |\n\u003e | `400`     | `application/json` | `{\"description\":\"Validation error\",\"error\":\"Key: 'UserDTO.Password' Error:Field validation for 'Password' failed on the 'required' tag\"}` |\n\u003e | `400`     | `application/json` | `{\"description\":\"Validation error\",\"error\":\"crypto/bcrypt: hashedPassword is not the hash of the given password\"}`                        |\n\u003e | `500`     | `application/json` | `{\"description\":\"Repository error\",\"error\":\"User not found\"}`                                                                             |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n \u003csummary\u003e\u003ccode\u003ePATCH\u003c/code\u003e \u003ccode\u003e\u003cb\u003e/user\u003c/b\u003e\u003c/code\u003e \u003ccode\u003e(updates user's properties)\u003c/code\u003e\u003c/summary\u003e\n\n##### JSON Body Params\n\n\u003e | name     | type     | data type |\n\u003e | -------- | -------- | --------- |\n\u003e | email    | optional | string    |\n\u003e | password | optional | string    |\n\n##### Headers\n\n\u003e | name          | data type          |\n\u003e | ------------- | ------------------ |\n\u003e | Authorization | string (JWT token) |\n\n##### Responses\n\n\u003e | http code | content-type       | response                                                                                                                      |\n\u003e | --------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------------- | --- | --- |\n\u003e | `200`     | `application/json` | `{\"status\":\"success\"}`                                                                                                        |\n\u003e | `400`     | `application/json` | `{\"description\":\"Validation error\",\"error\":\"Key: 'User.Email' Error:Field validation for 'Email' failed on the 'email' tag\"}` |     |     |\n\u003e | `401`     | `application/json` | `{\"description\":\"You must be authenticated\",\"error\":\"token is malformed: ...\"}`                                               |     |     |\n\u003e | `401`     | `application/json` | `{\"description\":\"You must be authenticated\",\"error\":\"Authorization header not found\"}`                                        |     |     |\n\u003e | `401`     | `application/json` | `{\"description\":\"You must be authenticated\",\"error\":\"token has invalid claims: token is expired\"}`                            |     |     |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n \u003csummary\u003e\u003ccode\u003eDELETE\u003c/code\u003e \u003ccode\u003e\u003cb\u003e/user\u003c/b\u003e\u003c/code\u003e \u003ccode\u003e(deletes user)\u003c/code\u003e\u003c/summary\u003e\n\n##### Headers\n\n\u003e | name          | data type          |\n\u003e | ------------- | ------------------ |\n\u003e | Authorization | string (JWT token) |\n\n##### Responses\n\n\u003e | http code | content-type       | response                                                                                           |\n\u003e | --------- | ------------------ | -------------------------------------------------------------------------------------------------- | --- | --- |\n\u003e | `200`     | `application/json` | `{\"status\":\"success\"}`                                                                             |\n\u003e | `401`     | `application/json` | `{\"description\":\"You must be authenticated\",\"error\":\"token is malformed: ...\"}`                    |     |     |\n\u003e | `401`     | `application/json` | `{\"description\":\"You must be authenticated\",\"error\":\"Authorization header not found\"}`             |     |     |\n\u003e | `401`     | `application/json` | `{\"description\":\"You must be authenticated\",\"error\":\"token has invalid claims: token is expired\"}` |     |     |\n\n\u003c/details\u003e\n\n#### Tasks\n\n\u003cdetails\u003e\n \u003csummary\u003e\u003ccode\u003eGET\u003c/code\u003e \u003ccode\u003e\u003cb\u003e/tasks\u003c/b\u003e\u003c/code\u003e \u003ccode\u003e(gets all authenticated user's tasks)\u003c/code\u003e\u003c/summary\u003e\n\n##### Headers\n\n\u003e | name          | data type          |\n\u003e | ------------- | ------------------ |\n\u003e | Authorization | string (JWT token) |\n\n##### Responses\n\n\u003e | http code | content-type       | response                                                                                           |\n\u003e | --------- | ------------------ | -------------------------------------------------------------------------------------------------- | --- | --- |\n\u003e | `200`     | `application/json` | `[{...}]`                                                                                          |\n\u003e | `401`     | `application/json` | `{\"description\":\"You must be authenticated\",\"error\":\"token is malformed: ...\"}`                    |     |     |\n\u003e | `401`     | `application/json` | `{\"description\":\"You must be authenticated\",\"error\":\"Authorization header not found\"}`             |     |     |\n\u003e | `401`     | `application/json` | `{\"description\":\"You must be authenticated\",\"error\":\"token has invalid claims: token is expired\"}` |     |     |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n \u003csummary\u003e\u003ccode\u003eGET\u003c/code\u003e \u003ccode\u003e\u003cb\u003e/tasks/:id\u003c/b\u003e\u003c/code\u003e \u003ccode\u003e(gets a task in authenticated user's tasks)\u003c/code\u003e\u003c/summary\u003e\n\n##### Headers\n\n\u003e | name          | data type          |\n\u003e | ------------- | ------------------ |\n\u003e | Authorization | string (JWT token) |\n\n##### Responses\n\n\u003e | http code | content-type       | response                                                                                           |\n\u003e | --------- | ------------------ | -------------------------------------------------------------------------------------------------- | --- | --- |\n\u003e | `200`     | `application/json` | `{...}                                                                                             |\n\u003e | `         |\n\u003e | `400`     | `application/json` | `{\"description\":\"Validation error\",\"error\":\"invalid UUID length: ...\"}`                            |     |     |\n\u003e | `401`     | `application/json` | `{\"description\":\"You must be authenticated\",\"error\":\"token is malformed: ...\"}`                    |     |     |\n\u003e | `401`     | `application/json` | `{\"description\":\"You must be authenticated\",\"error\":\"Authorization header not found\"}`             |     |     |\n\u003e | `401`     | `application/json` | `{\"description\":\"You must be authenticated\",\"error\":\"token has invalid claims: token is expired\"}` |     |     |\n\u003e | `500`     | `application/json` | `{\"description\":\"Repository error\",\"error\":\"Task not found\"}`                                      |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n \u003csummary\u003e\u003ccode\u003ePOST\u003c/code\u003e \u003ccode\u003e\u003cb\u003e/tasks\u003c/b\u003e\u003c/code\u003e \u003ccode\u003e(creates a task in authenticated user's tasks list)\u003c/code\u003e\u003c/summary\u003e\n\n##### JSON Body Params\n\n\u003e | name        | type     | data type               |\n\u003e | ----------- | -------- | ----------------------- |\n\u003e | title       | required | string                  |\n\u003e | description | optional | string                  |\n\u003e | toDate      | required | string (dd/mm/yy hh:mm) |\n\u003e | tags        | optional | []string                |\n\n##### Headers\n\n\u003e | name          | data type          |\n\u003e | ------------- | ------------------ |\n\u003e | Authorization | string (JWT token) |\n\n##### Responses\n\n\u003e | http code | content-type       | response                                                                                                                                    |\n\u003e | --------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------- | --- | --- |\n\u003e | `201`     | `application/json` | `{\"createdTaskId\":\"...\"}`                                                                                                                   |\n\u003e | `400`     | `application/json` | `{\"description\":\"Validation error\",\"error\":\"Key: 'CreateTaskDTO.Title' Error:Field validation for 'Title' failed on the 'required' tag\"}`   |     |     |\n\u003e | `400`     | `application/json` | `{\"description\":\"Validation error\",\"error\":\"Key: 'CreateTaskDTO.ToDate' Error:Field validation for 'ToDate' failed on the 'required' tag\"}` |     |     |\n\u003e | `400`     | `application/json` | `{\"description\":\"Validation error\",\"error\":\"parsing time...\"}`                                                                              |     |     |\n\u003e | `401`     | `application/json` | `{\"description\":\"You must be authenticated\",\"error\":\"token is malformed: ...\"}`                                                             |     |     |\n\u003e | `401`     | `application/json` | `{\"description\":\"You must be authenticated\",\"error\":\"Authorization header not found\"}`                                                      |     |     |\n\u003e | `401`     | `application/json` | `{\"description\":\"You must be authenticated\",\"error\":\"token has invalid claims: token is expired\"}`                                          |     |     |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n \u003csummary\u003e\u003ccode\u003ePATCH\u003c/code\u003e \u003ccode\u003e\u003cb\u003e/tasks/:id\u003c/b\u003e\u003c/code\u003e \u003ccode\u003e(updates a task in authenticated user's tasks list)\u003c/code\u003e\u003c/summary\u003e\n\n##### JSON Body Params\n\n\u003e | name        | type     | data type               |\n\u003e | ----------- | -------- | ----------------------- |\n\u003e | title       | optional | string                  |\n\u003e | description | optional | string                  |\n\u003e | toDate      | optional | string (dd/mm/yy hh:mm) |\n\u003e | completed   | optional | bool                    |\n\u003e | tags        | optional | []string                |\n\n##### Headers\n\n\u003e | name          | data type          |\n\u003e | ------------- | ------------------ |\n\u003e | Authorization | string (JWT token) |\n\n##### Responses\n\n\u003e | http code | content-type       | response                                                                                           |\n\u003e | --------- | ------------------ | -------------------------------------------------------------------------------------------------- | --- | --- |\n\u003e | `200`     | `application/json` | `{\"status\":\"success\"}`                                                                             |\n\u003e | `400`     | `application/json` | `{\"description\":\"Validation error\",\"error\":\"parsing time...\"}`                                     |     |     |\n\u003e | `400`     | `application/json` | `{\"description\":\"Validation error\",\"error\":\"invalid UUID length: ...\"}`                            |     |     |\n\u003e | `401`     | `application/json` | `{\"description\":\"You must be authenticated\",\"error\":\"token is malformed: ...\"}`                    |     |     |\n\u003e | `401`     | `application/json` | `{\"description\":\"You must be authenticated\",\"error\":\"Authorization header not found\"}`             |     |     |\n\u003e | `401`     | `application/json` | `{\"description\":\"You must be authenticated\",\"error\":\"token has invalid claims: token is expired\"}` |     |     |\n\u003e | `500`     | `application/json` | `{\"description\":\"Repository error\",\"error\":\"Task not found\"}`                                      |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n \u003csummary\u003e\u003ccode\u003eDELETE\u003c/code\u003e \u003ccode\u003e\u003cb\u003e/tasks/:id\u003c/b\u003e\u003c/code\u003e \u003ccode\u003e(deletes a task in authenticated user's tasks list)\u003c/code\u003e\u003c/summary\u003e\n\n##### Headers\n\n\u003e | name          | data type          |\n\u003e | ------------- | ------------------ |\n\u003e | Authorization | string (JWT token) |\n\n##### Responses\n\n\u003e | http code | content-type       | response                                                                                           |\n\u003e | --------- | ------------------ | -------------------------------------------------------------------------------------------------- | --- | --- |\n\u003e | `200`     | `application/json` | `{\"status\":\"success\"}`                                                                             |\n\u003e | `400`     | `application/json` | `{\"description\":\"Validation error\",\"error\":\"parsing time...\"}`                                     |     |     |\n\u003e | `400`     | `application/json` | `{\"description\":\"Validation error\",\"error\":\"invalid UUID length: ...\"}`                            |     |     |\n\u003e | `401`     | `application/json` | `{\"description\":\"You must be authenticated\",\"error\":\"token is malformed: ...\"}`                    |     |     |\n\u003e | `401`     | `application/json` | `{\"description\":\"You must be authenticated\",\"error\":\"Authorization header not found\"}`             |     |     |\n\u003e | `401`     | `application/json` | `{\"description\":\"You must be authenticated\",\"error\":\"token has invalid claims: token is expired\"}` |     |     |\n\u003e | `500`     | `application/json` | `{\"description\":\"Repository error\",\"error\":\"Task not found\"}`                                      |\n\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamuelorlato%2Ftask-manager-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamuelorlato%2Ftask-manager-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamuelorlato%2Ftask-manager-api/lists"}