# Memoria del Proyecto - Help Desk ## Fecha de inicio 16 de Mayo, 2026 ## Stack tecnológico - Node.js con Express 5 - EJS como motor de plantillas - MariaDB/MySQL con mysql2 - express-session + bcryptjs para autenticación - Bootstrap 5 + Font Awesome para UI - morgan, connect-flash, express-fileupload ## Decisiones de arquitectura 1. **MySQL vs MongoDB**: El usuario eligió MySQL (MariaDB) como base de datos, consistente con su stack habitual en otros proyectos Node. 2. **express-session vs JWT**: Se optó por sesiones del lado del servidor con express-session en lugar de JWT para mantener la compatibilidad con connect-flash y facilitar mensajes flash. Aunque se instaló jsonwebtoken, no se está utilizando activamente. 3. **3 roles de usuario**: admin, agent, client. Cada uno con acceso a rutas específicas protegidas por middleware de autenticación. 4. **EJS con partials**: Se usan partials (header.ejs, footer.ejs, navbar.ejs, sidebar.ejs) en lugar de layouts para mantener la estructura simple sin dependencias extra. 5. **Bootstrap 5 desde CDN**: No se incluye Bootstrap local para mantener el proyecto liviano. Se carga desde CDN junto con Font Awesome. ## Base de Datos - Servidor MariaDB en `192.168.10.149` - Usuario: `helpdesk`@`192.168.10.101` - Base de datos: `help_desk` - 4 tablas: users, departments, tickets, ticket_respuestas ## Puerto del servidor - El servidor corre en el puerto 3008 ## Pendientes / Notas - La contraseña del usuario helpdesk se cambió de `password` a `5oyN9zvq/2K8b1Fs` - jsonwebtoken está instalado como dependencia pero no se usa activamente - El frontend es funcional pero se puede mejorar ## Problemas conocidos - node --watch no funciona correctamente en algunos entornos; usar nodemon como alternativa