Gestão do Projeto e Backlog¶
Este documento detalha a evolução cronológica do Data Profiler, cobrindo desde o core matemático até a entrega da versão Enterprise e visões de futuro.
📅 Backlog Cronológico (Milestone 1)¶
Fase 1: Fundação & Infraestrutura¶
Fase focada em fazer o sistema funcionar, ser resiliente e processar dados em streaming para evitar OOM (Out of Memory).
Sprint 0: O Core Lógico (A Matemática)¶
- Task 0.1 (InferType): Detetive de Tipos com Regex (Int, Float, String).
- Task 0.2 (StatsCalc): Calculadora estatística (Média, Min, Max).
- Task 0.3 (AnalyzeColumn): Analista síncrono para contagem de nulos.
Sprint 1: O MVP "Happy Path"¶
- Task 1.1: Leitura de CSV com
ReadAll(Carregamento total na RAM). - Task 1.2: Servidor HTTP Básico síncrono.
- Task 1.3: Frontend MVP com CSS Artesanal.
Sprint 2: Resiliência HTTP¶
- Task 2.1 (Timeouts): Configuração de
ReadTimeouteWriteTimeoutno servidor. - Task 2.2 (CORS): Middleware para comunicação Frontend (5173) <-> Backend (8080).
- Task 2.3 (Context): Timeout lógico para cancelamento de requests longos.
Sprint 3: Arquitetura Go Way (Streaming)¶
- Task 3.1 (Pipeline): Substituição por leitura linha-a-linha via
Channels. - Task 3.2 (Accumulator): Cálculo estatístico sem histórico (Stream).
- Task 3.3 (Async): Processamento em background (
goroutines). - Task 3.4 (Sniffer): Detecção automática de Encoding e Separadores.
Fase 2: Robustez & Engenharia¶
Esta fase transforma o script funcional em um software de engenharia robusta, focado em observabilidade e controle de recursos.
Sprint 4: Robustez & Backend Engineering :material-server-network¶
Foco: Estabilidade e Observabilidade
Preparar o motor para suportar carga pesada e ser auditável.
- Task 4.1 (Observabilidade): Migração para
log/sloge Baseline de memória compprof. - Task 4.2 (Gestão de Memória): Implementação de
sync.Poolpara redução de GC. - Task 4.3 (Lifecycle): Graceful Shutdown e cancelamento via
Context. - Task 4.4 (Fuzzing): Testes de estresse com dados aleatórios na inferência.
Sprint 5: Lógica de Negócio & Dados :material-database-search¶
Foco: Regras de Negócio Logísticas
Implementar as regras que geram valor para o cliente (SLA, Sujeira, Idempotência).
- Task 5.1 (Dirty Data): Tratamento de linhas irregulares e suporte a
.jsonl. - Task 5.2 (SLA Logístico): Regex para CEP, CNPJ, Placas e Score de Qualidade.
- Task 5.3 (Estatística Stream): Reservoir Sampling (Preview) e Histogramas em streaming.
Fase 3: Experiência & Entrega¶
Foco na usabilidade profissional e empacotamento para distribuição.
Sprint 6: Frontend Enterprise (Material UI) :material-monitor-shimmer¶
Foco: UX Profissional
Substituição do CSS artesanal por componentes de dados robustos.
- Task 6.1 (Validação): Bloqueio de extensões/tamanhos e Drag Zone ativa.
- Task 6.2 (Real-Time): Feedback de progresso via Server Sent Events (SSE).
- Task 6.3 (MUI Migration): Refatoração para Material UI e uso de
DataGrid. - Task 6.4 (Dashboards): Gráficos estatísticos e Cards de SLA visual.
Sprint 7: Packaging & DevOps :material-package-variant¶
Foco: Deploy em Arquivo Único
Gerar um artefato final fácil de executar em qualquer ambiente.
- Task 7.1 (Single Binary): Embed do React dentro do binário Go.
- Task 7.2 (CLI & Benchmark): Modo terminal e validação do desafio 10GB/512MB.
- Task 7.3 (Docker): Dockerfile Multi-stage e Makefile de automação.
- Task 7.4 (Deploy): Fazer deploy do docker multi-stage do single-binary no Render.
- Task 7.5 (Documentação): Fazer a organização e documentação do que foi feito.
- Task 7.6 (Ghost Mode): Flag
windowsguipara rodar como serviço oculto.
🐛 Histórico de Bugs Resolvidos¶
Registro de problemas técnicos identificados e solucionados durante o desenvolvimento da Milestone.
| ID | Problema | Solução Aplicada | Status |
|---|---|---|---|
| Bug-01 | O "Fantasma" do JSON: Nome do arquivo antigo persistia após novo upload. | Limpeza de estado fileName no reset do componente. | |
| Bug-02 | Erro no "Catálogo de Cursos": Falha ao processar CSV específico. | Ajuste no SmartReader para encoding e delimitadores. |
🔮 Futuro (Milestones 2 e 3)¶
Backlog de itens para análise pós-release da versão 1.0.
🛠️ Dívida Técnica & Refatoração¶
- Task 8.1 (Config Central): Centralizar "Magic Numbers" e ENVs em pacote
internal/config. - Refactor (Multipart): Migrar de buffer em disco para streaming de rede (apenas se latência for crítica).
- DevEx: Configurar
go fmtego raceno pipeline de CI/CD.
✨ Novas Features (Roadmap)¶
- Persistência: Banco de dados (SQLite/Postgres) para histórico de análises.
- Cardinalidade: Algoritmo HyperLogLog para contagem de únicos em Big Data.
- Webhooks: Notificação passiva para sistemas externos.
- Exportação: Gerar relatórios em PDF/HTML estático.
🧪 Pesquisa & Inovação¶
Ideias de Expansão
- Módulo Educacional: Exibir fórmulas estatísticas (Desvio Padrão, Variância) ao clicar nos dados, servindo como ferramenta de ensino.
- Engenharia Reversa: Analisar padrões de PII (Dados Sensíveis) da lib Capital One DataProfiler.
- Contexto Logístico: Mapear validações específicas de transporte (Tempo Certo).