Skip to content

Latest commit

 

History

History
132 lines (94 loc) · 3.53 KB

arquitectura.adoc

File metadata and controls

132 lines (94 loc) · 3.53 KB

Arquitectura de la aplicación de PCFactory

Arquitectura de la aplicación

Frontend

React o Vue.js: Se utilizará un framework de frontend moderno para el desarrollo de la aplicación web. Se utilizará React o Vue.js, ya que son los frameworks más populares y con mayor soporte en la actualidad.

Backend

Node.js con Express: Se utilizará Node.js como entorno de ejecución para el backend de la aplicación. Se utilizará Express como framework web para el desarrollo de la API RESTful.

Base de datos

PostgreSQL: Se utilizará PostgreSQL para gestionar la información de productos, clientes,pedidos e inventario.

Infraestructura

EC2 de AWS: Se utilizará Amazon EC2 para alojar la aplicación web y la base de datos en la nube. EC2 proporciona una infraestructura escalable y segura para ejecutar aplicaciones web de alta disponibilidad.

Diagrama de arquitectura

Diagrama de Contexto

@startuml
title Diagrama de Contexto

actor Cliente as cliente
actor Vendedor as vendedor

cliente --> (Aplicación Web PCFactory) : Realiza compras
vendedor --> (Aplicación Web PCFactory) : Gestiona ventas y pedidos

(Aplicación Web PCFactory) --> (API PCFactory) : Solicitud de datos
(API PCFactory) --> (Base de Datos) : Consultas/Inserciones de productos, clientes y pedidos

@enduml

Diagrama de Contenedores

@startuml
title Diagrama de Contenedores

actor Cliente as cliente
actor Vendedor as vendedor

node "Cliente" {
    [Navegador Web] --> [Aplicación Web (React o Vue.js)] : HTTP/S
}

node "Backend" {
    [API REST (Node.js con Express)] --> [Base de Datos (PostgreSQL)] : Consultas SQL
}

cloud "AWS EC2" {
    [Aplicación Web (React o Vue.js)] --> [API REST (Node.js con Express)] : HTTP/S
    [API REST (Node.js con Express)] --> [Base de Datos (PostgreSQL)] : Conexión SQL
}

cliente --> [Navegador Web] : Interacción de usuario
vendedor --> [Navegador Web] : Gestión de ventas e inventario

@enduml

Diagrama de Componentes

@startuml
title Diagrama de Componentes

node "Frontend (Aplicación Web)" {
    [Navegador Web] --> [Frontend (React/Vue.js)] : Realiza solicitudes HTTP/S
}

node "Backend (API REST)" {
    [API Gateway (Express)] --> [Controlador de Productos] : Gestiona productos
    [API Gateway (Express)] --> [Controlador de Clientes] : Gestiona clientes
    [API Gateway (Express)] --> [Controlador de Pedidos] : Gestiona pedidos

    [Controlador de Productos] --> [Servicio de Productos] : Lógica de negocio
    [Controlador de Clientes] --> [Servicio de Clientes] : Lógica de negocio
    [Controlador de Pedidos] --> [Servicio de Pedidos] : Lógica de negocio

    [Servicio de Productos] --> [Base de Datos (PostgreSQL)] : Consultas SQL
    [Servicio de Clientes] --> [Base de Datos (PostgreSQL)] : Consultas SQL
    [Servicio de Pedidos] --> [Base de Datos (PostgreSQL)] : Consultas SQL
}
@enduml

Diagrama de Código

@startuml
title Diagrama de Código

package "Controlador de Productos" {
    class ProductosController {
        + getAllProducts()
        + getProductById(id)
        + createProduct(data)
    }
}

package "Servicio de Productos" {
    class ProductosService {
        + findAllProducts()
        + findProductById(id)
        + saveProduct(data)
    }
}

package "Repositorio" {
    class ProductRepository {
        + executeQuery(query)
    }
}

ProductosController --> ProductosService : Llama métodos de servicio
ProductosService --> ProductRepository : Ejecuta consultas a la base de datos

@enduml