3.8 KiB
Backlog de Features — Comparador de Notas
Features avaliadas em 03/03/2026. Organizadas por categoria e esforço estimado.
Média Prioridade
F-03 — Preview de Colunas Antes da Análise (Isso já existe?)
Problema: Erros de mapeamento de colunas (índice errado, encoding incorreto) só são descobertos depois da importação, que pode falhar silenciosamente com "0 notas válidas".
Solução: Na tela de configuração de colunas, exibir uma tabela das primeiras 5 linhas mostrando como os campos serão interpretados, com highlight em células que falhariam o parse.
Escopo técnico:
- Função
pre_visualizar(caminho, layout, n_linhas: usize) -> Vec<LinhaPreview> LinhaPreview:{ numero: Result<u64>, serie: Result<String>, valor: Result<Decimal>, ... }- Widget de tabela em
configuracao_colunas.rs - Atualizar preview ao mudar qualquer campo de configuração (via
changed())
Esforço estimado: Alto (4–6h) Impacto: Alto — reduz drasticamente "por que não importou nada?"
Observações: Verificar se já existe no codigo, pois na tela de configuração do Layout ele exibe as 5 primeiras linhas do arquivo.
F-06 — Auto-detecção de Delimitador CSV (Util)
Problema: O usuário precisa saber antecipadamente qual delimitador o arquivo usa (,, ;, \t). Arquivos gerados por diferentes sistemas variam.
Solução: Ao selecionar o arquivo CSV, amostrar as primeiras 5 linhas e contar ocorrências de cada delimitador candidato. Sugerir o mais frequente como padrão, mantendo a ComboBox editável.
Escopo técnico:
- Função
detectar_delimitador(primeiras_linhas: &[&str]) -> char - Chamar na transição para
ConfigurandoColunasquandoTipoArquivo::Csv - Pré-selecionar na ComboBox sem impedir mudança manual
Esforço estimado: Médio (2h) Impacto: Baixo-Médio — reduz um passo de configuração na maioria dos casos
Baixa Prioridade
F-07 — Auto-detecção de Encoding CSV (Util)
Problema: Arquivos gerados por sistemas legados brasileiros frequentemente usam windows-1252, mas o padrão selecionado é utf-8. O usuário descobre o problema somente ao ver caracteres estranhos nos dados.
Solução: Tentar ler as primeiras linhas em utf-8; se houver erro de decodificação, sugerir automaticamente windows-1252 com aviso visual na tela de configuração.
Escopo técnico:
- Função
detectar_encoding(caminho: &Path) -> String - Usar
encoding_rs(já dependência) para tentar decode e verificarhad_errors - Aviso na tela de configuração: "Encoding detectado: windows-1252"
Esforço estimado: Médio (2h) Impacto: Baixo — problema raro, mas confuso quando ocorre
F-09 — Paginação Automática de Faltantes no PDF (Util)
Problema: PDFs com muitos faltantes (ex: 5.000 números) geram um único bloco de texto muito longo, difícil de ler e imprimir.
Solução: No pdf_generator.rs, ao adicionar a lista de faltantes, agrupar em intervalos contíguos (usando a função agrupar_contiguos já implementada) e formatar como 100–104 (5 notas). Reduz drasticamente o tamanho do PDF e melhora legibilidade.
Escopo técnico:
- Importar
agrupar_contiguosempdf_generator.rs - Substituir o
join(", ")atual pelo formato de intervalos - Sem novas dependências
Esforço estimado: Baixo (30min) Impacto: Baixo-Médio — melhora legibilidade de PDFs com muitos faltantes
Nota: Esta feature é especialmente fácil porque a lógica de agrupamento já existe — é só aplicar no PDF.
Resumo
| ID | Feature | Esforço | Impacto | Prioridade | Status |
|---|---|---|---|---|---|
| F-03 | Preview de colunas antes da análise | Alto | Alto | Média | |
| F-07 | Auto-detecção de delimitador CSV | Médio | Baixo-Médio | Média | |
| F-08 | Auto-detecção de encoding CSV | Médio | Baixo | Baixa |