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