# odonoso/proyecto_bi_usm architecture

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

- Interactive diagram: https://gitdiagram.com/odonoso/proyecto_bi_usm
- Repository: https://github.com/odonoso/proyecto_bi_usm

## Overview

Kent Foods is a business-intelligence project that turns operational sales and dispatch records into a dimensional warehouse for management analysis. Its documented workflow is source database → automated SSIS ETL → star-schema warehouse; the ETL prepares time and dimensions before loading sales-line facts. The README also defines sales, supplier, and delivery KPIs, and the tree contains an Analysis Services cube project. Source excerpts were unavailable, so relationships beyond those explicitly described in the README are omitted or marked unverified.

Main entry points: [`etl/KentFoodETL/Package.dtsx`](https://github.com/odonoso/proyecto_bi_usm/blob/main/etl/KentFoodETL/Package.dtsx) (SSIS ETL package), [`database/scripts/build_script.sql`](https://github.com/odonoso/proyecto_bi_usm/blob/main/database/scripts/build_script.sql) (Warehouse schema), [`README.md`](https://github.com/odonoso/proyecto_bi_usm/blob/main/README.md) (Business KPIs), [`database/scripts/poblar_tiempo_script.sql`](https://github.com/odonoso/proyecto_bi_usm/blob/main/database/scripts/poblar_tiempo_script.sql) (Time generation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_users["Business users"]
  node_kpis["Business KPIs<br/>[README.md]"]
end

subgraph group_etl["ETL processing"]
  node_ssis["SSIS ETL package<br/>[Package.dtsx]"]
  node_time_load["Time generation"]
  node_customer_load["Customer load"]
  node_employee_load["Employee load"]
  node_product_load["Product load"]
  node_fact_load["Sales fact load"]
end

subgraph group_warehouse["Dimensional warehouse"]
  node_dw_schema[("Warehouse schema<br/>[build_script.sql]")]
  node_dim_customer[("Customer dimension")]
  node_dim_employee[("Employee dimension")]
  node_dim_product[("Product dimension")]
  node_dim_time[("Time dimension")]
  node_fact_sales[("Sales detail fact")]
end

subgraph group_analytics["Analytics"]
  node_cube["Multidimensional cube<br/>[Kent Foods DW.cube]"]
end

node_management(("Owner and management"))
node_oltp[("KentFoods OLTP")]

node_oltp -->|"provides source"| node_ssis
node_ssis -->|"loads warehouse"| node_dw_schema
node_ssis -->|"generates time"| node_time_load
node_ssis -->|"loads dimension"| node_dim_customer
node_ssis -->|"loads last"| node_fact_sales
node_management -->|"uses for decisions"| node_kpis
node_dw_schema -.->|"feeds analytics"| node_cube

click node_ssis "https://github.com/odonoso/proyecto_bi_usm/blob/main/etl/KentFoodETL/Package.dtsx"
click node_time_load "https://github.com/odonoso/proyecto_bi_usm/blob/main/database/scripts/poblar_tiempo_script.sql"
click node_employee_load "https://github.com/odonoso/proyecto_bi_usm/blob/main/database/scripts/cargar_dim_empleado.sql"
click node_product_load "https://github.com/odonoso/proyecto_bi_usm/blob/main/database/scripts/cargar_dim_producto.sql"
click node_fact_load "https://github.com/odonoso/proyecto_bi_usm/blob/main/database/scripts/cargar_fact_detalle_venta.sql"
click node_dw_schema "https://github.com/odonoso/proyecto_bi_usm/blob/main/database/scripts/build_script.sql"
click node_dim_employee "https://github.com/odonoso/proyecto_bi_usm/blob/main/database/scripts/cargar_dim_empleado.sql"
click node_dim_product "https://github.com/odonoso/proyecto_bi_usm/blob/main/database/scripts/cargar_dim_producto.sql"
click node_dim_time "https://github.com/odonoso/proyecto_bi_usm/blob/main/database/scripts/poblar_tiempo_script.sql"
click node_fact_sales "https://github.com/odonoso/proyecto_bi_usm/blob/main/database/scripts/cargar_fact_detalle_venta.sql"
click node_cube "https://github.com/odonoso/proyecto_bi_usm/blob/main/olep/proyecto_sass/ProyectoMultidimensional1/ProyectoMultidimensional1/Kent%20Foods%20DW.cube"
click node_kpis "https://github.com/odonoso/proyecto_bi_usm/blob/main/README.md"

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_kpis toneBlue
class node_ssis,node_time_load,node_customer_load,node_employee_load,node_product_load,node_fact_load,node_oltp toneAmber
class node_dw_schema,node_dim_customer,node_dim_employee,node_dim_product,node_dim_time,node_fact_sales toneMint
class node_cube toneRose
class node_management toneIndigo
```

## Components

### Business users

- [Business KPIs](https://github.com/odonoso/proyecto_bi_usm/blob/main/README.md): `README.md`

### ETL processing

- [SSIS ETL package](https://github.com/odonoso/proyecto_bi_usm/blob/main/etl/KentFoodETL/Package.dtsx): `etl/KentFoodETL/Package.dtsx`
- [Time generation](https://github.com/odonoso/proyecto_bi_usm/blob/main/database/scripts/poblar_tiempo_script.sql): `database/scripts/poblar_tiempo_script.sql`
- **Customer load**
- [Employee load](https://github.com/odonoso/proyecto_bi_usm/blob/main/database/scripts/cargar_dim_empleado.sql): `database/scripts/cargar_dim_empleado.sql`
- [Product load](https://github.com/odonoso/proyecto_bi_usm/blob/main/database/scripts/cargar_dim_producto.sql): `database/scripts/cargar_dim_producto.sql`
- [Sales fact load](https://github.com/odonoso/proyecto_bi_usm/blob/main/database/scripts/cargar_fact_detalle_venta.sql): `database/scripts/cargar_fact_detalle_venta.sql`

### Dimensional warehouse

- [Warehouse schema](https://github.com/odonoso/proyecto_bi_usm/blob/main/database/scripts/build_script.sql): `database/scripts/build_script.sql`
- **Customer dimension**
- [Employee dimension](https://github.com/odonoso/proyecto_bi_usm/blob/main/database/scripts/cargar_dim_empleado.sql): `database/scripts/cargar_dim_empleado.sql`
- [Product dimension](https://github.com/odonoso/proyecto_bi_usm/blob/main/database/scripts/cargar_dim_producto.sql): `database/scripts/cargar_dim_producto.sql`
- [Time dimension](https://github.com/odonoso/proyecto_bi_usm/blob/main/database/scripts/poblar_tiempo_script.sql): `database/scripts/poblar_tiempo_script.sql`
- [Sales detail fact](https://github.com/odonoso/proyecto_bi_usm/blob/main/database/scripts/cargar_fact_detalle_venta.sql): `database/scripts/cargar_fact_detalle_venta.sql`

### Analytics

- [Multidimensional cube](https://github.com/odonoso/proyecto_bi_usm/blob/main/olep/proyecto_sass/ProyectoMultidimensional1/ProyectoMultidimensional1/Kent%20Foods%20DW.cube): `olep/proyecto_sass/ProyectoMultidimensional1/ProyectoMultidimensional1/Kent Foods DW.cube`

### Other components

- **Owner and management**
- **KentFoods OLTP**

## Connections

- KentFoods OLTP → SSIS ETL package: provides source (evidence: `README.md`)
- SSIS ETL package → Warehouse schema: loads warehouse (evidence: `README.md`)
- SSIS ETL package → Time generation: generates time (evidence: `README.md`)
- SSIS ETL package → Customer dimension: loads dimension (evidence: `README.md`)
- SSIS ETL package → Sales detail fact: loads last (evidence: `README.md`)
- Owner and management → Business KPIs: uses for decisions (evidence: `README.md`)
- Warehouse schema → Multidimensional cube: feeds analytics
