Diagramas arquitectura semana 4 - martin-hendricks/MISO-PROYECTO-FINAL-SOLVENTA GitHub Wiki
🖼️ Diagramas de arquitectura — Semana 4
Diagramas embebidos de las tres vistas actualizadas (funcional, despliegue, información). Si el embebido no se ve bien en tu navegador (los SVG grandes a veces se recortan en la vista de wiki), usa el link "Abrir el SVG completo" debajo de cada uno para verlo en tamaño real con zoom/scroll.
- Vista funcional — Modelo de componentes
- Vista de despliegue — AWS
- Vista de información — Modelo de datos
- Arquitectura del portal web (MVVM)
- Arquitectura del cliente móvil (Android)
Vista funcional — Modelo de componentes
Incluye Consentimiento conectado a los adaptadores de datos externos, el Dominio · Transversal (Documentos, Analítica, Notificaciones) separado de Venta y Operación, e interfaces nombradas (ICotizacion, IPerfilamiento, IPublicacion, ISuscripcion, etc.).
Abrir el SVG completo: files/DiagramaComponentesSolventa.svg
Vista de despliegue — AWS
VPC con subred pública (ALB, WAF, CloudFront) y subredes privadas multi-AZ (EKS con grupos de escalado independientes, RDS PostgreSQL Multi-AZ, ElastiCache Redis, MSK/Kafka), más KMS y Secrets Manager para gestión de credenciales.
Abrir el SVG completo: files/DiagramaDespliegueSolventa.svg
Vista de información — Modelo de datos
Modelo entidad-relación por microservicio (ms_identidad, ms_consentimiento, ms_cotizacion, ms_perfilamiento, ms_suscripcion, ms_polizas, ms_siniestros, ms_pagos, ms_parametrico, ms_socios, analitica, notificaciones), con claves foráneas cruzando límites de servicio donde aplica.
Abrir el SVG completo: files/ModeloDatosSolventa.svg
Arquitectura del portal web (MVVM)
| Proyecto | Solventa — Aseguradora digital |
| Vista | Desarrollo / capas |
| Modelo | Patrón MVVM del portal web (Angular) |
| Alcance | Solo el canal web (SPA Angular). No cubre el cliente móvil, el BFF ni los microservicios. |
Diagrama de componentes del portal web Angular: View (componentes standalone, sin lógica de negocio) → ViewModel (estado observable con signals, expone loading / ready / degraded / error) → Model (dominio puro, casos de uso y puertos, arquitectura hexagonal en el front). Cada uno de los cinco recorridos críticos (cotización, suscripción y emisión, perfilamiento hipotecario, siniestro asistido, ciclo de vida de póliza) es un feature module con lazy loading.

Abrir en tamaño completo: files/Diagram-web/solventa-portal-web-mvvm.png · Fuente PlantUML: files/Diagram-web/solventa-portal-web-componentes_1.puml · Documento completo (razonamiento, código de ejemplo, convenciones de carpetas, riesgos): files/Diagram-web/mvvm-portal-web-solventa_1.md
Arquitectura del cliente móvil (Android)
| Proyecto | Solventa — Aseguradora digital |
| ID | VC-005 |
| Elaboración | Juan Acevedo, John Guerrero, Mauricio Rodriguez, Martin Romero |
| Versión | 1.0 |
| Vista | Desarrollo / capas |
| Modelo | Capas del cliente Android (Clean Architecture + MVVM + Repository) |
Diagrama de capas en tiempo de ejecución de la app Android (Kotlin / Jetpack). No describe el sistema Solventa completo: cubre el canal móvil (login, póliza, siniestro con evidencia, pagos y renovación) y cómo el cliente se conecta al Mobile BFF y a Room en modo offline-first. El bloque Identidad (derecha) concentra biometría, tokens y el interceptor JWT.
Capas (izquierda → derecha)
| Capa | Responsabilidad |
|---|---|
| Presentation (Jetpack + MVVM) | MainActivity y fragments (LoginFragment, DetalleFragment, PagoFragment, RenovacionFragment) observan ViewModels (StateFlow / LiveData / UiState). Push vía FCM. El ViewModel invoca casos de uso; no habla con red ni con Room. |
| Domain | Casos de uso (EntrarAlSistema, ReportarSiniestro, ValidarCodigos, ConsultarPagos, RenovarPoliza, SincronizarUsuario) y contratos de repositorio (Póliza / Siniestro / Pago). Sin APIs de Android. |
| Data (Repository) | *RepositoryImpl orquesta remoto vs local: Retrofit y DTO → Mobile BFF; DAOs → Room (SQLite). WorkManager encola evidencia diferida. |
| Identidad | BiometricPrompt (huella / rostro; fallback PIN) desbloquea la sesión en el dispositivo. TokenStore (DataStore / EncryptedPrefs) y AuthInterceptor (OkHttp) inyectan JWT solo en APIs protegidas. Login y refresh no llevan access token; Room y Push no pasan por el interceptor. El JWT se valida en el BFF. |
Abrir el SVG completo: images/android-arquitectura-runtime.svg