Skip to content
GuilhermeRoeslerPublic

About

Auditoria de disco determinística a partir de CSV do WinDirStat — dashboard HTML com plano de ação por risco (Python).

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

Disk Audit

CI codecov PyPI Python 3.10+ License: MIT Demo

EN: Deterministic disk audit (no AI) from a WinDirStat CSV export. Produces an interactive HTML dashboard with risk-ranked cleanup candidates. UI and reports are in Brazilian Portuguese.

Auditoria de disco determinística (sem IA) a partir de export CSV do WinDirStat. Gera um dashboard HTML interativo com KPIs, gráficos e um plano de ação classificado por risco — tudo em português.

Abrir demo ao vivo → · demo local · changelog

Atenção: a ferramenta apenas recomenda ações. Nenhum arquivo é deletado automaticamente.

Disk Audit — dashboard demo

Resultado no fixture de demo

No CSV sintético (tests/fixtures/sample.csv, ~250 GB simulados), a análise encontra ~22 GB seguros para limpeza, ~44 GB em “cuidado” e ~43 GB “não tocar” (dados pessoais/sistema) — com justificativa por item (Docker, WSL, modelos LLM, Android, caches, etc.).

Por que este projeto

Disco cheio é um problema recorrente em máquinas de desenvolvimento (Docker, WSL, caches, node_modules, modelos LLM). Em vez de apagar “no feeling”, este projeto transforma um snapshot do WinDirStat em um relatório acionável: detecta candidatos, classifica risco e explica o porquê.

Demonstra:

  • Pipeline de dados tipado (pandas + regras declarativas)
  • Pacote Python instalável (diskaudit) com CLI
  • UX de relatório (Chart.js, filtros, sort, empty states)
  • Engenharia defensiva (validador de CSV, privacidade no .gitignore, testes + CI)

Fluxo

flowchart LR
  A[CSV WinDirStat] --> B[load_csv]
  B --> C[analyze]
  C --> D[find_candidates]
  D --> E[render_html]
  E --> F[Dashboard HTML]
Loading

O que faz

  • Lê um snapshot do WinDirStat e detecta automaticamente a unidade e o perfil de usuário
  • Identifica candidatos a limpeza (Lixeira, Temp, caches, Docker, WSL, jogos, etc.)
  • Classifica cada item em Seguro, Cuidado ou Não tocar
  • Exibe distribuição por pastas raiz, AppData e padrões conhecidos
  • Lista os maiores arquivos, idade por ano e top extensões

Requisitos

  • Python 3.10+
  • WinDirStat para escanear o disco e exportar CSV
  • Navegador moderno (o relatório embute Chart.js — funciona offline)

Início rápido (Windows)

  1. Escaneie a unidade no WinDirStat
  2. Exporte: File → Export → CSV (UTF-8)
  3. Salve como disk.csv na raiz deste projeto
  4. Execute:
run.bat

O script instala dependências, gera disk_report.html e abre no navegador.

Linha de comando

pip install -e .
# ou: pip install -r requirements.txt

python scripts/validate_csv.py disk.csv   # opcional, recomendado
python disk_audit.py disk.csv
# após install: disk-audit disk.csv

Abra disk_report.html manualmente se não usar run.bat.

Instalar a partir do GitHub / PyPI

pip install diskaudit
# ou, a partir do código-fonte:
pip install "git+https://github.com/GuilhermeRoesler/DiskAudit.git"
disk-audit disk.csv

Releases publicadas com tags v* disparam o workflow de publicação no PyPI (Trusted Publishing).

Uso avançado

# CSV e saída em caminhos customizados
python disk_audit.py "D:\exports\scan.csv" -o "D:\reports\auditoria.html"

# Template customizado (pasta com disk_dashboard_template.html)
python disk_audit.py disk.csv -t diskaudit/templates -o test_report.html

# Regenerar o demo do portfólio
python scripts/generate_demo.py
Argumento Padrão Descrição
csv disk.csv Caminho do CSV exportado
-o, --output disk_report.html Arquivo HTML de saída
-t, --template-dir diskaudit/templates Pasta com disk_dashboard_template.html

Formato do CSV

O export deve conter estas colunas (nomes em português, como no WinDirStat pt-BR):

Coluna Descrição
Nome Caminho completo
Arquivos Contagem de arquivos
Subdiretórios Contagem de subpastas
Tamanho Físico Bytes em disco (métrica principal)
Tamanho Lógico Bytes lógicos
Última Alteração Data de modificação

Colunas extras (ex.: Atributos) são ignoradas.

Validar CSV

python scripts/validate_csv.py disk.csv

Retorna exit code 0 se OK, 1 se inválido.

Relatório gerado

Seção Conteúdo
KPIs Total em uso, arquivos, % em Users, GB recuperáveis
Resumo executivo Principais oportunidades em linguagem natural
Gráficos Pastas raiz, AppData Local/Roaming, padrões detectados
Plano de ação Candidatos filtráveis por risco, com ação e justificativa
Top arquivos Maiores arquivos individuais
Idade por ano Distribuição temporal dos arquivos

Ordem sugerida de limpeza: candidatos Seguro → Cuidado (após confirmar que não usa) → revisar Não tocar manualmente.

Testes e qualidade

pip install -e ".[dev]"

python -m unittest discover -s tests -v
ruff check .
mypy
coverage run -m unittest discover -s tests -v
coverage report

A CI no GitHub Actions roda lint (Ruff), type-check (mypy), coverage (Codecov) e testes em Python 3.10 / 3.12 / 3.13. Tags de release v* publicam no PyPI.

Estrutura do projeto

diskaudit/                     # Pacote instalável
  analyze.py                   # CSV → métricas
  candidates.py / rules.py     # Plano de ação por risco
  rationales.py                # Justificativas
  render.py + templates/       # Dashboard HTML
  static/                      # Chart.js vendored
  cli.py                       # Entry point disk-audit
disk_audit.py                  # Shim de compatibilidade
scripts/validate_csv.py        # Validação do CSV
scripts/generate_demo.py       # Regenera examples/demo_report.html
run.bat                        # Atalho Windows
examples/demo_report.html      # Demo anonymizada
.cursor/skills/disk-audit/     # Spec canônica (examples, reference)
docs/                          # Índice + screenshots
tests/                         # Unittest + fixture CSV
.github/workflows/             # CI + Pages + PyPI

Arquivos locais (não versionados): disk.csv, disk_report.html.

Privacidade

O CSV e o relatório contêm caminhos e nomes de arquivos do seu sistema. Ambos estão no .gitignore — não faça commit desses arquivos. O demo em examples/ usa apenas dados sintéticos (TestUser).

Documentação

Licença

MIT © Guilherme Roesler

About

Auditoria de disco determinística a partir de CSV do WinDirStat — dashboard HTML com plano de ação por risco (Python).

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages