{"id":28936287,"url":"https://github.com/ale-pantoja/todo-app-backend","last_synced_at":"2026-04-07T08:31:46.795Z","repository":{"id":300240899,"uuid":"1005622089","full_name":"Ale-Pantoja/Todo-App-Backend","owner":"Ale-Pantoja","description":" Backend de una aplicación de lista de tareas (Todo App) con base de datos utilizando Supabase","archived":false,"fork":false,"pushed_at":"2025-06-20T15:13:33.000Z","size":36,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-20T16:19:43.660Z","etag":null,"topics":["backend","database","express","javascript","nodejs","postgresql","supabase","todoapp","todolist"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/Ale-Pantoja.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-06-20T14:24:30.000Z","updated_at":"2025-06-20T15:13:36.000Z","dependencies_parsed_at":"2025-06-20T16:19:49.749Z","dependency_job_id":"7968b012-cc89-4311-88e3-84e36aea31a7","html_url":"https://github.com/Ale-Pantoja/Todo-App-Backend","commit_stats":null,"previous_names":["ale-pantoja/todo-app-backend"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Ale-Pantoja/Todo-App-Backend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ale-Pantoja%2FTodo-App-Backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ale-Pantoja%2FTodo-App-Backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ale-Pantoja%2FTodo-App-Backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ale-Pantoja%2FTodo-App-Backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ale-Pantoja","download_url":"https://codeload.github.com/Ale-Pantoja/Todo-App-Backend/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ale-Pantoja%2FTodo-App-Backend/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261358693,"owners_count":23146674,"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":["backend","database","express","javascript","nodejs","postgresql","supabase","todoapp","todolist"],"created_at":"2025-06-22T20:08:17.846Z","updated_at":"2026-04-07T08:31:46.789Z","avatar_url":"https://github.com/Ale-Pantoja.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Aplicación Todo - Backend API\n\n## Visión General \u003ca name=\"visión-general\"\u003e\u003c/a\u003e\n\nEste proyecto implementa un backend completo para una aplicación de gestión de tareas (Todo App), proporcionando endpoints RESTful para operaciones CRUD con persistencia en PostgreSQL a través de Supabase.\n\n## Tecnologías \u003ca name=\"tecnologías\"\u003e\u003c/a\u003e\n![Supabase](https://img.shields.io/badge/Supabase-3ECF8E?style=for-the-badge\u0026logo=supabase\u0026logoColor=white)\n![NodeJS](https://img.shields.io/badge/node.js-6DA55F?style=for-the-badge\u0026logo=node.js\u0026logoColor=white)\n![Postgres](https://img.shields.io/badge/postgres-%23316192.svg?style=for-the-badge\u0026logo=postgresql\u0026logoColor=white) \n![Express.js](https://img.shields.io/badge/express.js-%23404d59.svg?style=for-the-badge\u0026logo=express\u0026logoColor=%2361DAFB)\n![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge\u0026logo=javascript\u0026logoColor=%23F7DF1E)\n\n\n**Stack completo:**\n- **Runtime:** Node.js 18+\n- **Framework:** Express 4.x\n- **Base de datos:** PostgreSQL 15+ (via Supabase)\n- **Validación:** Zod\n- **Variables de entorno:** dotenv\n- **Testing:** htttp Yack\n\n## Instalación \u003ca name=\"instalación\"\u003e\u003c/a\u003e\n\n```bash\n# Clonar repositorio\ngit clone https://github.com/Ale-Pantoja/todo-app-backend.git\ncd todo-app-backend\n\n# Instalar dependencias\nnpm install\n\n# Configurar entorno\ncp .env.example .env\n```\n\n## Configuración \u003ca name=\"configuración\"\u003e\u003c/a\u003e\n\nEditar el archivo `.env` con tus credenciales:\n\n```env\n# Entorno desarrollo\nDATABASE_DEV_URL=\"postgresql://postgres:password@project-id.supabase.co:5432/postgres\"\n\n# Entorno producción\nDATABASE_URL=\"postgresql://postgres:password@project-id.supabase.co:5432/postgres\"\n\n# Configuración adicional\nPORT=3000\n```\n\n## Documentación API \u003ca name=\"documentación-api\"\u003e\u003c/a\u003e\n\n### Base URL\n`http://localhost:3000`\n\n### Endpoints principales\n\n\u003ctable style=\"width: 100%; border-collapse: collapse;\"\u003e\n  \u003cthead style=\"background-color: #f5f5f5;\"\u003e\n    \u003ctr\u003e\n      \u003cth style=\"padding: 12px; text-align: left; border-bottom: 1px solid #ddd;\"\u003eEndpoint\u003c/th\u003e\n      \u003cth style=\"padding: 12px; text-align: left; border-bottom: 1px solid #ddd;\"\u003eMétodo\u003c/th\u003e\n      \u003cth style=\"padding: 12px; text-align: left; border-bottom: 1px solid #ddd;\"\u003eDescripción\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd style=\"padding: 12px; border-bottom: 1px solid #ddd;\"\u003e/tasks\u003c/td\u003e\n      \u003ctd style=\"padding: 12px; border-bottom: 1px solid #ddd;\"\u003ePOST\u003c/td\u003e\n      \u003ctd style=\"padding: 12px; border-bottom: 1px solid #ddd;\"\u003eCrear nueva tarea\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd style=\"padding: 12px; border-bottom: 1px solid #ddd;\"\u003e/tasks\u003c/td\u003e\n      \u003ctd style=\"padding: 12px; border-bottom: 1px solid #ddd;\"\u003eGET\u003c/td\u003e\n      \u003ctd style=\"padding: 12px; border-bottom: 1px solid #ddd;\"\u003eObtener todas las tareas\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd style=\"padding: 12px; border-bottom: 1px solid #ddd;\"\u003e/tasks\u003c/td\u003e\n      \u003ctd style=\"padding: 12px; border-bottom: 1px solid #ddd;\"\u003eDELETE\u003c/td\u003e\n      \u003ctd style=\"padding: 12px; border-bottom: 1px solid #ddd;\"\u003eEliminar una tarea\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd style=\"padding: 12px; border-bottom: 1px solid #ddd;\"\u003e/:id\u003c/td\u003e\n      \u003ctd style=\"padding: 12px; border-bottom: 1px solid #ddd;\"\u003ePUT\u003c/td\u003e\n      \u003ctd style=\"padding: 12px; border-bottom: 1px solid #ddd;\"\u003eActualizar una tarea\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n### Ejemplo de petición\n\n```http\nPOST http://localhost:3000/tasks\nContent-Type: application/json\n\n{\n  \"task\": \"Completar documentación técnica\",\n  \"isChecked\": false\n}\n```\n\n### Respuesta exitosa (200)\n\n```json\n{\n  \"id\": 1,\n  \"task\": \"Completar documentación técnica\",\n  \"isChecked\": false\n}\n```\n\n## Despliegue \u003ca name=\"despliegue\"\u003e\u003c/a\u003e\n\n### Entorno de desarrollo\n\n```bash\nnpm run dev\n```\n\n### Entorno de producción\n\n```bash\nnpm run build\nnpm start\n```\n\n## Contribución \u003ca name=\"contribución\"\u003e\u003c/a\u003e\n\n\u003cdetails\u003e\n\n1. Haz fork del proyecto\n2. Crea una rama feature (`git checkout -b feature/nueva-funcionalidad`)\n3. Haz commit de tus cambios (`git commit -am 'Añade nueva funcionalidad'`)\n4. Haz push a la rama (`git push origin feature/nueva-funcionalidad`)\n5. Abre un Pull Request\n\n\u003c/details\u003e\n\n## Licencia \u003ca name=\"licencia\"\u003e\u003c/a\u003e\n\nDistribuido bajo licencia MIT. Ver `LICENSE` para más información.\n\n\u003cdiv align=\"center\" style=\"margin-top: 40px;\"\u003e\n  \u003cp\u003e© 2025 Alejandra Pantoja | \n  \u003ca href=\"mailto:alepantojafl@gmail.com\"\u003eContacto\u003c/a\u003e | \n  \u003ca href=\"https://github.com/Ale-Pantoja\"\u003eGitHub\u003c/a\u003e\u003c/p\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fale-pantoja%2Ftodo-app-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fale-pantoja%2Ftodo-app-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fale-pantoja%2Ftodo-app-backend/lists"}