Skip to main content
Version: Next

Manual de Arquitectura de Software


Tipo de arquitectura de software​

Arquitectura basada en servicios en la nube con API REST en NodeJS y frontend basado en el framework Electron con HTML, CSS y JavaScript.

Desglose de arquitectura​

La arquitectura se compone de capas principales:

  • Frontend (Electron + HTML, CSS, JavaScript)
  • Backend (Node.JS + Express + AWS EC2 + MySQL)

Frontend​

Objetivo​

Objetivo: Interfaz de usuario para la sección de analíticas, reportes y plantillas

Tecnologías​

  • Framework de Electron
  • CSS, HTML, JavaScript

Características​

Agregar las características del frontend de su proyecto.

  • Inicio de sesión
    • Pantalla de inicio de sesión
  • Análisis
    • Módulo principal de análisis
    • Creación y aplicación de fórmulas a los datos
    • Generación de plantillas
    • Generación de reportes
    • Interpretación de datos
    • Control de acceso según el rol del usuario
    • Carga de gráficas
  • Selección de distribuidores y tractores
    • Panel para la selección de distribuidores y tractores a analizar
    • Selección de parámetros de los tractores
  • Selección de plantillas
    • Panel para la selección de plantillas
    • Vista previa de las plantillas
  • Perfil de usuario
    • Nombre
    • Cerrar sesión
  • Gestión de usuarios
    • Barra de búsqueda

    • Lista de usuarios

    • Eliminar o modificar usuarios

    • Periodicidad de envíos

    • Definición de destinatarios

    • Definición de frecuencia de envío

    • Definición de cantidad envíos

Despliegue de su frontend​

El frontend de la aplicación se ejecutará localmente en el equipo del usuario mediante Electron, lo que significa que no requiere un servidor externo para su despliegue.


Backend​

Objetivo​

Desglose del componente Backend de la arquitectura.

  • Exponer una API REST para manejar la autenticación de usuarios y asegurar la persistencia de datos (backend desplegado).
  • Procesamiento de los datos, generación de reportes, cargado y descargado de archivos, así como asegurar el funcionamiento de las distintas funcionalidades especificadas anteriormente. (backend local)

Tecnologías​

Escribir las tecnologías que se usarán para crear el backend.

Backend desplegado:

  • Node.JS + Express.JS para construir la API
  • MySQL para crear y administrar la base de datos
  • JWT para manejar la autenticación
  • PM2 para administrar procesos en producción

Backend local:

  • Node.JS + Express.JS para hacer peticiones al backend desplegado.
  • JS PDF para el descargado de archivos al almacenamiento local.
  • Hyperformula para el uso, y creación de fórmulas de excel sobre los datos.
  • Chart JS para la creación y uso de gráficas.
  • XSLX para el manejo de archivos de excel.

Características​

  • API REST
    • Se definen endpoints para los usuarios
    • Uso de middlewares para proteger las rutas según el rol del usuario
  • RBAC y autenticación
    • Uso de JWT para manejar las sesiones

Despliegue​

  • AWS EC2 para el despliegue del backend.

Endpoints Principales​

  • Usar Swagger UI para documentar endpoints.

Servicios de infraestructura​

Objetivo​

Proveer infraestructura escalable y segura para la aplicación.

Servicios​

  • EC2 de amazon web services
    • Se utilizará un t4g.Medium para soportar el procesamiento de Node.js, MySQL y en un futuro, el procesamiento de datos en el mismo servidor.

Beneficios de la arquitectura seleccionada​

Redactar los beneficios de la arquitectura seleccionada.

  • Escalable.
  • Segura.
  • Flexible.
  • Fácil implementación.
  • Conocimiento previo de la mayoría de tecnologías.
  • No necesitamos contratar instancias caras.

Diagrama de despliegue​


Historial de cambios​

Tipo de versiónDescripciónFechaColaborador
1.0Primera versión del manual de arquitectura06/03/2025Daniel Contreras Chávez
2.0Adición del diagrama de despliegue25/03/2025Juan Pablo Chávez Leal
2.1Corrección al diagrama de despliegue04/04/2025Ian Julián Estrada Castro
2.2Corrección de una palabra08/05/2025Rommel Toledo C.
3.0Eliminar servicios de AWS13/05/2025Daniel Queijeiro
3.1Actualizar manual26/05/2025Juan Pablo CHávez Leal