Pular para conteúdo

Arquitetura x Produto

2.3 Arquitetura x Produto

2.3.1 Metas e restrições arquiteturais

Assegurando que o produto final atenda aos requisitos não funcionais de desempenho, disponibilidade, segurança e padronização de código, as metas e restrições arquiteturiais do Aton garantem qualidade organizacional para o desenvolvimento da nossa plataforma.

As metas e restrições arquiteturais descritas a seguir definem princípios essenciais de cada tópico, assegurando que o sistema mantenha estabilidade e coerência técnica ao longo do desenvolvimento.

Categoria Meta Justificativa
Desempenho O tempo médio de resposta da API REST deve ser inferior a 500 ms para operações simples e até 2 s para consultas mais complexas (como listagem de eventos). Garante uma experiência responsiva no aplicativo móvel, evitando travamentos e lentidão perceptível para o usuário final.
Desempenho O servidor deve ser capaz de lidar com 100 requisições simultâneas sem degradação significativa. Mantém a estabilidade da API mesmo durante picos de acesso, como eventos ou atualizações em tempo real.
Disponibilidade O sistema deve atingir 99% de disponibilidade, especialmente nos módulos de autenticação e feed. A confiabilidade é essencial para garantir o acesso contínuo de usuários ao aplicativo, evitando falhas críticas.
Segurança Toda comunicação entre cliente e servidor deve ocorrer via HTTPS. Garante a confidencialidade dos dados trafegados entre o aplicativo e a API.
Segurança As senhas devem ser armazenadas com hash utilizando bcrypt. Protege credenciais de usuários contra acesso indevido em caso de vazamento de dados.
Segurança O acesso às rotas privadas deve ser controlado por autenticação JWT (JSON Web Token). Assegura que apenas usuários autenticados possam acessar recursos sensíveis.
Segurança Implementação de middlewares no Express para validação e sanitização de entradas. Evita injeções e falhas de segurança decorrentes de dados malformados.
Padrões de Codificação O código deve seguir as convenções do ESLint e Prettier definidas no monorepo. Mantém a consistência entre os repositórios e facilita a colaboração entre desenvolvedores.
Padrões de Codificação A arquitetura deve manter a separação entre rotas, controladores, serviços e repositórios. Ajuda a manter o sistema bem estruturado e simples de modificar.

Esses critérios orientam tanto o desenvolvimento do cliente móvel quanto da API central, garantindo padrões e qualidade para os usuários da aplicação.

2.3.2 Backlog do Produto (escopo do produto)

  • Funcionamento: O aplicativo Aton tem como objetivo promover a saúde e o lazer entre os estudantes da Universidade de Brasília (UnB) por meio da prática esportiva. Para isso, o sistema permite que os usuários se cadastrem e escolham entre três tipos de perfil (Jogador, Torcedor ou Atlética), definindo assim a experiência inicial dentro do aplicativo. Após realizar o login, o usuário pode visualizar informações sobre eventos, criar ou participar de partidas, seguir atléticas, criar e gerenciar times, acompanhar resultados e interagir com outros usuários por meio de curtidas e comentários em postagens de eventos e partidas.

  • Influência na Arquitetura: A arquitetura escolhida foi a Cliente-Servidor, principalmente por permitir uma melhor organização entre as camadas de interface e de negócio, além de oferecer reutilização de serviços, facilidade de manutenção do código e possibilidade de escalabilidade futura. Nesse modelo, o cliente (aplicativo mobile desenvolvido em React Native com Expo) é responsável pela interface e interação com o usuário, enquanto o servidor (implementado em Node.js, com Prisma e PostgreSQL e Express) centraliza a lógica de negócio e fornece APIs REST para comunicação com o app.

  • Dentre os requisitos que influenciaram a escolha do padrão de arquitetura:

    -Disponibilidade em dispositivos móveis (Android e iOS), facilitada pela utilização do React Native;

    -Necessidade de autenticação e gerenciamento centralizado de usuários

    -Interação constante com dados dinâmicos (eventos, times, postagens)

    -Facilidade de manutenção e evolução do sistema

    -Separação clara de responsabilidades