Tecnologías a utilizar S1 - JohannPaezU/MISW4501-MediSupply GitHub Wiki

Tecnologías a utilizar

Criterios de selección

Las tecnologías se eligen considerando:

  • Cumplimiento de SLA/SLO (latencia, disponibilidad, DR < 6 h).

  • Escalabilidad para crecimiento 5 años.

  • Integración multi-país y multi-idioma.

  • Plazo fijo de 16 semanas, por lo que se priorizan soluciones maduras y con soporte cloud.

Desarrollo de la aplicación

Frontend Web

  • Framework: Angular ^17 (estable, modular y con soporte para aplicaciones complejas).

  • UI Library: PrimeNG / Angular Material para componentes reutilizables.

  • Internacionalización (i18n): ngx-translate para ES/EN.

Aplicación Móvil

  • Lenguaje: Kotlin

Backend

  • Lenguaje/Framework: Python con FastAPI para microservicios ligeros y de alto rendimiento.

  • Arquitectura: microservicios con API Gateway.

  • Autenticación/Autorización: pyJWT

  • Ruteo y mapas: API Google Maps

Base de datos

  • Principal: PostgreSQL.

  • Procesamiento de datos: Python.

Operación y despliegue

Infraestructura

  • Cloud: GCP.

  • Orquestación: Kubernetes para contenedores Docker.

  • CI/CD: GitHub Actions

  • Balanceo: Google Cloud Load Balancing

Justificación

  • Angular: garantiza rapidez en desarrollo debido a que el equipo de desarrollo ya cuenta con conocimientos en dicho framework, consistencia UI y gran escalabilidad para proyectos de gran tamaño.

  • FastAPI + microservicios: desacople, escalado independiente y facilidad de mantenimiento.

  • PostgreSQL: gran consistencia, velocidad y capacidad de manejo de grandes volúmenes.

  • Kubernetes: despliegue repetible, escalado automático y alta disponibilidad.

  • Kotlin: Garantiza rapidez en desarrollo debido a que el equipo de desarrollo ya cuenta con conocimientos en dicho lenguaje, ademas un desarrollo nativo permite una mejor maniobrabilidad y personalización a los detalles requeridos