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.

  1. 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.

  1. 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.

  1. 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).

  1. 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.

  1. 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.

  1. 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).

  1. 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.

  1. 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).