Tractus‐X SDK Challenge ‐ Build Dataspace Ready Apps FAST - eclipse-tractusx/tutorial-resources GitHub Wiki
Tractus-X SDK Challenge
The Tractus-X SDK challange consists of a Python programming hackathon for Junior Tractus-X Developers and for Senior Developers that have a long way developing apps in Tractus-X...
The objective of this challenge is to show how can the Tractus-X SDK help to speed up the development and reduce the complexity of the dataspace technology adoption. The main objective is to develop a simple application/script with the SDK and interact with the Tractus-X Connector and Tractus-X Digital Twin Registry.
Some development challenges with different difficulty levels will be provided.
Before you start, please read the requirements and understand how to install the library.
If you have the library installed, then you can jump to The Challenges section to start!
Requirements
-
Some basic knowledge in Python & Object Oriented Programming, please do some tutorials:
- https://www.w3schools.com/python/
- Python Documentation: https://docs.python.org/3/tutorial/index.html
-
A computer with following requirements installed:
Python 3.12
: https://www.python.org/downloads/release/python-31210/Visual Studio Code
: https://code.visualstudio.com/downloadGit Bash or Similar
: https://git-scm.com/downloads- Your Favorite API Collection App:
- Bruno (recommended): https://www.usebruno.com/downloads
- Insomnia: https://insomnia.rest/download
- Postman: https://www.postman.com/downloads/
-
(OPTIONAL) In case it is not provided for you at the workshop (at 22.05-23.05 will be provided):
Tractus-X Umbrella
(only minimal Data Exchange Components) deployed in a local DNS accessible Kubernetes Cluster (e.g. Minikube): https://github.com/eclipse-tractusx/tractus-x-umbrella/blob/main/charts/umbrella/values-adopter-data-exchange.yaml- Provider:
- 1x Tractus-X Connector
- 1x Digital Twin Registry
- 1x Simple Data Backend / Industry Core Hub
- Consumer
- 1x Tractus-X Connector
- Operator
- BPN DID Resolution Service
- Stub DIM Wallet
- Provider:
-
Access to internet to download the library with pip.
What is the Tractus-X SDK?
The Eclipse Tractus-X SDK is a modular use case agnostic library crafted by the dataspace building community for the community. It facilitates developers on their tasks of developing use case applications, speeding the development and reducing the complexity of using the several dataspace components which Eclipse Tractus-X offers.
It makes maintenance easy on a long run, and enables companies to produce their own dataspace ready applications faster and easier for certification. Allowing the developer to combine the "Building Blocks" in the way he desires in order to fulfill the requirements he has.
The Tractus-X SDK is builded replicating what the Industry Core KIT aims to provide: Interoperability for the use cases and reduction of development cost when adopting new use cases.
It was developed in Python to facilitate the understanding of the algorithms and the code. It is available in PyPi and can be used in multiple scenarios:
- Pipelines
- Jupiter Notebooks (AI, Data Analytics)
- Scripting
- Microservices (FastAPI, Flask)
- Cloud (Lambdas)
What does it offer?
The SDK Package is composed of three main modules:
- Dataspace Module
- Enable connection & usage to running multi version Tractus-X Connectors and any other operation needed for executing a "minimal" dataspace exchange.
- Industry Module
- Enable connection and handling of AAS compliant servers like the "Tractus-X Digital Twin Registry"
- Extension Module
- Allows the extension of the SDK if more use cases want to be built or other components want to be integrated in the future.
Installation & Download
The Tractus-X SDK is available at PyPi to download via pip: https://pypi.org/project/tractusx-sdk/
pip install tractusx-sdk
The latest version of the SDK shall be used >0.0.4
How to use it?
Simply import the modules like that:
from tractusx_sdk import dataspace
from tractusx_sdk import industry
Then you can do things like this:
from tractusx_sdk.dataspace.services.connector import EdcService
edcService = EdcService(version="v0_9_0",url="<<CONNECTOR_URL>>")
edcService.getCatalog()
The Challenges
This are the propose challenges that you can do depending on your level of programming skills
[!CAUTION] Challenge Details will be released on the day of the event