Ir para o conteúdo

Requisitos

Objetivo

O CarFlow é um sistema de captura e consulta de preços de veículos (tipo FIPE).
A solução contempla o processo completo (cadastros, roteiros, coleta e aprovação), porém a implementação (build) foca em: - Consulta Pública (sem login)
- Batch mensal de consolidação de médias - Registro de log de consultas (sem dados pessoais)


Atores e papéis

Papéis do sistema (visão completa)

  • Administrador: gerencia usuários e perfis
  • Gerente: gerencia dados globais (marcas/modelos e demais cadastros globais)
  • Coordenador: define roteiro semanal e aprova coletas/lojas na sua região
  • Pesquisador: realiza coleta em lojas e pode sugerir novas lojas
  • Lojista: solicita cadastro da própria loja
  • Usuário Público: consulta preço médio consolidado (sem login)
  • Sistema (Batch): processa coletas aprovadas e consolida médias mensais

Matriz de permissões (resumo)

Papel Ações principais Implementação
Administrador Cadastrar/editar/inativar usuários Spec-only
Gerente Gerenciar marcas/modelos e dados globais Spec-only
Coordenador Definir roteiro semanal, aprovar coletas e lojas Spec-only
Pesquisador Registrar coletas, sugerir lojas Spec-only
Lojista Solicitar cadastro de loja Spec-only
Usuário Público Consultar preços consolidados (marca→modelo→ano) Build
Sistema (Batch) Consolidar médias mensais Build

Observação: papéis Spec-only serão detalhados por fluxos/diagramas e wireframes, mas não serão implementados como telas/CRUD completos.


Regras de negócio (versão 1)

Consulta pública (US07)

  • A consulta deve permitir filtros em cascata: Marca → Modelo → Ano-modelo.
  • O resultado deve exibir valor consolidado e mês de referência.
  • A consulta não exige login.
  • O sistema deve armazenar o log de consulta para análise posterior, sem dados pessoais.

Consolidação mensal (US08)

  • O batch considera coletas aprovadas dentro do período mensal.
  • Consolida valores por: (marca, modelo, ano-modelo, mês de referência).
  • Gera tabela otimizada para leitura na consulta pública (ex.: monthly_averages).
  • Tratamento de outliers: definido na seção de Technical Design (inicialmente pode ser simples e documentado).

Spec-only (não implementadas)

  • US01 — Administrador: Gestão de usuários (cadastrar/editar/inativar)
  • US02 — Gerente: Gestão de marcas/modelos e dados globais
  • US03-A — Lojista: Solicitar cadastro de loja
  • US03-B — Coordenador: Aprovar solicitações de lojas
  • US04 — Coordenador: Definição de roteiro semanal por região
  • US05 — Pesquisador: Coleta de preços em loja
  • US06 — Coordenador: Validação/aprovação de coletas
  • US09 — Pesquisador: Sugestão de nova loja

Build (implementadas)

  • US07 — Usuário público: Consulta de preços consolidados (sem login)
  • US08 — Sistema: Batch mensal de cálculo e consolidação de médias

Requisitos não-funcionais (NFR) – mínimo

  • Rastreabilidade: artefatos (BPMN/ERD/C4/TD) versionados no repositório e referenciados na documentação.
  • Observabilidade: registrar logs de consulta (sem dados pessoais).
  • Reprodutibilidade: ambiente local via Docker Compose.
  • Qualidade: testes automatizados para lógica do batch e pipeline de CI.