Modelo de componentes S1 - JohannPaezU/MISW4501-MediSupply GitHub Wiki

Modelo de Componentes

Web App Angular

  • Responsabilidades: UI de backoffice y portal cliente: pedidos, inventario, rutas/ETA, devoluciones, visitas comerciales, reportes básicos.

  • Interfaces (consume): REST (API Gateway)

  • Datos: estado UI local

  • SLO: TTI < 3s en 4G; vistas críticas < 1s tras datos.

Mobile App Kotlin

  • Responsabilidades: ventas en campo, evidencias (fotos), confirmación entregas, tracking.

  • Interfaces: REST (API Gateway)

  • SLO: latencia percibida sub-500ms para tracking.

  • Seguridad: OAuth2/OIDC; Signed URLs para medios.

API Gateway (GCP)

  • Responsabilidades: entrada única, auth, rate limit, roteo, validación de esquemas.

  • provee: API REST público.

  • requiere: API REST de cada MS.

  • SLO: ≥99.95% disponibilidad.

  • Seguridad: JWT verificación, scopes por ruta.

  • Escalado: autoscaling gestionado.

Ventas MS

  • Responsabilidades: ciclo de vida de Pedido, DetallePedido, Pago (parte negocio), integración con pasarela, facturación básica.

  • provee: API REST /api/ventas

Inventarios MS

  • Responsabilidades: stock multi-bodega, lotes, vencimientos; reservas y liberaciones; relación Producto–Inventario.
  • Provee: API REST /api/inventarios

Compras MS

  • Responsabilidades: proveedores, portafolio, órdenes de compra, certificados sanitarios.

  • Provee: REST /api/compras

Logística & Ruteo MS

  • Responsabilidades: Ruta, asignación de Vehículo, ETA, optimización (Directions/Distance Matrix + OR-Tools), confirmación de entrega.

  • Provee: API REST /api/logistica

IoT Telemetry MS

  • Responsabilidades: ingestión y normalización de SensorIoT (GPS/temperatura), alertas cadena de frío.

  • Provee: API REST /api/iot (consulta) + suscripción Pub/Sub de dispositivos/bridge.

Notificaciones MS

Responsabilidades: email/SMS/push para eventos (pedido creado, alerta cadena frío, entrega confirmada).

Provee: API REST /api/notificaciones + consumidores Pub/Sub.

Pagos Adapter

  • Responsabilidades: integración con pasarela (tokens, intents, confirmaciones).

  • Provee: API REST /api/pagos/callback

  • Eventos Pub/Sub:

  • Publica: payment.approved, payment.rejected

  • Escalado: por picos de cobro.

Cloud SQL (PostgreSQL)

  • Responsabilidades: almacenamiento transaccional; schemas por servicio.

  • Provee: conexión SQL privada.

  • SLO: HA; RPO≈0, RTO<6h con réplicas cross-region.

Cloud Storage

  • Uso: evidencias (fotos de entrega/devolución), documentos regulatorios.

  • Acceso: Signed URLs; ciclo de vida/retención configurados.

Diagrama en HD: https://github.com/user-attachments/assets/2886ff94-1388-499b-a06b-b672e93c0fa1