O software será desenvolvido utilizando a arquitetura Rest. Dessa forma, o usuário terá acesso á aplicação através do aplicativo desenvolvido em React Native.
O aplicativo terá acesso à nossa API, que estará disponível via EC2 na AWS.
Os aplicativos terão seu deploy feito utilizando PM2, que orquestrará as instâncias da aplicação NodeJS. Em sua frente, teremos um proxy reverso utilizando o NGINX que servirá de Load Balancer para as mesmas.
As instâncias terão acesso ao banco de dados PostgreSQL que estará disponível através do serviço RDS.
O projeto foi desenvolvindo usando o Draw.io e é possível abrir o projeto usando o arquivo do proprio draw.io aqui
React Native: utilizaremos o React Native para efetuar o desenvolvimento de um sistema mobile, transformando o código em Typescript em um projeto nativo.
PostgreSQL: utilizaremos o banco de dados PostgreSQL para podermos guardar e relacionar os dados.
NestJS: utilizaremos o framework NestJS para podermos provisionar os endpoints para interação com o sistema via REST.
Nginx: utilizaremos o servidor NGINX para podermos repassar as requisições para as portas corretas e utilizarmos multiplas intancias NodeJS.
NodeJS: runtime e ecossistema principal para desenvolvimento de aplicações utilizando Typescript.
Typescript: superset criado pela microsoft que trás mais robustez ao Javascript.
A hospedagem será feita atráves de uma instância EC2 da Amazon Web Services e o banco de dados será uma instância de PostgreSQL usando o serviço RDS.
Conceituar qualidade de fato é uma tarefa complexa, mas ela pode ser vista como um método gerencial que através de procedimentos disseminados por toda a organização, busca garantir um produto final que satisfaça às expectativas dos stakeholders.
No contexto de desenvolvimento de software, qualidade pode ser entendida como um conjunto de características a serem satisfeitas, de modo que o produto de software atenda às necessidades de seus usuários. Entretanto, tal nível de satisfação nem sempre é alcançado de forma espontânea, devendo ser continuamente construído. Assim, a qualidade do produto depende fortemente do seu respectivo processo de desenvolvimento.
A norma internacional ISO/IEC 25010, que é uma atualização da ISO/IEC 9126, define oito características e 30 subcaracterísticas de qualidade para produtos de software. Com base nessas características e nas respectivas sub-características, identifique as sub-características que sua equipe utilizará como base para nortear o desenvolvimento do projeto de software considerando-se alguns aspectos simples de qualidade. Justifique as subcaracterísticas escolhidas pelo time e elenque as métricas que permitirão a equipe avaliar os objetos de interesse.
Links Úteis: