Arquitectura y despliegue - ds-2026-grupo-02/SmartPantry GitHub Wiki

Arquitectura y despliegue

En esta sección se detalla la arquitectura general de la aplicación y la estrategia utilizada para su despliegue.

Arquitectura adoptada

Para el desarrollo del sistema de Despensa inteligente y perfil nutricional se ha adoptado una arquitectura de monolito en capas basado en ABP Application (Layered).

Características principales de la solución:

  • Backend unificado: La aplicación cuenta con un único backend desplegable, un único repositorio de código y un único pipeline de integración continua.
  • Separación lógica en capas: El sistema se organiza de forma estricta separando las responsabilidades lógicas en capas bien definidas:
    • Presentation / HttpApi.Host: Expone la API REST del backend y aloja la interfaz de usuario desarrollada en Angular.
    • Application: Capa encargada de coordinar los casos de uso del sistema y los servicios de aplicación.
    • Domain: Contiene el modelo de dominio central, las entidades, los objetos de valor y las reglas de negocio puras.
    • EntityFrameworkCore (Infraestructura): Resuelve la persistencia de los datos y la conexión con la base de datos relacional (SQL Server).
  • Ausencia de microservicios: No se utilizan microservicios ni módulos desplegables de manera independiente; todo el sistema opera de forma monolítica bajo el framework ABP.io.

Justificación de la arquitectura elegida:

  • Ventaja principal: Ofrece una menor complejidad general para diseñar, desarrollar, probar y desplegar la aplicación durante el transcurso de la cursada.
  • Riesgo principal: Existe el riesgo potencial de sufrir acoplamiento interno entre las capas si no se respetan estrictamente las responsabilidades y dependencias unidireccionales que propone ABP.

Diagrama de componentes

Descargar archivo editable

Diagrama de despliegue

Descargar archivo editable