REST API for task management with JWT authentication, role- and ownership-based access control, data validation and a test suite. The system models users and tasks on PostgreSQL and is fully dockerized.
Task API is designed as a solid, reusable backend foundation for any task management application. The architecture separates HTTP transport from business logic and data access, so each responsibility stays isolated and is easy to test and maintain. Authentication, role- and ownership-based access control, data validation and Docker packaging all build on top of that structure.
The result is a robust, typed and secure API that serves as a solid foundation for any task management application. Role- and ownership-based access control ensures each user only operates on their own data, while validation and centralized error handling keep responses consistent. The combination of automated tests and a fully dockerized setup makes it possible to spin up the project and verify it works correctly with a single command, easing development, review and deployment.
| Technology | Use / Implementation |
|---|---|
| Node.js · Express | Server and REST API, with a modular architecture (routes, controllers and services). |
| TypeScript | Static typing across the whole project for greater robustness and maintainability. |
| Prisma | ORM and versioned migrations over PostgreSQL; modeling of users and tasks. |
| PostgreSQL | Relational database for users and tasks. |
| JWT + bcrypt | Token-based authentication and secure password hashing. |
| Zod | Data validation at the edge of each API operation. |
| Vitest + Supertest | Unit tests of the service and end-to-end tests of the endpoints. |
| Docker + docker-compose | Containerization of the API and PostgreSQL, with automatic migrations on startup. |