Issues Cerrados - DEOS-Org/DEOS-Education GitHub Wiki

Issues Cerrados

#16: Estructura base y mas

Creado: 2025-06-12T13:23:30+00:00 Cerrado: 2025-06-12T17:00:13+00:00

Milestone: Frontend

Labels: enhancement

Sin descripción


#15: Estructura base y mas

Creado: 2025-06-11T12:20:10+00:00 Cerrado: 2025-06-12T17:00:14+00:00

Milestone: General

Labels: enhancement

Sin descripción


#14: algo?????

Creado: 2025-06-03T21:16:55+00:00 Cerrado: 2025-06-03T21:17:01+00:00

Milestone: Backend

Labels: enhancement

Sin descripción


#13: No se algo del back

Creado: 2025-06-03T21:15:43+00:00 Cerrado: 2025-06-03T21:16:38+00:00

Milestone: Backend

Labels: enhancement

Sin descripción


#12: arregar csosas de .env

Creado: 2025-06-03T20:08:36+00:00 Cerrado: 2025-06-03T20:08:51+00:00

Milestone: Backend

Labels: bug

Sin descripción


#11: arreglar back

Creado: 2025-06-03T20:07:31+00:00 Cerrado: 2025-06-03T20:08:17+00:00

Milestone: Backend

Labels: bug

Sin descripción


#10: Cosas del back

Creado: 2025-06-03T19:57:12+00:00 Cerrado: 2025-06-03T20:08:28+00:00

Milestone: Backend

Labels: bug

Sin descripción


#9: Instalr dependencias

Creado: 2025-06-03T19:16:53+00:00 Cerrado: 2025-06-03T19:17:36+00:00

Milestone: Backend

Labels: bug

Sin descripción


#8: Instalar dependencias

Creado: 2025-06-03T19:15:32+00:00 Cerrado: 2025-06-03T19:16:38+00:00

Milestone: Backend

Labels: bug

Sin descripción


#7: 6 modificacion rutas api

Creado: 2025-06-03T14:33:42+00:00 Cerrado: 2025-06-03T14:33:52+00:00

Milestone: Backend

Labels: enhancement

📑 Documentación técnica (breve y clara)

🎯 Objetivo

Se desarrolló la API de usuarios del backend BioFirma en Node.js con Express y Sequelize, utilizando autenticación con JWT y bcrypt para contraseñas. El objetivo es gestionar usuarios, roles y su estado de activación/desactivación, con permisos según el rol.

🔒 Autenticación • authController.ts: Implementa el login de usuarios con JWT. • Recibe email y contraseña, valida el usuario y devuelve un token. • authRoutes.ts: Expone el endpoint POST /api/login.

👥 Gestión de Usuarios • Controladores (userController.ts): • createUser: Crea un usuario con roles y contraseña hasheada. • getUsers: Lista todos los usuarios con sus roles (solo admin). • getUserById: Devuelve un usuario específico (admin o self). • updateUser: Permite editar datos de un usuario (admin o self). • activateUser / deactivateUser: Activa/desactiva usuarios (soft delete). • assignRoles: Permite asignar roles a un usuario. • Servicios (userService.ts): • Lógica de negocio para crear usuarios, verificar unicidad de email y DNI, hashear contraseñas con bcrypt (12 rondas), asignar roles, y actualizar estado (activo).

🔐 Roles y Permisos • Se usa el middleware authorizeRoles para restringir el acceso a endpoints solo a administradores. • El middleware authenticate valida el token JWT y anexa los roles del usuario al request.

🛠️ Rutas (userRoutes.ts) • Endpoints: • POST /api/usuarios: Crear usuario (solo admin). • GET /api/usuarios: Listar usuarios (solo admin). • GET /api/usuarios/:id: Ver detalle de usuario (admin o self). • PUT /api/usuarios/:id: Editar usuario (admin o self). • PATCH /api/usuarios/:id/activate: Activar usuario (solo admin). • PATCH /api/usuarios/:id/deactivate: Desactivar usuario (solo admin). • POST /api/usuarios/:id/roles: Asignar roles a usuario (solo admin).

🔐 Seguridad • Contraseñas almacenadas con bcrypt (12 rondas). • JWT con autorización de roles. • Middleware para proteger rutas y manejar permisos.

✅ Pruebas • Script test_api.sh automatiza pruebas de login, creación, listado, asignación de roles y desactivación de usuarios. • Pruebas via curl para endpoints protegidos con token JWT.

🔥 Notas finales • Se implementó la desactivación de usuarios en lugar de borrado físico para mantener logs y trazabilidad. • Se priorizó el control de roles y la seguridad en la gestión de usuarios y contraseñas.


#6: Modificacion rutas api

Creado: 2025-06-03T12:58:52+00:00 Cerrado: 2025-06-03T14:33:25+00:00

Milestone: Backend

Labels: enhancement

Sin descripción


#5: Implementacion login backend, cambios y llenado base de datos

Creado: 2025-06-02T15:29:20+00:00 Cerrado: 2025-06-02T15:30:20+00:00

Milestone: Backend

Labels: enhancement

https://dbdiagram.io/d/683d9bc461dc3bf08d22def1


#4: Instalar esqueleto básico del proyecto

Creado: 2025-05-31T01:33:11+00:00 Cerrado: 2025-05-31T01:33:39+00:00

Milestone: General

Labels: enhancement

Sin descripción


#3: Instalar esqueleto básico del proyecto

Creado: 2025-05-31T01:31:18+00:00 Cerrado: 2025-05-31T01:32:03+00:00

Sin descripción


#2: Instalar esqueleto básico del proyecto

Creado: 2025-05-31T01:21:50+00:00 Cerrado: 2025-05-31T01:31:05+00:00

Milestone: General

Labels: enhancement

✅ Reorganizamos la estructura de carpetas: movimos docker-compose.yml a la raíz y unificamos los volúmenes. ✅ Creamos un .env global para centralizar las credenciales y variables necesarias para Docker y el backend. ✅ Preparamos la base de Docker Compose con todos los servicios (MariaDB, Adminer, Node-RED, Mosquitto, Caddy, backend). ✅ Verificamos y corregimos las rutas de los volúmenes para que Docker no rompa la ejecución. ✅ Configuramos Node-RED para trabajar detrás de Caddy y definimos la ruta base /nodered. ✅ Generamos los hashes bcrypt para las contraseñas de los usuarios de Node-RED y actualizamos settings.js.


#1: Creación de Base de Datos

Creado: 2025-05-30T16:30:12+00:00 Cerrado: 2025-06-02T15:27:56+00:00

Milestone: Backend

Labels: enhancement

Sin descripción