1.7 KiB
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
-
MySQL vs MongoDB: El usuario eligió MySQL (MariaDB) como base de datos, consistente con su stack habitual en otros proyectos Node.
-
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 roles de usuario: admin, agent, client. Cada uno con acceso a rutas específicas protegidas por middleware de autenticación.
-
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.
-
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
passworda5oyN9zvq/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