Pasta local do projeto: JERR_BIG-DATA
Pequeno projeto para rodar o ETL que você enviou, sem dependências do Google Colab. Inclui:
etl.py— script CLI com funções de leitura, limpeza e agregação; gera CSVs de saída.app.py— app web em Streamlit para upload dos arquivos, execução do ETL e download dos CSVs gerados.requirements.txt— dependências mínimas.
Se prefere uma forma rápida e automática, execute:
./run.shSe desejar expor o app na rede (por exemplo em uma LAN ou servidor público) mantendo o código e a estrutura em modo somente leitura para outros usuários, siga os passos abaixo.
- Torne o app público (bind em 0.0.0.0) e proteja com autenticação:
# Iniciar em modo público (o app ficará acessível em todas as interfaces)
PUBLIC_MODE=1 ./run.sh- Ajuste permissões para deixar arquivos do projeto legíveis (somente leitura para outros) e proteger diretórios sensíveis:
# Executar script que aplica permissões seguras
./make_public_readonly.sh- Recomendado (IMPORTANTE para produção):
- Coloque o app atrás de um reverse-proxy (nginx/caddy) e habilite HTTPS/TLS.
- Configure firewall para limitar IPs que podem acessar o serviço.
- Não compartilhe
.secrets/credentials.json; ele permanece protegido (modo 600).
Com essa configuração:
- O app exige login (
Jerr+ sua senha) para executar funcionalidades. - Usuários externos poderão acessar a interface e executar o app (se autenticados), mas não poderão alterar os arquivos do projeto (apenas leitura).
- Diretórios sensíveis (
.secrets,secure_uploads,logs) têm permissões restritas (700).
Este script irá:
- ✓ Criar ambiente virtual (se necessário)
- ✓ Instalar todas as dependências
- ✓ Abrir o navegador automaticamente em http://localhost:8501
- ✓ Iniciar o app Streamlit
Pronto em 1 linha!
python -m venv .venv
source .venv/bin/activatepip install -r requirements.txtstreamlit run app.pypython etl.py --product caminho/produto.csv --date caminho/date.csv --output resultados- O app aceita upload de arquivos locais (ou arquivos arrastados) e processa no ambiente local — não envia dados a terceiros.
- Os CSVs gerados estão em UTF-8, separador
,(compatível com pandas e Excel/LibreOffice). Se preferir;altere o código emaggregate_and_save.
- Adicionar testes unitários simples para as funções de limpeza.
- Estender o app com filtros interativos, exportes em Excel e gráficos mais avançados.
Se preferir executar o app em um container (evita instalação local de dependências e garante ambiente reprodutível), use o Dockerfile incluído.
docker build -t etl-vendas:latest .docker run --rm -p 8501:8501 -v "$PWD/streamlit_output":/app/streamlit_output etl-vendas:latestObservações:
- O comando acima monta a pasta local
streamlit_outputdentro do container para persistir os CSVs gerados. - Use
--rmpara remover o container quando ele for parado. - Se estiver em Windows PowerShell, ajuste a sintaxe do caminho do volume.
.gitignore— para evitar subir outputs e dependências.LICENSE— licença MIT incluída.scripts/init_github.sh— script opcional para inicializar o repositório e empurrar para o remoto.run.sh— script para executar o app com uma linha (instala deps + abre navegador).create_release.pyecreate_release.sh— scripts para criar Release no GitHub.
Para garantir que o arquivo zip_Jerr.js não foi corrompido durante o download:
Linux/Mac:
sha256sum -c zip_Jerr.js.sha256Windows (PowerShell):
certUtil -hashfile zip_Jerr.js SHA256Se o checksum corresponder, o arquivo está íntegro e pronto para uso/análise.
MIT License — veja LICENSE para detalhes.