Open to work · RemoteGet in touch
Personal project · Analytics Engineering · End-to-end

E-Commerce Data Platform

Olist Brazil — Real marketplace data

End-to-end data pipeline over 100,000+ real orders from Brazilian e-commerce. PostgreSQL + dbt with 4 model layers, RFM segmentation, cohort retention and revenue trends in pure SQL. CI/CD with GitHub Actions and a dashboard deployed to production.

PostgreSQLdbtPythonDockerGitHub ActionsSQL Window FunctionsRFMCohort Analysis

100k+

orders analyzed

4

dbt layers

3

analytical marts

CI/CD

GitHub Actions

Pipeline architecture

The full flow from raw Kaggle data to the production dashboard.

Raw CSV Files

Kaggle · Olist Brazil Dataset · 9 relational tables

PostgreSQL

Source database · local Docker

dbt — Staging

stg_orders · stg_customers · stg_products · stg_payments · stg_sellers

dbt — Intermediate

int_orders_enriched · int_seller_performance · business logic

dbt — Marts

mart_customer_rfm · mart_cohort_retention · mart_revenue_trends

Live Dashboard

Next.js · Vercel · ecommerce-dashboard-puce.vercel.app

dbt model structure

Each layer has one clear responsibility. Staging has no joins; intermediate is never exposed to the dashboard.

staging/

Renaming, type casting, deduplication. Single source of truth.

▸stg_orders
▸stg_customers
▸stg_products
▸stg_sellers
▸stg_payments
▸stg_reviews
intermediate/

Joins and business logic. Not exposed to the dashboard.

▸int_orders_enriched
▸int_seller_performance
marts/

Final analytical tables. Consumed by the dashboard.

▸mart_customer_rfm
▸mart_cohort_retention
▸mart_revenue_trends

SQL — Key models

The project's three analytical marts. Click to expand the code.