Visando ao desenvolvimento de um aplicativo Mobile optamos por elegir o React Native como forma de criar um aplicativo para IOS e Android, consoante requisitado pelos stakeholders do projeto. A escolha baseou-se no fato de que não temos tempó suficiente para desenvolver dois aplicativos para as duas plataformas de maneira concomitante, tendo em vista que temos somente um semestre para o desenolvivmento e a curva de aprendizado para aprender tecnologias distintas para o front-end mobile é muito maior do que utilizar o React Native com Expo por exemplo.
Para o back-end optamos por NestJS e NodeJS e TypeScript como tecnologias de desenvolvimento de código, levnando em consideração que o nosso front-end será também escrito em TypeScript e, logo, teremos mais facilidade no aprendizado de somente uma tecnologia para todo o desenvolvimento do projeto. Ademais, a curva de aprendizado e o custo de implementação de código têm a tendência de ser menor com a utilização destas tecnologias em relação à utilização de uma stack com Java e Spring Boot por exemplo.
Como ferramenta de conteinerização escolhemos o Docker para isolar nossas aplicações. Abaixo podemos visualizar o diagrama de arquitetura do projeto.
Como podemos visualizar na figura supracitada iremos utilizar os serviços EC2 (t3.small) e um repositório ECR para armazenar as imagens Docker do back-end.
Abaixo também podemos visualizar estimativa de custos criada na AWS Pricing Calculator