6.8 KiB
Requirements Document
Introduction
Sistema inteligente de importação de CSV que permite ao usuário mapear colunas de forma visual e memoriza as configurações para futuras importações automáticas.
Glossary
- CSV: Arquivo de valores separados por vírgula contendo dados tabulares
- Mapeamento de Colunas: Correlação entre colunas do CSV e campos do sistema
- Perfil de Importação: Configuração salva de mapeamento para um tipo específico de material
- Campo Obrigatório: Campo que deve ser preenchido para importação válida
- Campo Opcional: Campo que pode ficar vazio sem impedir a importação
- Sistema: Aplicação AÇO CALC PRO
- Usuário: Engenheiro ou técnico que importa dados de materiais
Requirements
Requirement 1
User Story: Como usuário, quero importar um CSV com qualquer estrutura de colunas, para que eu possa usar dados de diferentes fornecedores sem precisar reformatar os arquivos.
Acceptance Criteria
- WHEN o usuário seleciona um arquivo CSV, THE Sistema SHALL detectar automaticamente todas as colunas presentes
- WHEN o Sistema detecta as colunas, THE Sistema SHALL exibir uma interface de mapeamento visual
- WHEN o usuário visualiza o mapeamento, THE Sistema SHALL mostrar preview dos dados de cada coluna
- WHERE existe um perfil de importação salvo, THE Sistema SHALL aplicar o mapeamento automaticamente
- IF o CSV tem colunas não mapeadas, THEN THE Sistema SHALL permitir que o usuário as ignore ou mapeie
Requirement 2
User Story: Como usuário, quero mapear visualmente as colunas do CSV para os campos do sistema, para que eu possa garantir que os dados sejam importados corretamente.
Acceptance Criteria
- THE Sistema SHALL exibir lado a lado as colunas do CSV e os campos esperados
- WHEN o usuário arrasta uma coluna CSV, THE Sistema SHALL permitir soltar sobre um campo do sistema
- WHEN o usuário mapeia uma coluna, THE Sistema SHALL mostrar preview dos valores que serão importados
- THE Sistema SHALL destacar campos obrigatórios que ainda não foram mapeados
- WHEN todos os campos obrigatórios estão mapeados, THE Sistema SHALL habilitar o botão de importação
Requirement 3
User Story: Como usuário, quero que o sistema sugira automaticamente o mapeamento de colunas, para que eu economize tempo em importações repetitivas.
Acceptance Criteria
- WHEN o Sistema detecta colunas do CSV, THE Sistema SHALL comparar nomes com campos conhecidos
- WHEN existe similaridade entre nomes, THE Sistema SHALL sugerir mapeamento automático
- THE Sistema SHALL usar algoritmo de similaridade de strings (Levenshtein ou similar)
- WHEN o Sistema sugere mapeamento, THE Sistema SHALL permitir que o usuário aceite ou modifique
- THE Sistema SHALL considerar sinônimos comuns (ex: "diametro" = "diameter" = "diam")
Requirement 4
User Story: Como usuário, quero que o sistema memorize meus mapeamentos de colunas, para que importações futuras do mesmo tipo sejam automáticas.
Acceptance Criteria
- WHEN o usuário completa um mapeamento, THE Sistema SHALL salvar o perfil no localStorage
- THE Sistema SHALL associar o perfil ao tipo de material (cantoneiras, tubos, etc)
- WHEN o usuário importa novamente o mesmo tipo, THE Sistema SHALL aplicar o perfil automaticamente
- THE Sistema SHALL permitir que o usuário edite ou delete perfis salvos
- THE Sistema SHALL exportar/importar perfis de mapeamento em JSON
Requirement 5
User Story: Como usuário, quero validar os dados antes da importação, para que eu possa corrigir erros antes de salvar no banco de dados.
Acceptance Criteria
- WHEN o usuário mapeia as colunas, THE Sistema SHALL validar tipos de dados (números, texto)
- WHEN existe erro de tipo, THE Sistema SHALL destacar a linha com erro
- THE Sistema SHALL mostrar estatísticas de validação (X linhas válidas, Y com erro)
- WHEN o usuário confirma importação, THE Sistema SHALL importar apenas linhas válidas
- THE Sistema SHALL gerar relatório de erros com linhas que falharam
Requirement 6
User Story: Como usuário, quero converter unidades automaticamente durante a importação, para que eu possa usar CSVs com diferentes sistemas de medida.
Acceptance Criteria
- WHEN o Sistema detecta coluna numérica, THE Sistema SHALL permitir especificar unidade
- THE Sistema SHALL suportar conversões: mm↔pol, kg↔lb, MPa↔ksi
- WHEN o usuário seleciona conversão, THE Sistema SHALL aplicar fator de conversão automaticamente
- THE Sistema SHALL mostrar preview dos valores convertidos
- THE Sistema SHALL salvar preferência de conversão no perfil de importação
Requirement 7
User Story: Como usuário, quero criar campos calculados durante a importação, para que eu possa derivar dados que não estão no CSV.
Acceptance Criteria
- THE Sistema SHALL permitir criar campos calculados usando fórmulas
- WHEN o usuário cria fórmula, THE Sistema SHALL validar sintaxe
- THE Sistema SHALL suportar operações: +, -, *, /, potência, raiz
- WHEN a fórmula é válida, THE Sistema SHALL calcular valores automaticamente
- THE Sistema SHALL mostrar preview dos valores calculados
Requirement 8
User Story: Como usuário, quero categorizar automaticamente os itens durante a importação, para que eu não precise adicionar manualmente a categoria de cada item.
Acceptance Criteria
- THE Sistema SHALL permitir definir regras de categorização
- WHEN o usuário define regra, THE Sistema SHALL usar condições (SE...ENTÃO)
- THE Sistema SHALL suportar condições baseadas em valores numéricos e texto
- WHEN a regra é aplicada, THE Sistema SHALL atribuir categoria automaticamente
- THE Sistema SHALL mostrar preview das categorias atribuídas
Requirement 9
User Story: Como usuário, quero importar múltiplos CSVs de uma vez, para que eu possa atualizar todo o banco de dados rapidamente.
Acceptance Criteria
- THE Sistema SHALL permitir selecionar múltiplos arquivos CSV
- WHEN múltiplos arquivos são selecionados, THE Sistema SHALL processar em lote
- THE Sistema SHALL aplicar perfil de importação correspondente a cada arquivo
- THE Sistema SHALL mostrar progresso de importação em tempo real
- WHEN a importação em lote termina, THE Sistema SHALL gerar relatório consolidado
Requirement 10
User Story: Como usuário, quero exportar o banco de dados atual para CSV, para que eu possa fazer backup ou compartilhar dados.
Acceptance Criteria
- THE Sistema SHALL permitir exportar cada tipo de material para CSV
- WHEN o usuário exporta, THE Sistema SHALL incluir todas as colunas do banco
- THE Sistema SHALL usar formato compatível com reimportação
- THE Sistema SHALL permitir exportar todos os tipos de uma vez (ZIP)
- THE Sistema SHALL incluir metadata (data de exportação, versão)