Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📊 DataPulse

Dashboard inteligente para análise de vendas e Business Intelligence.

Python Pandas SQLite Streamlit Plotly Status

📌 Descrição

DataPulse é um projeto de Dados/BI que transforma dados brutos de vendas em insights visuais e decisões de negócio. O sistema ingere um CSV, persiste em SQLite, calcula KPIs via Python/Pandas e SQL, e expõe tudo em um dashboard interativo com tema dark premium.

Desenvolvido como projeto de portfólio — DataPulse 1.0 está funcional e pronto para demonstração.

❓ Problema

Empresas acumulam planilhas de vendas mas não conseguem responder rapidamente:

  • Quanto faturamos no período?
  • O que mais vende (produto/categoria)?
  • Onde e quando vendemos melhor?
  • Quem são os melhores vendedores?

🎯 Objetivo

Construir um pipeline que calcule automaticamente:

  • Faturamento total, quantidade de vendas, ticket médio
  • Produtos/categorias mais vendidos
  • Vendas por região, período e evolução temporal
  • Dashboard interativo com filtros por categoria, região, vendedor e período

🧰 Tecnologias

  • Python 3.11 — lógica e automação
  • Pandas 2.0+ — manipulação, limpeza e agregações
  • SQL (SQLite) — persistência e consultas analíticas (queries.sql)
  • Streamlit 1.30+ — dashboard interativo
  • Plotly 5.0+ / Matplotlib — gráficos (área, pizza, barras horizontais)
  • Git & GitHub — versionamento

🏗️ Arquitetura

CSV (data/vendas.csv) → Pandas (limpeza/validação) → SQLite (data/datapulse.db)
    → KPIs (src/metricas.py + src/kpis.py) + SQL (queries.sql)
    → Streamlit (dashboard/app.py) → Plotly

📦 Dataset

  • Fonte: dataset fictício gerado para fins didáticos/portfólio
  • Arquivo: data/vendas.csv (versionado)
  • Banco: data/datapulse.db (gerado via python src/database.py, ignorado no Git)
  • Linhas: 10 vendas
  • Colunas: data, produto, categoria, quantidade, valor_unitario, valor_total, regiao, vendedor
  • Período: 2026-01-05 a 2026-02-10
  • Categorias: Eletrônicos, Móveis
  • Regiões: Sudeste, Nordeste, Sul, Centro-Oeste

📊 Principais Análises (dados reais)

Indicador Resultado
Faturamento total R$ 13.690,00
Itens vendidos 18 unidades
Ticket médio R$ 1.369,00
Qtd. vendas 10
Produto mais vendido (qtd) Mouse — 8 un.
Categoria líder (faturamento) Eletrônicos — R$ 9.290,00
Região líder Sudeste — R$ 7.300,00
Melhor vendedor Ana — R$ 7.500,00
Período 2026-01 (R$ 11.040) / 2026-02 (R$ 2.650)

Valores calculados diretamente de data/vendas.csv via src/metricas.py e validados com queries.sql.

SQL disponível em queries.sql (raiz) e src/queries.sql com 8 consultas: visão geral, faturamento por categoria/região/produto, ranking de vendedores, evolução mensal e maior venda.

📈 Dashboard

Tema dark premium (#07080D + roxo #8B5CF6 + ciano #00E5FF), com:

  • KPIs no topo: faturamento, itens vendidos, ticket médio, vendedores ativos
  • Gráfico de área: evolução do faturamento por data
  • Pizza: participação por categoria
  • Barras horizontais: faturamento por região e ranking de vendedores
  • Insights automáticos: categoria/vendedor/região líder e produto mais vendido
  • Filtros (sidebar): categoria, região, vendedor e período (date_input)
  • Tabela interativa: st.dataframe com formatação R$

Visual: .streamlit/config.toml versionado garante tema consistente.

Dashboard Prints em data/docs/img/ — capture com Win + Shift + S e salve com <1MB.

🚀 Como executar

# 1. Clone
git clone https://github.com/sabrynardev/DataPulse.git
cd DataPulse

# 2. Ambiente virtual
python -m venv venv
# Windows:
venv\Scripts\activate
# Linux/Mac:
# source venv/bin/activate

# 3. Dependências
pip install -r requirements.txt

# 4. Banco (gera data/datapulse.db a partir do CSV)
python src/database.py

# 5. Dashboard
python -m streamlit run dashboard/app.py
# ou
streamlit run dashboard/app.py

# 6. Teste rápido
python main.py

Comando oficial do dashboard: python -m streamlit run dashboard/app.py

📂 Estrutura do projeto

datapulse/
├── .streamlit/
│   └── config.toml          # tema dark premium (versionado)
├── dashboard/
│   └── app.py               # Streamlit + Plotly
├── data/
│   ├── vendas.csv           # dataset (versionado)
│   ├── datapulse.db         # SQLite gerado (ignorado no Git)
│   ├── docs/img/.gitkeep
│   └── relatorios/.gitkeep
├── src/
│   ├── database.py          # CSV → SQLite
│   ├── kpis.py              # KPIs de alto nível
│   ├── metricas.py          # funções atômicas (faturamento, ticket, etc)
│   ├── queries.sql          # 8 consultas SQL analíticas
│   └── __init__.py
├── queries.sql              # cópia na raiz (portfólio)
├── main.py                  # ponto de entrada (print inicial)
├── requirements.txt         # pandas, streamlit, plotly, matplotlib
├── .gitignore
└── README.md

🧪 Testes manuais

python main.py              # → DataPulse iniciado!
python src/database.py      # → Banco criado: data/datapulse.db
python -c "from src.metricas import faturamento_total; print('OK')"
python -c "from src.kpis import gerar_kpis; print('OK')"

🧠 O que aprendi

  • Manipulação com Pandas: limpeza, groupby, datas (pd.to_datetime) e validações de colunas
  • Integração Python ↔ SQLite: df.to_sql, sqlite3, Path robusto
  • Criação de KPIs reutilizáveis e storytelling com dados
  • Visualização com Plotly + Streamlit (cache, filtros, layout responsivo)
  • Versionamento profissional: .gitignore correto, config.toml versionado, .db ignorado

🔮 Melhorias futuras

  • Migrar para PostgreSQL e incluir testes automatizados (pytest)
  • Deploy no Streamlit Cloud + CI
  • Filtros avançados, exportação de relatórios (CSV/PDF) e paginação
  • Veja 10 - Ideias Futuras.md no Obsidian para roadmap completo

👤 Autora

Sabryna@sabrynardev · Projeto DataPulse 1.0 para portfólio de Dados/BI.


DataPulse · Python · Pandas · SQL · SQLite · Plotly · Streamlit

About

📊 Dashboard de análise de vendas e Business Intelligence desenvolvido com Python, Pandas, SQL, SQLite, Plotly e Streamlit.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages