Requisitos Não Funcionais - ViniciusCasturino/Imperium-Remoto-B GitHub Wiki
Os requisitos não funcionais descrevem as restrições e qualidades do sistema Imperium Remoto, abrangendo aspectos como desempenho, segurança, usabilidade e compatibilidade. Esses requisitos garantem que o sistema funcione de maneira confiável, segura e com boa experiência para o usuário.
- Desempenho O aplicativo deve carregar a lista de produtos em menos de 2 segundos em redes 4G ou Wi-Fi.
O tempo de resposta da API deve ser inferior a 500ms em 95% das requisições.
A finalização do pedido (checkout) deve ser concluída em menos de 5 segundos.
- Escalabilidade A arquitetura deve permitir escalar horizontalmente o backend para suportar aumento de usuários e requisições simultâneas.
A base de dados deve estar preparada para crescer conforme o aumento do catálogo de produtos e número de pedidos.
- Segurança Os dados sensíveis do usuário (como senha e informações de pagamento) devem ser criptografados.
O acesso à API deve ser controlado via JWT (JSON Web Token).
O sistema deve estar protegido contra ataques comuns, como SQL Injection, XSS e CSRF.
A senha deve ser armazenada usando algoritmo de hash seguro (ex: BCrypt).
- Usabilidade A interface do aplicativo deve ser intuitiva e acessível, mesmo para usuários com pouca familiaridade com tecnologia.
Deve haver feedback visual imediato para ações do usuário (ex: loading, erro, sucesso).
O app deve seguir padrões de design responsivo, adaptando-se a diferentes tamanhos de tela.
- Confiabilidade O sistema deve estar disponível no mínimo 99% do tempo em um mês.
Operações críticas (como pagamento e criação de pedido) devem ser à prova de falhas, com tratamento de exceções e tentativas de repetição.
- Portabilidade O aplicativo deve funcionar corretamente nas principais versões de Android (10+) e iOS (13+).
O sistema deve estar preparado para ser implantado em diferentes ambientes de hospedagem (local, nuvem, containers).
- Manutenibilidade O código deve seguir boas práticas de desenvolvimento (Clean Code, SOLID).
Deve existir uma separação clara entre camadas de apresentação, lógica e dados.
O sistema deve permitir fácil extensão de novas funcionalidades, como novos métodos de pagamento ou categorias de produto.
- Compatibilidade O app deve ser compatível com:
Dispositivos Android (Samsung, Motorola, Xiaomi, etc.)
Dispositivos iOS (iPhone e iPad)
A API deve seguir os padrões REST para permitir fácil integração com futuros clientes (ex: painel administrativo web).