Sistema completo de analytics engineering aplicando arquitetura multicamadas (OLTP → dbt → BI) para análise de comportamento financeiro com segmentação RFM, visualizações interativas e pipeline automatizado via CI/CD.
Tecnologias: PostgreSQL | dbt | Streamlit | Plotly | GitHub Actions | Docker
Objetivo: Construir pipeline de dados end-to-end que transforma dados transacionais (OLTP) em insights de negócio através de camadas de transformação (dbt) e dashboard interativo (Streamlit).
Problema de Negócio: Empresas financeiras precisam responder:
- Quem são os clientes mais valiosos?
- Quem está abandonando o sistema (churn)?
- Como os usuários gastam?
Solução: Pipeline multicamadas com segmentação RFM (Recency, Frequency, Monetary) para identificar padrões de comportamento e automatizar análises.
Volume: 50 usuários | 204 transações | Segmentação: VIP, Ativo, Regular, Risco de Churn
- PostgreSQL 15 — Banco transacional (OLTP)
- dbt 1.7.0 — Orquestração do pipeline de transformação
- Streamlit 1.31.0 — Dashboard interativo
- Plotly 5.18.0 — Visualizações avançadas
- Pandas 2.2.0 — Manipulação de dados
- GitHub Actions — CI/CD automatizado
- Docker (opcional) — Containerização
- Git — Versionamento com Conventional Commits
- Pipeline Multicamadas — RAW → STAGING → CORE → ANALYTICS
- Modelo RFM — Segmentação de clientes
┌─────────────────────────────────────────────────────┐ │ ARQUITETURA DO PIPELINE │ └─────────────────────────────────────────────────────┘ ┌──────────────────┐ │ PostgreSQL │ │ (OLTP) │ │ │ │ • users │ │ • accounts │ │ • categories │ │ • transactions │ └────────┬─────────┘ │ │ raw data ▼ ┌──────────────────┐ │ dbt Pipeline │ │ │ │ staging/ │ │ └─ stg_trans │ │ │ │ core/ │ │ └─ fct_trans │ │ │ │ marts/ │ │ └─ mart_rfm │ └────────┬─────────┘ │ │ analytics ▼ ┌──────────────────┐ │ Streamlit │ │ Dashboard │ │ │ │ • KPIs │ │ • Gráficos │ │ • Filtros │ └────────┬─────────┘ │ ▼ ┌──────────────────┐ │ GitHub Actions │ │ (CI/CD) │ │ │ │ • dbt test │ │ • validations │ └──────────────────┘
users— Cadastro de usuáriosaccounts— Contas financeirascategories— Categorias de transaçõestransactions— Transações financeiras (income/expense)
stg_transactions— Limpeza e padronização
fct_transactions— Fato de transações (join com accounts)
mart_rfm— Segmentação RFM com scores e classificação
✅ Materialização: Views em staging/core, Table em marts
✅ Testes de qualidade: 12 testes dbt (not_null, unique, accepted_values)
✅ Integridade referencial: Foreign Keys entre tabelas OLTP
✅ Formatação BR: Valores monetários (R$ 1.234,56) e datas (DD/MM/YYYY)
- ✅ Arquitetura multicamadas (staging → core → marts)
- ✅ Transformações SQL via dbt
- ✅ Testes automatizados de qualidade
- ✅ Modelo RFM completo (recency, frequency, monetary)
- ✅ 4 KPIs principais (clientes, receita, ticket médio, churn)
- ✅ 8 visualizações Plotly (gráficos de barras, linhas, scatter, histogramas)
- ✅ Filtros dinâmicos (segmento + período temporal)
- ✅ Export de dados (CSV com timestamp)
- ✅ Formatação padrão brasileiro (moeda e datas)
- ✅ CI/CD via GitHub Actions
- ✅ Testes automatizados em cada PR
- ✅ Conventional Commits
- ✅ Validação de schema + seeds + dbt
- ✅ README completo
- ✅ Diagramas de arquitetura
- ✅ Screenshots do dashboard
- ✅ Comentários em SQL
- PostgreSQL 15 ou superior
- Python 3.11+
- Git
git clone https://github.com/rodrigodesouza7/financial-behavior-analytics.git
cd financial-behavior-analyticspython3 -m venv venv
source venv/bin/activate # Linux/Mac
# ou
venv\Scripts\activate # Windowspip install -r requirements.txt# Criar banco
createdb finance_db
# Executar DDL
psql -d finance_db -f database/ddl/01_create_schema.sql
# Inserir dados
psql -d finance_db -f database/seeds/01_seed_data.sqldocker run --name finance-db \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=postgres \
-e POSTGRES_DB=finance_db \
-p 5432:5432 \
-d postgres:15cp .env.example .envEdite .env:
DB_HOST=localhost
DB_PORT=5432
DB_NAME=finance_db
DB_USER=postgres
DB_PASSWORD=cd dbt_project
dbt debug # validar conexão
dbt run # executar transformações
dbt test # rodar testes de qualidadestreamlit run streamlit_app/app.pyAcesse: http://localhost:8501
KPIs principais:
- Total de clientes
- Receita total (formato BR: R$ 127.261,11)
- Ticket médio
- Taxa de churn
Visualizações:
- Clientes por segmento
- Receita por segmento
Componentes:
- Distribuição de scores RFM (3 histogramas)
- Top 10 clientes por receita
- Usuários em risco de churn (prioridade)
- Scatter plot interativo (Recency × Monetary)
Recursos:
- Filtro por segmento (multiselect)
- Filtro temporal (date range)
- Atualização dinâmica de todos os gráficos
- UUIDs truncados para melhor visualização
Workflow automatizado que executa em todo push/PR:
✅ Setup PostgreSQL (container)
✅ Instalar dependências Python
✅ Criar schema do banco
✅ Inserir dados de seed
✅ Configurar dbt profile
✅ Executar dbt run
✅ Executar dbt test
✅ Validar importação do Streamlitfinancial-behavior-analytics/ ├── .github/ │ ├── workflows/ │ │ └── ci.yml # CI/CD pipeline │ └── PULL_REQUEST_TEMPLATE.md ├── database/ │ ├── ddl/ │ │ └── 01_create_schema.sql # Schema OLTP │ └── seeds/ │ └── 01_seed_data.sql # Dados iniciais ├── dbt_project/ │ ├── models/ │ │ ├── staging/ │ │ │ ├── stg_transactions.sql │ │ │ └── schema.yml │ │ ├── core/ │ │ │ ├── fct_transactions.sql │ │ │ └── schema.yml │ │ └── marts/ │ │ ├── mart_rfm.sql │ │ └── schema.yml │ └── dbt_project.yml ├── streamlit_app/ │ └── app.py # Dashboard completo ├── docs/ │ └── images/ │ ├── dashboard-overview.png │ ├── rfm-analysis.png │ ├── filters.png │ └── database-schema.png ├── .env.example ├── .gitignore ├── requirements.txt └── README.md
- Pipeline multicamadas (staging → core → marts)
- dbt para orquestração e testes
- Modelo RFM para segmentação de clientes
- Modelagem de dados (OLTP + analytics)
- ETL/ELT via dbt
- Qualidade de dados com testes automatizados
- Streamlit para dashboards interativos
- Plotly para gráficos avançados
- UX com filtros dinâmicos e formatação BR
- CI/CD com GitHub Actions
- Infraestrutura como código (DDL versionado)
- Conventional Commits para histórico limpo
- Modelagem de dados (OLTP + analytics)
- Pipeline dbt completo (staging → core → marts)
- Dashboard Streamlit com 8 visualizações
- Testes automatizados (12 testes dbt)
- CI/CD funcional (GitHub Actions)
- Formatação brasileira (moeda + datas)
- Documentação completa
- Screenshots do dashboard
- Diagramas de arquitetura
Rodrigo de Souza Silva
Profissional de Tecnologia da Informação com formação em Sistemas de Informação e pós-graduação em Data Science, Machine Learning e IA.
- 🔗 LinkedIn: linkedin.com/in/rodrigodesouzasilva
- 💻 GitHub: github.com/rodrigodesouza7
MIT License — Projeto de portfólio profissional



