Restricciones de tecnología - alejofig/proyecto_1 GitHub Wiki

  • Para el backend de la aplicación, el IDE a ser utilizado puede ser elegido por el desarrollador y algunas opciones pueden ser Visual Studio o PyCharm. El lenguaje de programación debe ser Python de forma exclusiva.
  • Para la aplicación móvil, el IDE a ser utilizado debe ser Android Studio y el lenguaje de programación debe ser Kotlin.
  • Para la aplicación web, el IDE puede ser elegido por el desarrollador, sin embargo algunas opciones disponibles pueden ser Visual Studio o WebStorm. El lenguaje de programación debe ser Angular y Typescript.
  • Se sugiere usar FastAPI como marco para la creación de los API en RESTful para Python, sin embargo el grupo de desarrolladores pueden usarlo o elegir otra herramienta de acuerdo con su conveniencia y experiencia.
  • Para los servicios de la nube, el proveedor de nube debe ser AWS de forma exclusiva, y todos los servicios deben estar alojados en una misma cuenta y en lo posible bajo el modelo Free Tier, pero esto no es exclusivo. Nota: El equipo asume los cobros generados por la infraestructura desplegada.
  • La base de datos de la nube a ser usada debe ser relacional, sugiriendo el uso del servicio de RDS de forma exclusiva. Para las pruebas locales, el uso de bases de datos relacionales también debe ser exclusivo, sugiriendo el uso de MySQL o PostgreSQL.
  • Los despliegues de la aplicación pueden ser mediante contenedores, pero no es obligatorio; para esto se sugiere el uso de Docker y el servicio de ECR en AWS. El uso de Kubernetes es opcional y está ligado al enfoque del desarrollo de la aplicación.
  • Para los despliegues de la infraestructura, esta puede ser desplegada bien sea de forma manual mediante la consola de AWS para cada servicio o usando alguna herramienta de IaC como Terraform. Si se decide usar Terraform, la licencia debe ser Open Source de forma exclusiva, descartando el uso de Terraform Enterprise.
  • Se debe desarrollar un cliente móvil y un cliente web para la aplicación.
  • Para el uso de los repositorios de código, el sistema de control de versiones a ser utilizado debe ser Github de forma exclusiva.
  • Para los despliegues de la infraestructura, se debe usar Github Actions para la configuración de los pipelines de los respectivos despliegues, garantizando el proceso de CI/CD.
  • En el escenario de que se desee implementar monitoreo de la aplicación, esta debe ser configurada en Datadog o Grafana.
  • Para el desarrollo del prototipado UX de las aplicaciones web y móvil, se va a hacer uso de la herramienta Figma.