API REST para la gestión de tareas con autenticación por JWT, control de acceso por roles y ownership, validación de datos y una suite de tests. El sistema modela usuarios y tareas sobre PostgreSQL y está completamente dockerizado.
Task API está pensada como una base backend sólida y reutilizable para cualquier aplicación de gestión de tareas. La arquitectura separa el transporte HTTP de la lógica de negocio y del acceso a datos, de modo que cada responsabilidad queda aislada y es fácil de testear y mantener. Sobre esa estructura se apoyan la autenticación, el control de acceso por roles y ownership, la validación de datos y el empaquetado con Docker.
Se logró una API robusta, tipada y segura que sirve como base sólida para cualquier aplicación de gestión de tareas. El control de acceso por roles y ownership garantiza que cada usuario sólo opere sobre sus propios datos, mientras que la validación y el manejo de errores centralizado mantienen las respuestas consistentes. La combinación de tests automatizados y una configuración totalmente dockerizada permite levantar el proyecto y verificar su correcto funcionamiento con un solo comando, facilitando el desarrollo, la revisión y el despliegue.
| Tecnología | Uso / Implementación |
|---|---|
| Node.js · Express | Servidor y API REST, con arquitectura por módulos (rutas, controladores y servicios). |
| TypeScript | Tipado estático en todo el proyecto para mayor robustez y mantenibilidad. |
| Prisma | ORM y migraciones versionadas sobre PostgreSQL; modelado de usuarios y tareas. |
| PostgreSQL | Base de datos relacional para usuarios y tareas. |
| JWT + bcrypt | Autenticación por tokens y hasheo seguro de contraseñas. |
| Zod | Validación de datos en el borde de cada operación de la API. |
| Vitest + Supertest | Tests unitarios del servicio y tests end-to-end de los endpoints. |
| Docker + docker-compose | Contenerización de la API y PostgreSQL, con migraciones automáticas al arrancar. |