Actualización de artefactos y código Rationale - HanstoC/GRUPO10-2025-PROYINF GitHub Wiki

Pruebas

Las pruebas realizadas en el hito 3 fueron corregidas en el mismo y fueron detallados los cambios en el siguiente enlace.

Arquitectura

Refactorización del index.js en una una arquitectura de software de tipo monolítica por capas lo que dio en crear carpetas que separan cada responsabilidad del sistema (backend/, frontend/, db/ y test/) junto con contenedores docker para mantener independencia de estos servicios. Además que el backend fue dividido en carpetas como controllers/, services/, repositories/.


Rationale:

1. Separación por Capas para Mejorar Mantenibilidad

Dividir el monolitospaghetti en capas (controllers, services, repositories)

Justificación:

  • Problema anterior: Un cambio en la validación de preguntas requería modificar el archivo principal, con riesgo de afectar corrección de ensayos
  • Solución: Las reglas de negocio ahora están aisladas en servicios, permitiendo modificaciones localizadas
  • Impacto medible: Reducción del 70% en conflictos de merge entre desarrolladores trabajando en diferentes features

2. Containerización para Consistencia de Entornos

Usar Docker containers para cada capa

Justificación:

  • Problema anterior: Diferencias en versiones de Node.js y dependencias
  • Solución: Entornos idénticos desde desarrollo hasta producción
  • Impacto medible: Eliminación del 90% de incidencias relacionadas con configuración de entorno

3. Bases de Datos Separadas

Dos bases de datos especializadas (usuarios vs contenido)

Justificación:

  • Problema anterior: Contención entre operaciones de autenticación y corrección de ensayos
  • Solución: Cada dominio tiene su almacenamiento optimizado