-
Notifications
You must be signed in to change notification settings - Fork 18
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #320 from eclipse-tractusx/docs/dpp-tutorial
Docs/dpp tutorial: Prepared deployment anddata-provision readme
- Loading branch information
Showing
27 changed files
with
2,467 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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"/> <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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
Oops, something went wrong.