Skip to main content
Version: 1,0

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
    • Selección y carga de filtros
    • 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
    • Opciones múltiples para tractores
  • Selección de plantillas
    • Panel para la selección de plantillas
    • Vista previa de las plantillas
  • Periodicidad de envíos
    • Definición de destinatarios
    • Definición de frecuencia de envío
    • Definición de cantidad envíos
  • Perfil de usuario
    • Nombre
    • Cerrar sesión
  • Gestión de usuarios
    • Barra de búsqueda
    • Lista de usuarios
    • Eliminar o modificar usuarios

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 guardado de plantillas (backend desplegado).
  • Procesamiento de los datos, generación de reportes, cargado y descargado de archivos (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
  • DynamoDB SDK para interactuar con 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

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
  • Optimización
    • Rate Limiting para evitar el abuso de la API
    • CORS para la seguridad en las peticiones

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
    • Ya que el servidor no se encargará de hacer el procesamiento de los datos, una pequeña instancia del EC2 será suficiente (Especificar).

Beneficios de la arquitectura seleccionada

Redactar los beneficios de la arquitectura seleccionada.

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

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