{"id":28142133,"url":"https://github.com/vuuouiwons/todo-template","last_synced_at":"2026-02-06T14:06:52.771Z","repository":{"id":292113668,"uuid":"979763741","full_name":"Vuuouiwons/todo-template","owner":"Vuuouiwons","description":"Backend-agnostic ToDo list API specification with user authentication, CRUD operations for to-do lists and items, and standardized request/response formats. This template serves as a foundational blueprint for consistent ToDo list backends.","archived":false,"fork":false,"pushed_at":"2025-10-06T09:37:25.000Z","size":34,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-06T11:24:51.307Z","etag":null,"topics":["api-template","backend","crud","learning-resources","todo"],"latest_commit_sha":null,"homepage":"","language":null,"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/Vuuouiwons.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,"zenodo":null}},"created_at":"2025-05-08T03:13:09.000Z","updated_at":"2025-10-06T09:37:28.000Z","dependencies_parsed_at":"2025-05-08T08:31:47.214Z","dependency_job_id":"88b73506-dbf3-47f7-bf0d-91aff61fe819","html_url":"https://github.com/Vuuouiwons/todo-template","commit_stats":null,"previous_names":["vuuouiwons/todo-template"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Vuuouiwons/todo-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vuuouiwons%2Ftodo-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vuuouiwons%2Ftodo-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vuuouiwons%2Ftodo-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vuuouiwons%2Ftodo-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Vuuouiwons","download_url":"https://codeload.github.com/Vuuouiwons/todo-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vuuouiwons%2Ftodo-template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29164272,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-06T12:44:37.655Z","status":"ssl_error","status_checked_at":"2026-02-06T12:44:13.991Z","response_time":59,"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-template","backend","crud","learning-resources","todo"],"created_at":"2025-05-14T19:17:37.249Z","updated_at":"2026-02-06T14:06:52.763Z","avatar_url":"https://github.com/Vuuouiwons.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# ToDo List Template\nThis repository provides a structured specification for a ToDo list backend, including all essential API endpoints, request/response formats, and authentication flow. The goal is to serve as a reference blueprint for implementing the same project across multiple backend frameworks.\n\nBy standardizing the API design, input/output expectations, and behavior, this repo enables consistent comparisons and learning experiences across different technologies.\n\n# Tech stack\nDescribe the tech stack used to make this todo app.\n1. Backend Framework\n2. ORM\n3. Logging\n4. Parameter Checker\n\n## etc Tech stack\nSupporting microservices\n1. Database\n2. Cache\n\n## Status code format\nthe status format is drived from http status with added information.\n```\ncontroller_id-http_code\nxx-xxx\n```\n\n\n# Data flow\nData flow follows SOLID code principle\n```text\napp -\u003e global middlewares-\u003e routes -\u003e local middlewares -\u003e controllers -\u003e services -\u003e repository -\u003e database -\u003e models\n```\n# Endpoints\n## List of all endpoints\n\n| Method | Endpoint                               | Controller ID | Auth | Payload                  | Response Example                  | Description                           |\n| ------ | -------------------------------------- | ------------- | ---- | ------------------------ | --------------------------------- | ------------------------------------- |\n| POST   | `/register`                            | RE            | -    | `{ username, password }` | status                            | Register a new user                   |\n| POST   | `/login`                               | RE            | -    | `{ username, password }` | status, data: token               | Login and receive JWT                 |\n| GET    | `/todolists`                           | TL            | JWT  | –                        | status, message, data: todolist[] | Fetch all to-do lists                 |\n| GET    | `/todolists/:todolistId`               | TL            | JWT  | –                        | status, message, data: todolist   | Get a single to-do list and its todos |\n| POST   | `/todolists`                           | TL            | JWT  | `{ title }`              | status, message, data: todolist   | Create a new to-do list               |\n| PUT    | `/todolists/:todolistId`               | TL            | JWT  | `{ title, status }`      | status, message, data: todolist   | Update a to-do list (title or status) |\n| DELETE | `/todolists/:todolistId`               | TL            | JWT  | –                        | -                                 | Delete a to-do list                   |\n| GET    | `/todolists/:todolistId/todos`         | TO            | JWT  | –                        | status, message, data: todo[]     | Fetch all todos in a list             |\n| GET    | `/todolists/:todolistId/todos/:todoId` | TO            | JWT  | –                        | status, message, data: todo       | Get a single todo                     |\n| POST   | `/todolists/:todolistId/todos`         | TO            | JWT  | `{ message }`            | status, message, data: todo       | Add a new todo to a list              |\n| PUT    | `/todolists/:todolistId/todos/:todoId` | TO            | JWT  | `{ message, status }`    | status, message, data: todo       | Update a specific todo                |\n| DELETE | `/todolists/:todolistId/todos/:todoId` | TO            | JWT  | –                        | status, message, data: NULL       | Delete a specific todo                |\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvuuouiwons%2Ftodo-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvuuouiwons%2Ftodo-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvuuouiwons%2Ftodo-template/lists"}