# ffauriza29/olist-analytics-portfolio architecture

> Architecture diagram of the GitHub repository ffauriza29/olist-analytics-portfolio, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/ffauriza29/olist-analytics-portfolio
- Repository: https://github.com/ffauriza29/olist-analytics-portfolio

## Overview

This is an Olist e-commerce analytics pipeline: CSV files are loaded into BigQuery raw tables, dbt stages and transforms the data into business-facing marts, and those marts support BI and analysis. The README documents the major model capabilities and broad lineage; individual SQL model dependencies were not sampled, so the graph does not assert model-by-model joins.

Main entry points: [`olist_dbt`](https://github.com/ffauriza29/olist-analytics-portfolio/tree/main/olist_dbt) (dbt Runtime), [`ingest_data.py`](https://github.com/ffauriza29/olist-analytics-portfolio/blob/main/ingest_data.py) (CSV Loader), [`olist_dbt/models/staging/stg_customers.sql`](https://github.com/ffauriza29/olist-analytics-portfolio/blob/main/olist_dbt/models/staging/stg_customers.sql) (Customers), [`olist_dbt/models/staging/stg_orders.sql`](https://github.com/ffauriza29/olist-analytics-portfolio/blob/main/olist_dbt/models/staging/stg_orders.sql) (Orders)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ingestion["Data Ingestion"]
  node_ingest["CSV Loader<br/>[ingest_data.py]"]
end

subgraph group_warehouse["BigQuery Warehouse"]
  node_raw[("Raw Dataset")]
  node_analytics[("Analytics Dataset")]
end

subgraph group_staging["Silver Staging"]
  node_dbt["dbt Runtime"]
  node_customers["Customers<br/>[stg_customers.sql]"]
  node_orders["Orders<br/>[stg_orders.sql]"]
  node_items["Order Items"]
  node_payments["Order Payments"]
  node_reviews["Order Reviews"]
  node_products["Products<br/>[stg_products.sql]"]
end

subgraph group_marts["Gold Marts"]
  node_monthly["Monthly Sales"]
  node_customer_dim["Customer Dimension<br/>[dim_customers.sql]"]
  node_order_detail["Order Details"]
end

node_operator(("Pipeline Operator"))
node_csv["Olist CSV Files"]
node_bi(("BI Consumers"))

node_operator -->|"runs loader"| node_ingest
node_csv -->|"reads files"| node_ingest
node_ingest -->|"loads tables"| node_raw
node_operator -->|"runs models"| node_dbt
node_raw -->|"source data"| node_customers
node_raw -->|"source data"| node_orders
node_raw -->|"source data"| node_items
node_raw -->|"source data"| node_payments
node_raw -->|"source data"| node_reviews
node_raw -->|"source data"| node_products
node_dbt -->|"executes"| node_customers
node_dbt -->|"executes"| node_orders
node_dbt -->|"executes"| node_items
node_dbt -->|"executes"| node_payments
node_dbt -->|"executes"| node_reviews
node_dbt -->|"executes"| node_products
node_customers -->|"writes staging"| node_analytics
node_orders -->|"writes staging"| node_analytics
node_items -->|"writes staging"| node_analytics
node_payments -->|"writes staging"| node_analytics
node_reviews -->|"writes staging"| node_analytics
node_products -->|"writes staging"| node_analytics
node_analytics -->|"staging inputs"| node_monthly
node_analytics -->|"staging inputs"| node_customer_dim
node_analytics -->|"staging inputs"| node_order_detail
node_dbt -->|"executes"| node_monthly
node_dbt -->|"executes"| node_customer_dim
node_dbt -->|"executes"| node_order_detail
node_monthly -->|"writes mart"| node_analytics
node_customer_dim -->|"writes mart"| node_analytics
node_order_detail -->|"writes mart"| node_analytics
node_bi -->|"queries marts"| node_analytics

click node_ingest "https://github.com/ffauriza29/olist-analytics-portfolio/blob/main/ingest_data.py"
click node_dbt "https://github.com/ffauriza29/olist-analytics-portfolio/tree/main/olist_dbt"
click node_customers "https://github.com/ffauriza29/olist-analytics-portfolio/blob/main/olist_dbt/models/staging/stg_customers.sql"
click node_orders "https://github.com/ffauriza29/olist-analytics-portfolio/blob/main/olist_dbt/models/staging/stg_orders.sql"
click node_items "https://github.com/ffauriza29/olist-analytics-portfolio/blob/main/olist_dbt/models/staging/stg_order_items.sql"
click node_payments "https://github.com/ffauriza29/olist-analytics-portfolio/blob/main/olist_dbt/models/staging/stg_order_payments.sql"
click node_reviews "https://github.com/ffauriza29/olist-analytics-portfolio/blob/main/olist_dbt/models/staging/stg_order_reviews.sql"
click node_products "https://github.com/ffauriza29/olist-analytics-portfolio/blob/main/olist_dbt/models/staging/stg_products.sql"
click node_monthly "https://github.com/ffauriza29/olist-analytics-portfolio/blob/main/olist_dbt/models/marts/fct_monthly_sales.sql"
click node_customer_dim "https://github.com/ffauriza29/olist-analytics-portfolio/blob/main/olist_dbt/models/marts/dim_customers.sql"
click node_order_detail "https://github.com/ffauriza29/olist-analytics-portfolio/blob/main/olist_dbt/models/marts/ct_order_details.sql"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_ingest toneBlue
class node_raw,node_analytics toneAmber
class node_dbt,node_customers,node_orders,node_items,node_payments,node_reviews,node_products toneMint
class node_monthly,node_customer_dim,node_order_detail toneRose
class node_operator,node_csv,node_bi toneIndigo
```

## Components

### Data Ingestion

- [CSV Loader](https://github.com/ffauriza29/olist-analytics-portfolio/blob/main/ingest_data.py): `ingest_data.py`

### BigQuery Warehouse

- **Raw Dataset**
- **Analytics Dataset**

### Silver Staging

- [dbt Runtime](https://github.com/ffauriza29/olist-analytics-portfolio/tree/main/olist_dbt): `olist_dbt`
- [Customers](https://github.com/ffauriza29/olist-analytics-portfolio/blob/main/olist_dbt/models/staging/stg_customers.sql): `olist_dbt/models/staging/stg_customers.sql`
- [Orders](https://github.com/ffauriza29/olist-analytics-portfolio/blob/main/olist_dbt/models/staging/stg_orders.sql): `olist_dbt/models/staging/stg_orders.sql`
- [Order Items](https://github.com/ffauriza29/olist-analytics-portfolio/blob/main/olist_dbt/models/staging/stg_order_items.sql): `olist_dbt/models/staging/stg_order_items.sql`
- [Order Payments](https://github.com/ffauriza29/olist-analytics-portfolio/blob/main/olist_dbt/models/staging/stg_order_payments.sql): `olist_dbt/models/staging/stg_order_payments.sql`
- [Order Reviews](https://github.com/ffauriza29/olist-analytics-portfolio/blob/main/olist_dbt/models/staging/stg_order_reviews.sql): `olist_dbt/models/staging/stg_order_reviews.sql`
- [Products](https://github.com/ffauriza29/olist-analytics-portfolio/blob/main/olist_dbt/models/staging/stg_products.sql): `olist_dbt/models/staging/stg_products.sql`

### Gold Marts

- [Monthly Sales](https://github.com/ffauriza29/olist-analytics-portfolio/blob/main/olist_dbt/models/marts/fct_monthly_sales.sql): `olist_dbt/models/marts/fct_monthly_sales.sql`
- [Customer Dimension](https://github.com/ffauriza29/olist-analytics-portfolio/blob/main/olist_dbt/models/marts/dim_customers.sql): `olist_dbt/models/marts/dim_customers.sql`
- [Order Details](https://github.com/ffauriza29/olist-analytics-portfolio/blob/main/olist_dbt/models/marts/ct_order_details.sql): `olist_dbt/models/marts/ct_order_details.sql`

### Other components

- **Pipeline Operator**
- **Olist CSV Files**
- **BI Consumers**

## Connections

- Pipeline Operator → CSV Loader: runs loader
- Olist CSV Files → CSV Loader: reads files
- CSV Loader → Raw Dataset: loads tables
- Pipeline Operator → dbt Runtime: runs models
- Raw Dataset → Customers: source data
- Raw Dataset → Orders: source data
- Raw Dataset → Order Items: source data
- Raw Dataset → Order Payments: source data
- Raw Dataset → Order Reviews: source data
- Raw Dataset → Products: source data
- dbt Runtime → Customers: executes
- dbt Runtime → Orders: executes
- dbt Runtime → Order Items: executes
- dbt Runtime → Order Payments: executes
- dbt Runtime → Order Reviews: executes
- dbt Runtime → Products: executes
- Customers → Analytics Dataset: writes staging
- Orders → Analytics Dataset: writes staging
- Order Items → Analytics Dataset: writes staging
- Order Payments → Analytics Dataset: writes staging
- Order Reviews → Analytics Dataset: writes staging
- Products → Analytics Dataset: writes staging
- Analytics Dataset → Monthly Sales: staging inputs
- Analytics Dataset → Customer Dimension: staging inputs
- Analytics Dataset → Order Details: staging inputs
- dbt Runtime → Monthly Sales: executes
- dbt Runtime → Customer Dimension: executes
- dbt Runtime → Order Details: executes
- Monthly Sales → Analytics Dataset: writes mart
- Customer Dimension → Analytics Dataset: writes mart
- Order Details → Analytics Dataset: writes mart
- BI Consumers → Analytics Dataset: queries marts
