Este repositorio contiene la implementación completa del backend para la prueba técnica Software Engineer Wagon.
La API está desarrollada en NestJS con Prisma ORM y PostgreSQL, e incluye autenticación con JWT.
- Lenguaje: TypeScript
- Framework: NestJS
- ORM: Prisma
- Base de Datos: PostgreSQL
- Autenticación: JWT (JSON Web Tokens)
- Gestor de Paquetes: npm o yarn
- Autenticación y Autorización con JWT.
- Registro de usuario (
/auth/signup). - Inicio de sesión (
/auth/login). - Perfil de usuario autenticado (
/auth/profile). - Gestión de tareas:
- Crear tarea (
POST /tasks) - Listar tareas (
GET /tasks) - Obtener tarea por ID (
GET /tasks/:id) - Actualizar tarea (
PUT /tasks/:id) - Eliminar tarea (
DELETE /tasks/:id) - Filtrar por estado (pendiente / completada)
- Crear tarea (
| Método | Endpoint | Descripción | Autenticación |
|---|---|---|---|
| POST | /auth/signup |
Registro de usuario | ✅ Sí |
| POST | /auth/login |
Inicio de sesión | ✅ Sí |
| GET | /auth/profile |
Datos del usuario autenticado | ✅ Sí |
| GET | /tasks |
Listar todas las tareas | ✅ Sí |
| GET | /tasks/:id |
Obtener tarea por ID | ✅ Sí |
| POST | /tasks |
Crear nueva tarea | ✅ Sí |
| PUT | /tasks/:id |
Actualizar tarea | ✅ Sí |
| DELETE | /tasks/:id |
Eliminar tarea | ✅ Sí |
Request
POST /auth/signup
{
"email": "usuario@correo.com",
"password": "123456"
}
{
"id": 1,
"email": "usuario@correo.com",
"createdAt": "2025-08-09T12:00:00.000Z"
}
POST /auth/login
{
"email": "usuario@correo.com",
"password": "123456"
}
{
"access_token": "jwt_generado_aquí"
}
GET /auth/profile
Authorization: Bearer <token_jwt>
{
"id": 1,
"email": "usuario@correo.com",
"createdAt": "2025-08-09T12:00:00.000Z"
}
POST /tasks
Authorization: Bearer <token_jwt>
{
"title": "Comprar pan",
"description": "Ir a la panadería antes de las 8 am"
}
{
"id": 5,
"title": "Comprar pan",
"description": "Ir a la panadería antes de las 8 am",
"status": "pending",
"createdAt": "2025-08-09T12:10:00.000Z"
}
´´´