# jawahargit/btp-data-to-value-workshop architecture

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

- Interactive diagram: https://gitdiagram.com/jawahargit/btp-data-to-value-workshop
- Repository: https://github.com/jawahargit/btp-data-to-value-workshop

## Overview

This repository is a self-paced SAP BTP Data-to-Value bootcamp, not a single application. Its bookshop storyline takes learners from operational and historical sales sources through provisioning, integration, modeling, and machine-learning exercises to analytics and planning. The CAP bookshop sample supplies the operational application layer. The README documents the platform-level data flow and use cases; the exercise materials show recommendation and genre-clustering training and inference. Some exercise-specific connections are not shown in the excerpts, so those links are omitted or marked unverified.

Main entry points: [`02-data-modeling&processing`](https://github.com/jawahargit/btp-data-to-value-workshop/tree/main/02-data-modeling%26processing) (DWC data modeling), [`01-data-provision&integration`](https://github.com/jawahargit/btp-data-to-value-workshop/tree/main/01-data-provision%26integration) (DWC integration), [`03-data-visualisation&analytics`](https://github.com/jawahargit/btp-data-to-value-workshop/tree/main/03-data-visualisation%26analytics) (SAC analytics), [`00-data-preparation/01-bookshop-hcs/cap/srv/cat-service.js`](https://github.com/jawahargit/btp-data-to-value-workshop/blob/main/00-data-preparation/01-bookshop-hcs/cap/srv/cat-service.js) (CAP bookshop services)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_sources["Bookshop sources"]
  node_bookshop_ui["Bookshop catalog UI<br/>[Component.js]"]
  node_cap_services["CAP bookshop services<br/>[cat-service.js]"]
  node_hana_cloud[("HANA Cloud database<br/>[schema.cds]")]
  node_s4hc[("S/4HANA Cloud")]
  node_historical_sales["Historical sales CSVs"]
  node_aws_s3[("AWS S3 archive")]
end

subgraph group_provision["Provisioning and integration"]
  node_dwc_ingest["DWC integration"]
end

subgraph group_modeling["Modeling and machine learning"]
  node_dwc_model["DWC data modeling"]
  node_di_orchestration["DI ML orchestration"]
  node_recommend_train["Recommendation training<br/>[dv210_train.py]"]
  node_recommend_infer["Recommendation inference<br/>[dv210_consumer.py]"]
  node_genre_train["Genre clustering training<br/>[dv220_train.py]"]
  node_genre_infer["Genre clustering inference<br/>[dv220_consumer.py]"]
end

subgraph group_analytics["Analytics and outcomes"]
  node_sac_analytics["SAC analytics"]
  node_forecast["Sales forecast planning"]
end

node_manager(("Bookshop manager"))

node_bookshop_ui -.->|"uses services"| node_cap_services
node_cap_services -->|"stores bookshop data"| node_hana_cloud
node_s4hc -->|"provides current sales"| node_dwc_ingest
node_hana_cloud -->|"provides bookshop data"| node_dwc_ingest
node_historical_sales -.->|"provides archived sales"| node_dwc_ingest
node_aws_s3 -->|"provides archived sales"| node_dwc_ingest
node_dwc_ingest -->|"integrates data"| node_dwc_model
node_dwc_model -->|"supplies ML data"| node_di_orchestration
node_dwc_model -->|"supplies sales data"| node_recommend_train
node_recommend_train -.->|"produces model"| node_recommend_infer
node_dwc_model -->|"supplies book data"| node_genre_train
node_genre_train -.->|"produces model"| node_genre_infer
node_dwc_model -->|"feeds analytics"| node_sac_analytics
node_sac_analytics -->|"supports planning"| node_forecast
node_manager -->|"reviews sales"| node_sac_analytics
node_manager -.->|"requests recommendations"| node_recommend_infer

click node_bookshop_ui "https://github.com/jawahargit/btp-data-to-value-workshop/blob/main/00-data-preparation/01-bookshop-hcs/cap/app/catalog/webapp/Component.js"
click node_cap_services "https://github.com/jawahargit/btp-data-to-value-workshop/blob/main/00-data-preparation/01-bookshop-hcs/cap/srv/cat-service.js"
click node_hana_cloud "https://github.com/jawahargit/btp-data-to-value-workshop/blob/main/00-data-preparation/01-bookshop-hcs/cap/db/schema.cds"
click node_historical_sales "https://github.com/jawahargit/btp-data-to-value-workshop/tree/main/00-data-preparation/00-dataset"
click node_dwc_ingest "https://github.com/jawahargit/btp-data-to-value-workshop/tree/main/01-data-provision%26integration"
click node_dwc_model "https://github.com/jawahargit/btp-data-to-value-workshop/tree/main/02-data-modeling%26processing"
click node_di_orchestration "https://github.com/jawahargit/btp-data-to-value-workshop/tree/main/02-data-modeling%26processing"
click node_recommend_train "https://github.com/jawahargit/btp-data-to-value-workshop/blob/main/02-data-modeling%26processing/exercises/code_snippets/dv210_train.py"
click node_recommend_infer "https://github.com/jawahargit/btp-data-to-value-workshop/blob/main/02-data-modeling%26processing/exercises/code_snippets/dv210_consumer.py"
click node_genre_train "https://github.com/jawahargit/btp-data-to-value-workshop/blob/main/02-data-modeling%26processing/exercises/code_snippets/dv220_train.py"
click node_genre_infer "https://github.com/jawahargit/btp-data-to-value-workshop/blob/main/02-data-modeling%26processing/exercises/code_snippets/dv220_consumer.py"
click node_sac_analytics "https://github.com/jawahargit/btp-data-to-value-workshop/tree/main/03-data-visualisation%26analytics"
click node_forecast "https://github.com/jawahargit/btp-data-to-value-workshop/tree/main/03-data-visualisation%26analytics"

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_bookshop_ui,node_cap_services,node_hana_cloud,node_s4hc,node_historical_sales,node_aws_s3 toneBlue
class node_dwc_ingest toneAmber
class node_dwc_model,node_di_orchestration,node_recommend_train,node_recommend_infer,node_genre_train,node_genre_infer toneMint
class node_sac_analytics,node_forecast toneRose
class node_manager toneIndigo
```

## Components

### Bookshop sources

- [Bookshop catalog UI](https://github.com/jawahargit/btp-data-to-value-workshop/blob/main/00-data-preparation/01-bookshop-hcs/cap/app/catalog/webapp/Component.js): `00-data-preparation/01-bookshop-hcs/cap/app/catalog/webapp/Component.js`
- [CAP bookshop services](https://github.com/jawahargit/btp-data-to-value-workshop/blob/main/00-data-preparation/01-bookshop-hcs/cap/srv/cat-service.js): `00-data-preparation/01-bookshop-hcs/cap/srv/cat-service.js`
- [HANA Cloud database](https://github.com/jawahargit/btp-data-to-value-workshop/blob/main/00-data-preparation/01-bookshop-hcs/cap/db/schema.cds): `00-data-preparation/01-bookshop-hcs/cap/db/schema.cds`
- **S/4HANA Cloud**
- [Historical sales CSVs](https://github.com/jawahargit/btp-data-to-value-workshop/tree/main/00-data-preparation/00-dataset): `00-data-preparation/00-dataset`
- **AWS S3 archive**

### Provisioning and integration

- [DWC integration](https://github.com/jawahargit/btp-data-to-value-workshop/tree/main/01-data-provision%26integration): `01-data-provision&integration`

### Modeling and machine learning

- [DWC data modeling](https://github.com/jawahargit/btp-data-to-value-workshop/tree/main/02-data-modeling%26processing): `02-data-modeling&processing`
- [DI ML orchestration](https://github.com/jawahargit/btp-data-to-value-workshop/tree/main/02-data-modeling%26processing): `02-data-modeling&processing`
- [Recommendation training](https://github.com/jawahargit/btp-data-to-value-workshop/blob/main/02-data-modeling%26processing/exercises/code_snippets/dv210_train.py): `02-data-modeling&processing/exercises/code_snippets/dv210_train.py`
- [Recommendation inference](https://github.com/jawahargit/btp-data-to-value-workshop/blob/main/02-data-modeling%26processing/exercises/code_snippets/dv210_consumer.py): `02-data-modeling&processing/exercises/code_snippets/dv210_consumer.py`
- [Genre clustering training](https://github.com/jawahargit/btp-data-to-value-workshop/blob/main/02-data-modeling%26processing/exercises/code_snippets/dv220_train.py): `02-data-modeling&processing/exercises/code_snippets/dv220_train.py`
- [Genre clustering inference](https://github.com/jawahargit/btp-data-to-value-workshop/blob/main/02-data-modeling%26processing/exercises/code_snippets/dv220_consumer.py): `02-data-modeling&processing/exercises/code_snippets/dv220_consumer.py`

### Analytics and outcomes

- [SAC analytics](https://github.com/jawahargit/btp-data-to-value-workshop/tree/main/03-data-visualisation%26analytics): `03-data-visualisation&analytics`
- [Sales forecast planning](https://github.com/jawahargit/btp-data-to-value-workshop/tree/main/03-data-visualisation%26analytics): `03-data-visualisation&analytics`

### Other components

- **Bookshop manager**

## Connections

- Bookshop catalog UI → CAP bookshop services: uses services
- CAP bookshop services → HANA Cloud database: stores bookshop data (evidence: `README.md`)
- S/4HANA Cloud → DWC integration: provides current sales (evidence: `README.md`)
- HANA Cloud database → DWC integration: provides bookshop data (evidence: `README.md`)
- Historical sales CSVs → DWC integration: provides archived sales
- AWS S3 archive → DWC integration: provides archived sales (evidence: `README.md`)
- DWC integration → DWC data modeling: integrates data (evidence: `README.md`)
- DWC data modeling → DI ML orchestration: supplies ML data (evidence: `README.md`)
- DWC data modeling → Recommendation training: supplies sales data (evidence: `README.md`)
- Recommendation training → Recommendation inference: produces model
- DWC data modeling → Genre clustering training: supplies book data (evidence: `README.md`)
- Genre clustering training → Genre clustering inference: produces model
- DWC data modeling → SAC analytics: feeds analytics (evidence: `README.md`)
- SAC analytics → Sales forecast planning: supports planning (evidence: `README.md`)
- Bookshop manager → SAC analytics: reviews sales (evidence: `README.md`)
- Bookshop manager → Recommendation inference: requests recommendations
