Files

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

  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