{"id":22562248,"url":"https://github.com/martinpcdev/todoapi","last_synced_at":"2026-04-09T17:55:18.879Z","repository":{"id":261369908,"uuid":"883998079","full_name":"MartinpcDev/TodoAPI","owner":"MartinpcDev","description":"Challenge backend de roadmap.sh implementando a una api de crear tareas en springboot","archived":false,"fork":false,"pushed_at":"2024-11-07T19:27:30.000Z","size":26,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T12:45:23.012Z","etag":null,"topics":["authentication","crud","docker","docker-compose","java","jjwt","jwt-authentication","postgresql","spring-boot","spring-jpa","spring-validation","springsecurity"],"latest_commit_sha":null,"homepage":"","language":"Java","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/MartinpcDev.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":"2024-11-06T00:23:35.000Z","updated_at":"2024-11-07T19:30:11.000Z","dependencies_parsed_at":"2025-03-28T12:42:45.256Z","dependency_job_id":"022963f3-c3c8-4bad-a7f2-1880ff2730ae","html_url":"https://github.com/MartinpcDev/TodoAPI","commit_stats":null,"previous_names":["martinpcdev/todoapi"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MartinpcDev/TodoAPI","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinpcDev%2FTodoAPI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinpcDev%2FTodoAPI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinpcDev%2FTodoAPI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinpcDev%2FTodoAPI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MartinpcDev","download_url":"https://codeload.github.com/MartinpcDev/TodoAPI/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinpcDev%2FTodoAPI/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262077078,"owners_count":23255110,"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":["authentication","crud","docker","docker-compose","java","jjwt","jwt-authentication","postgresql","spring-boot","spring-jpa","spring-validation","springsecurity"],"created_at":"2024-12-07T22:12:11.691Z","updated_at":"2025-12-30T22:23:18.913Z","avatar_url":"https://github.com/MartinpcDev.png","language":"Java","readme":"# TODO API\n\nChallenge basado en: [TODO API](https://roadmap.sh/projects/todo-list-api)\nUna API RESTful que permite a los usuarios gestionar una lista de tareas. La API incluye\nautenticación de usuario, operaciones CRUD para las tareas, manejo de errores, medidas de seguridad\ny soporte para paginación y filtrado.\n\n## Objetivos\n\nEste proyecto te ayudará a desarrollar y fortalecer las siguientes habilidades:\n\n* Autenticación de usuarios\n* Diseño de esquemas y bases de datos\n* Diseño de API RESTful\n* Operaciones CRUD\n* Manejo de errores\n* Seguridad\n\n## Requisitos\n\nEl proyecto cumple con los siguientes requisitos:\n\n* **Registro de Usuarios**: Permite crear un nuevo usuario.\n* **Autenticación y Login**: Autenticacion de usuario y genera un token.\n* **Operaciones CRUD**: Permite crear, leer, actualizar y eliminar tareas.\n* **Autenticación de Usuarios**: Solo los usuarios autorizados pueden acceder a la lista de tareas.\n* **Manejo de Errores y Seguridad**: Implementación de medidas de seguridad y manejo de errores.\n* **Base de Datos**: Almacena los datos de usuarios y de la lista de tareas en una base de datos.\n* **Validación de Datos**: Implementación de validaciones adecuadas en las entradas de datos.\n* **Paginación y Filtrado**: La lista de tareas soporta paginación y filtrado para facilitar la\n  navegación.\n\n## Endpoints\n\nLa API incluye los siguientes endpoints clave:\n\nAutenticación de Usuarios\n\n* **Registro de Usuario** (`POST /register`): Registra un nuevo usuario.\n* **Login** (`POST /login`): Autentica al usuario y genera un token de acceso.\n\n## Gestión de Tareas\n\n* **Crear Tarea** (POST /todos): Crea una nueva tarea (requiere autenticación).\n* **Obtener Lista de Tareas** (GET /todos): Obtiene la lista de tareas con soporte para paginación y\n  filtrado (requiere autenticación).\n* **Obtener Lista de Tareas por usuarios** (GET /todos/me): Obtiene la lista de tareas por usuario\n  (requiere autenticación).\n* **Actualizar Tarea** (PUT /todos/{id}): Actualiza una tarea específica (requiere autenticación).\n* **Eliminar Tarea** (DELETE /todos/{id}): Elimina una tarea específica (requiere autenticación).\n\n## Uso\n\n1. **Registro y Login**: Registra un usuario y autentícate para recibir el token de acceso.\n2. **Acceso a Endpoints de Tareas**: Usa el token de acceso en el encabezado Authorization para\n   realizar operaciones CRUD en las tareas.\n3. **Paginación y Filtrado**: Los parámetros page, pageSize y otros filtros opcionales pueden usarse\n   en el endpoint de obtener tareas.\n\n## Tecnologías Usadas\n\n* **Backend**: SpringBoot, Java\n* **Base de Datos**: PostgreSQL\n* **Autenticación**: Spring Security ,JSON Web Tokens (JWT)","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmartinpcdev%2Ftodoapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmartinpcdev%2Ftodoapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmartinpcdev%2Ftodoapi/lists"}