Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docs/dpp tutorial: Prepared deployment anddata-provision readme #320

Merged
merged 27 commits into from
May 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
bdd96a8
initialize README.md
Monishamacharla Apr 29, 2024
e60e51b
Update README.md
Monishamacharla Apr 29, 2024
5ad1b7c
Update README.md
Monishamacharla May 3, 2024
fd36f9a
Update README.md
Monishamacharla May 7, 2024
3ea555e
renamed folder
Monishamacharla May 7, 2024
1e1448a
chore(docs): prepared dpp-tutorial - deployment and data-provision gu…
saudkhan116 May 10, 2024
42090ed
chore(docs): fixed typos and added examples to resources (WIP)
saudkhan116 May 10, 2024
fa57306
chore(readme): updated deployment.md
saudkhan116 May 15, 2024
3393f15
chore(dpp-tutorial): moved dpp-tutorial to the root directory of repo
saudkhan116 May 15, 2024
48716ca
Updated Licence in README.md
Monishamacharla May 15, 2024
af4ac6d
Updated Licence in README.md
Monishamacharla May 15, 2024
612bc0e
feat: added initial consumption guide + test dpp payload
May 15, 2024
2b0e58f
feat: added new aspect model guide and consumption guide!
May 15, 2024
0cc4ba0
feat: data consumption guide done
May 15, 2024
11bf368
feat: added qr-code guide
May 15, 2024
e2a0677
Merge pull request #319 from Monishamacharla/main
matbmoser May 15, 2024
9cce98b
Merge branch 'main' of https://github.com/eclipse-tractusx/digital-pr…
May 15, 2024
8436cc8
feat: fixed main readme dpp-tutorial
May 15, 2024
ffb4c62
feat: application
May 15, 2024
d381794
chore: updated dpp tutorial
May 16, 2024
9bd2b25
chore: added draft serial part items and bom as built
May 16, 2024
b2925a2
chore: completed aspect model guide
May 16, 2024
0a84831
feat: added details in the main readme
May 16, 2024
65dc45f
chore: update readme
May 16, 2024
d344631
chore: updated the docs
May 16, 2024
23ccdc7
chore: added digital-twin guide
saudkhan116 May 16, 2024
917bb2f
Merge branch 'docs/dpp-tutorial' of https://github.com/eclipse-tractu…
saudkhan116 May 16, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
187 changes: 187 additions & 0 deletions dpp-tutorial/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,187 @@
<!--
Tractus-X - Digital Product Passport Application

Copyright (c) 2022, 2024 BMW AG, Henkel AG & Co. KGaA
Copyright (c) 2023, 2024 CGI Deutschland B.V. & Co. KG
Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation

See the NOTICE file(s) distributed with this work for additional
information regarding copyright ownership.

This program and the accompanying materials are made available under the
terms of the Apache License, Version 2.0 which is available at
https://www.apache.org/licenses/LICENSE-2.0.

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
either express or implied. See the
License for the specific language govern in permissions and limitations
under the License.

SPDX-License-Identifier: Apache-2.0
-->

<div align=right><img height=200 src="../docs/media/dpp-tx-logo.png"/>&nbsp;&nbsp;<h1>Tractus-X​ Digital Product Passport​ Workstream​</h1><h4>Second Tractus-X Community Days - 16, 17 May 2024 - Stuttgart</h4></div>


## Description

The digital product passport application provides a consumer user interface to request a battery passport from a battery manufacturer using the standardized components and technologies in a Catena-X network. The passport will be displayed in a human-readable from any browser. The data exchange standards given by Catena-X are used to provide the battery passport to different personas (roles) in the network.

In particular, the appliction is used to access the battery passport data provided by battery manufacturer. By scanning QR-code or knowing the manufacturer and battery-ID, a user can request the passport through **Eclipse Dataspace Connectors (EDCs)** over the Catena-X network. The passport provider will provide data attributes that is only visible to a permitted signed-in user.

## Problem Statement

Company-X has manufactured cars for the market in Germany. The cars were built using components from different companies. A surprise inspection is scheduled by a governmental environment auditor in 5 months. This generates a problem for Company-X, because all the data from the parts is not available. Company-X sends an email to their supplier companies, however their send incomplete data in different formats and structures, which confuses Company-X engineers when calculating the carbon footprint and makes the compliance to the regulations really complicated. It is hard to keep track from the latest regulations and convince supplier companies to give all their data without loosing control over it. So, the engineers decide to use Catena-X for the data exchange. Per email Company-X request its suppliers to provide the data while still maintaining data sovereignty, simply by following the Catena-X standards for the Digital Product Passport which comply with the regulations of the inspection. ​

You are one of the suppliers from Company-X. To maintain your client, you are required to create a Digital Product Pass for your Part, so that Company-X can obtain the total PCF value from its car. Creating a Car Digital Product Pass and fulfilling the sustainability regulations imposed in the inspection.

## Pre-Requisites

* Kubernetes 1.19+
* Helm 3.2.0+
* PV provisioner support in the underlying infrastructure
* MXD Components:
2 EDCs (Provider + Consumer)
1 Keycloak
1 Vault
* BPN Discovery Service
* EDC Discovery Service
* Discovery Service
* Printer (for printing QR codes)
* Mobile Phone with Browser (for scanning QR codes)


## Preparation

Split into groups of five individuals, ensuring each group receives a sheet of paper containing a distinct Part from the [test-data](./resources/test-data/carParts.json).

Group name is defined like this:

```
dpp-<your number=page number right bit)-<sessionNumber>-partName
```

> [!NOTE]
> Session number will be provided by the coaches! There are three sessions, values from [1-3].

## Phase 1: Deployment

> [!NOTE]
> The deployment of the [Digital Product Passport application](./deployment.md) is not within the scope of the Workshop, as it has already been deployed for you.

## Phase 2: Data Provision

In this Phase, you as a provider will create a Digital Product Passport of a spectific Part of the Arena-X Car. For this phase, you can use your own computer through Visual Studio Code / Notepad ++ or a given Virtual Machine.

##### Duration: 45 mins

#### Step 1 - Create a Digital Product Passport (DPP)

In this step, you'll create the Digital Product Passport (DPP) by utilizing data from the Product Carbon Footprint and specifications of a specific car part from the Arena.

* Follow the tutorial on [How to create Aspect Model](./aspect-model.md)

#### Step 2 - Create a Digital Twin integrating the generated DPP as a submodel

In this step, you will create a Digital Twin of your provided Car part.

* Follow the tutorial on [How to create a Digital Twin](./digital-twin-provision)

#### Step 3 - Upload the Digital Twin in the Digital Twin Registry

Provide the Digital Twin and its relations in the Digital Twin Registry.

* UUID
* Part Instance ID
* Manufacturer Part ID
* Submodel Reference

#### Step 4 - Generate the QR Code

* Follow the tutorial on [How to generate a QR code](./qr-code.md)

#### Step 5 - Print the QR-Code

Print the QR Code from the nearby printer and paste it in the specific Part in the Arena -X. Ensure that the QR code is securely attached and easily scannable. Test the scanning functionality to verify that the encoded information can be retrieved accurately.

Great! The data provisioning process has been successfully set up. It is now ready for data exchange within the dataspace. This means that all necessary configurations and integrations have been completed, ensuring efficient data sharing.

## Phase 3: Data Consumption

In this phase, you as a consumer, will access the Digital Product Pass (DPP) consumer application and retrieve data from the network by either scanning a QR code or entering an ID.

##### Duration: 45 mins

#### Step 1 - Consumption - Access DPP Application

* Follow the tutorial on [DPP Data Consumption](./data-consumption.md)

* You can access the application by using URL and the credentials.

* Scan the available QR Codes on the Car parts or provide the ID.

* Upon scanning, you will obtain the passport of the part.

* Access the UI of the passport to view its details.

* Look for the Product Carbon Footprint (PCF) information for each of the specific car part

* Calculate and add up the PCF values of all individual parts to obtain the aggregate Carbon Footprint value for the entire car.

#### Step 2 - Creating the Final Digital Product Passport (DPP) for the Whole Car

* Scan the available QR codes from various parts of the car and record the Product Carbon Footprint (PCF) value of each specific part.

* #### Compile the following information to create the DPP:

* Name: Provide a name for the car model.
* Description: Include a brief description of the car, its features, and specifications.
* ID: Assign a unique identifier for the car.
* Aggregate Value: Calculate and add up the PCF values of all individual parts to obtain the aggregate carbon footprint value for the entire car.

For creating the Car passport use [this template](./resources/digital-twins/car-dt-template.json)

1º - Generate a new UUID4 in this [uuid generator page](https://www.uuidgenerator.net/version4) and copy it to the "id" and "global asset id" part.

2º - Paste it on "globalAssetId" with this format `urn:uuid:<your uuid>`

3º - As "id" add with this schema: `urn:uuid:<your group name>`

4º - Create Part Instance Id of your choice and add to `specificAssetIds["name=partInstanceId"].value

>[!IMPORTANT]
> Remember the part instance id for proving the QR code

5º -> For `manufacturerPartId` use MPI0012

6º -> Add the submodel as specified in the [digital-twin-provision](. digital-twin-provision) guide to the twin.

7º -> Upload your payload to the data service as specified in the [digital-twin-provision](. digital-twin-provision) guide.

8º -> Generate a QR code as specified in the [qr code guide](./qr-code.md)

9º -> Scan it and access it with the app.

10º -> Add your QR code to the board!

## Links of interest

| How to Guides | Link |
| -------- | ----- |
| How to deploy DPP Application | [deployment.md](./deployment.md) |
| How to create Aspect Model | [aspect-model.md](./aspect-model.md) |
| How to create a Digital Twin | [digital-twin-provision](. digital-twin-provision) |
| How to generate a QR code | [qr-code.md](./qr-code.md) |
| DPP Data Consumption | [data-consumption.md](./data-consumption.md) |

## NOTICE

This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode).

- SPDX-License-Identifier: CC-BY-4.0
- SPDX-FileCopyrightText: 2023, 2024 BMW AG
- SPDX-FileCopyrightText: 2023, 2024 CGI Deutschland B.V. & Co. KG
- SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation
- Source URL: https://github.com/eclipse-tractusx/digital-product-pass
137 changes: 137 additions & 0 deletions dpp-tutorial/aspect-model.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
<!--
Tractus-X - Digital Product Passport Application

Copyright (c) 2022, 2024 BMW AG, Henkel AG & Co. KGaA
Copyright (c) 2023, 2024 CGI Deutschland B.V. & Co. KG
Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation

See the NOTICE file(s) distributed with this work for additional
information regarding copyright ownership.

This program and the accompanying materials are made available under the
terms of the Apache License, Version 2.0 which is available at
https://www.apache.org/licenses/LICENSE-2.0.

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
either express or implied. See the
License for the specific language govern in permissions and limitations
under the License.

SPDX-License-Identifier: Apache-2.0
-->

# DPP Instance Aspect Model Creation Guide

This guide provides a simple explanation on how to create a digital product pass serialized aspect model payload.

## Prerequisites

You must fullfill the following pre-requisites:

- A Catena-X Standarized Aspect Model (in this case we use the [Digital Product Pass v2.0.0 Model](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.generic.digital_product_passport/2.0.0))
- JSON Editor like [VS Code](https://code.visualstudio.com/) or [Notepad++](https://notepad-plus-plus.org/downloads/)
- Car Parts JSON Test Data [found here](./resources/test-data/carParts.json)

>[!WARNING]
>
> The model v2.0.0 of the Digital Product Pass is **DEPRECATED** and its used here only as demo purposes, please check the latests models in: [Digital Product Pass Models](https://github.com/eclipse-tractusx/sldt-semantic-modelstree/main/io.catenax.generic.digital_product_passport)


## Aspect Model Creation

Follow this steps to create a new Digital Product Passport serialized model:

### 1º - Paste the example payload in your VS Code/Notepad++ application

Paste this [Digital Product Passport v2.0.0 Payload](./resources/payloads/example.json) in the VS Code/Notepad++:

![DPP Example](./resources/screenshots/dpp-example.png)


### 2º - Find your assigned part in the test data file

Test JSON file can be found [here](./resources/test-data/carParts.json) or in the paper at the worksession.

To find your part:

1 - Search by uuid with CTRL + F:

![search id](./resources/screenshots/idsearch.png)

You will get your information in a paper:

Example:

```json
{
"f10c0181-ce80-4139-81f0-a59226c88bfe": {
"Name":"TRUNK LID HINGE (LEFT)",
"PCF (Product Carbon Footprint)": "189 kgCO2e",
"Height": "24 cm",
"Width": "2 cm",
"Length": "38 cm",
"Weight": "1.4 kg",
"id": "f10c0181-ce80-4139-81f0-a59226c88bfe",
"Part Instance ID": "DLH-5159",
"Manufacturing Date": "01.12.2023",
"Placed on Market Date": "15.01.2024",
"List of Materials": "Aluminum",
"Hazard Materials": "Lead, Butyl, Cyanoacrylates, Polyurethane",
"Guarantee": "24 months"
}
}

```

> [!TIP]
> Copy and paste the data for creating your digital product pass faster!


### 3º - Substitute data in the template

For example for adding the PCF value follow the following path:

```text
sustainability.PEF.carbon.value
```

Example:

![PCF](./resources/screenshots/pcf-update.png)

#### Where to substitute the data?

Follow this paths to find where the information is located.

| Property | Path |
| -------- | ----- |
| Name | typology.shortName |
| Complete Name | typology.longName |
| Class/Type of Part | typology.class.definition |
| PCF | sustainability.PEF.carbon.value |
|Height| characteristics.physicalDimension.height.value |
|Width| characteristics.physicalDimension.width.value|
|Length| characteristics.physicalDimension.length.value|
|Weight| characteristics.physicalDimension.grossWeight.value|
|Part Instance Id | identification.localIdentifier.key |
|Manufacturing Date |operation.manufacturer.manufacturingDate |
|List of Materials | sustainability.material.left.name.name (Add In Array)|
|Hazard Materials | critical.left (add elements to list) |
| Guarantee | lifespan (Add value and unit for garantee) |

Congratulations! You have successfully created your own digital product pass!

> [!TIP]
> You can add more relavant data and personalized information at the digital product pass, follow the template and modify the data as you wish!

## NOTICE

This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode).

- SPDX-License-Identifier: CC-BY-4.0
- SPDX-FileCopyrightText: 2023, 2024 BMW AG
- SPDX-FileCopyrightText: 2023, 2024 CGI Deutschland B.V. & Co. KG
- SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation
- Source URL: https://github.com/eclipse-tractusx/digital-product-pass
Loading
Loading