A norma ISO/IEC/IEEE 29148:2018 define que cada requisito deve ser
necessário, não ambíguo, verificável, consistente e rastreável. Por isso
cada linha abaixo traz um identificador, a origem e o método de verificação:
I inspeção, D demonstração, T teste, A análise.
| ID |
Requisito |
Origem |
Verif. |
| RF-01 |
O sistema deve permitir cadastro com nome, CPF/CNPJ, profissão, telefone, e-mail, senha e endereço (CEP, logradouro, número, complemento, bairro, cidade, UF). |
RegisterForm, User |
D |
| RF-02 |
O sistema deve autenticar por e-mail e senha e manter a sessão em cookie. |
Better Auth |
T |
| RF-03 |
O sistema deve permitir recuperar a senha por e-mail e redefini-la por link de uso único. |
/recover-password, /reset-password |
T |
| RF-04 |
O usuário deve poder editar profissão e telefone no perfil. |
/home/account/profile |
D |
| RF-05 |
O sistema deve exibir canais de suporte (e-mail, WhatsApp e horário). |
/home/account/support, HelpInfo |
I |
| ID |
Requisito |
Origem |
Verif. |
| RF-10 |
O usuário deve criar um rascunho informando o nome do paciente. |
CreateDraftModal |
D |
| RF-11 |
O sistema deve aceitar uma plantigrafia por pé em JPEG, PNG, WebP ou PDF de até 5 MB, em formato A4. |
PlantigraphyUpload |
T |
| RF-12 |
O sistema deve liberar os passos em sequência: plantigrafia → produto → peças → cobertura. Nota e ajuda ficam sempre disponíveis. |
Estúdio (botões desabilitados com “Finalize o passo anterior”) |
D |
| RF-13 |
O usuário deve escolher o modelo do produto, a característica e o tamanho (20 a 47). |
/studio/[id]/product |
D |
| RF-14 |
O usuário deve adicionar peças corretivas escolhendo material, tamanho e lado (ambos, direito ou esquerdo), com busca por nome. |
/studio/[id]/pieces |
D |
| RF-15 |
O usuário deve posicionar, selecionar e remover elementos sobre a plantigrafia, com zoom e recentralização. |
VectorizationCanvas (Konva) |
D |
| RF-16 |
O usuário deve escolher a cobertura: modelo, cor, característica, reforço de maciez e personalização (logo, nome do paciente, ambos ou nenhum). |
/studio/[id]/cover |
D |
| RF-17 |
O usuário deve poder registrar observações para a fábrica. |
/studio/[id]/note |
D |
| RF-18 |
O sistema deve salvar automaticamente o estado da vetorização e as imagens de criação. |
useAutoSaveVectorization, useAutoSaveCreationImages |
T |
| RF-19 |
O sistema deve exibir a parcial com itens por pé, preços, taxa de montagem e total. |
/partial/[id] |
D |
| ID |
Requisito |
Origem |
Verif. |
| RF-30 |
O usuário deve enviar rascunhos para a sacola e escolher a quantidade (1 a 10). |
/home/cart |
D |
| RF-31 |
O sistema deve aplicar cupom de desconto válido. |
POST /carts/:id/apply-coupon |
T |
| RF-32 |
O usuário deve escolher a forma de envio entre as taxas de código EN* cadastradas. |
Subtotal.tsx |
D |
| RF-33 |
O sistema deve converter a sacola em pedido e redirecionar para o checkout da InfinitePay. |
convert-to-order, create-payment-link |
T |
| RF-34 |
O sistema deve marcar o pedido como pago ao receber a notificação do gateway. |
/api/webhook |
T |
| RF-35 |
Ao confirmar o pagamento, o sistema deve gerar os PDFs de produção (informações do pedido, etiqueta de entrega, plantigrafias) e enviar o e-mail de confirmação. |
UpdateOrderStatusUseCase |
T |
| RF-36 |
O usuário deve consultar seus pedidos com status, itens, desconto e total. |
/home/orders |
D |
| ID |
Requisito |
Origem |
Verif. |
| RF-50 |
O administrador deve gerenciar acessos de administradores e usuários (suspender, excluir). |
/admin/access |
D |
| RF-51 |
O administrador deve cadastrar, ativar e desativar produtos, peças e coberturas com miniaturas, preços, tamanhos, lados e vetorização. |
/admin/products, /admin/pieces, /admin/coverages |
D |
| RF-52 |
O administrador deve alterar o status do pedido e informar envio (rastreio ou retirada). |
/admin/orders |
D |
| RF-53 |
O sistema deve enviar e-mail ao cliente a cada mudança de status. Para “Pronto”, só quando o envio for informado. |
UpdateOrderStatusUseCase |
T |
| RF-54 |
O administrador deve gerenciar taxas, itens de suporte, documentos, slide show e cupons. |
/admin/miscellaneous |
D |
Os valores-alvo vêm do plano de qualidade do projeto. São metas, não
medições: a coluna Situação diz o que já existe para verificá-las.
| ID |
Atributo (ISO 25010) |
Requisito |
Situação |
| RNF-01 |
Disponibilidade |
≥ 99% ao mês. |
Health check no Coolify (/api/health); sem monitor externo configurado no repositório. |
| RNF-02 |
Eficiência |
p95 ≤ 100 ms nas rotas de leitura da API. |
Sem medição automatizada. |
| RNF-03 |
Eficiência |
Estúdio fluido: ≥ 30 FPS ao arrastar elementos. |
Sem medição automatizada. |
| RNF-04 |
Manutenibilidade |
Cobertura de testes ≥ 70% nos módulos de negócio. |
31 arquivos de teste no monorepo; cobertura não publicada no pipeline. |
| RNF-05 |
Segurança |
Sessão em cookie HttpOnly/Secure; senhas com hash; rotas administrativas restritas a role=admin. |
Parcial: ver Riscos. |
| RNF-06 |
Usabilidade |
Interface utilizável em celular a partir de 375 px de largura. |
Navegação inferior mobile-first; estúdio com problemas de corte em 375 px. |
| RNF-07 |
Portabilidade |
Implantação sem provedor de nuvem proprietário (VPS + Coolify). |
Atendido. |
| RNF-08 |
Conformidade |
Tratamento de dados pessoais (CPF, endereço, nome do paciente) de acordo com a LGPD. |
Sem política documentada no repositório. |