Simulação completa de um ciclo de vida de dados: da geração e ingestão à visualização.
Este projeto demonstra a construção de um pipeline de dados (ETL) integrado a um banco de dados em nuvem (Neon Tech) e um frontend interativo para análise de KPIs. O foco principal é a integração segura de componentes e a visualização de métricas em tempo real.
O sistema opera em três estágios distintos, garantindo a separação de responsabilidades entre a geração, o processamento e a apresentação dos dados.
graph TD;
A[🏭 leads.py] -->|Gera Mock Data| B(Arquivo Local);
B --> C{⚙️ etl_carga.py};
C -->|Extract & Transform| D[Tratamento de Dados];
D -->|Load| E[(☁️ Neon PostgreSQL)];
E <-->|Query SQL| F[📊 app_unificado.py];
F -->|Renderiza| G[Frontend Streamlit];
- Geração de Dados (
leads.py): Script python que cria massa de dados fictícia, simulando diversas fontes de tráfego e geolocalizações. - Pipeline ETL (
etl_carga.py):- Extract: Captura os dados brutos.
- Transform: Normaliza strings, trata valores nulos e valida tipos de dados.
- Load: Conecta-se de forma segura ao PostgreSQL e insere os dados na tabela consolidada
all_leads.
- Visualização (
app_unificado.py): Interface desenvolvida em Streamlit que consome os dados diretamente do banco, garantindo que as métricas de "Total Leads" e "Top Locations" estejam sempre atualizadas.
- ✅ Conexão Segura: Utilização de variáveis de ambiente para proteger credenciais do banco.
- ✅ ETL Automatizado: Script único para limpeza e carga de dados.
- ✅ Dashboard Interativo: Filtros e gráficos dinâmicos usando Plotly.
- ✅ Cloud Database: Integração real com PostgreSQL hospedado na Neon Tech.
- Linguagem: Python
- Banco de Dados: PostgreSQL (Neon Tech)
- Bibliotecas Principais:
pandas(Manipulação de dados)psycopg2(Driver PostgreSQL)streamlit(Frontend)plotly(Visualização)python-dotenv(Segurança/Env vars)
Siga os passos abaixo para configurar o ambiente localmente.
git clone [https://github.com/SEU-USUARIO/NOME-DO-REPO.git](https://github.com/SEU-USUARIO/NOME-DO-REPO.git)
cd NOME-DO-REPO# Criação do venv
python -m venv venv
# Ativação (Windows)
.\venv\Scripts\activate
# Ativação (Linux/Mac)
source venv/bin/activatepip install -r requirements.txt.env na raiz do projeto seguindo o modelo abaixo:
Arquivo .env:
DATABASE_URL=postgresql://seu_usuario:sua_senha@endpoint-do-neon.tech/neondb(Consulte o arquivo .env.example para referência)
Se for a primeira execução, popule o banco de dados:
# 1. Gerar dados falsos
python leads.py
# 2. Executar o ETL (Carga no Banco)
python etl_carga.pystreamlit run app_unificado.pyEste projeto foi desenvolvido com foco em segurança de aplicação:
- Segregação de Credenciais: Nenhuma senha é "hardcoded" no código fonte.
- Tratamento de Erros: O dashboard possui tratativas
try/exceptpara falhas de conexão, evitando exposição de stack traces sensíveis ao usuário final. - Validação de Dados: Verificação de integridade antes da inserção no banco SQL.
Desenvolvido para fins de estudo em Data Engineering e AppSec.
Dashboard com os leads gerados vindos de diversas fontes.
