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