MaxHenneberg / agata

1 stars 0 forks source link

Xarda

This project was developed in the course "Blockchain technology for public sector innovation" in cooperation with Fortiss and Agata. Xarda is used to optimize the Less than a Container Load (LCL) process using a DLT-based solution. It consists of a CorDapp, an API accessing it and a demonstration frontend.

Getting Started

The following steps will help you run a local instance of the project.

Prerequisites

The following points must be observed in order to start the individual services correctly:

Installing

Start Corda nodes

If the configuration in the ZIP leads to errors, this can also be created manually. To do this, switch to /cordapp-lcl and run ./gradlew build -x test and then ./gradlew deployNodes.

Start API and frontend per node

In this step, APIs are started that connect to the Corda node of buyer, supplier, LCL company and shipping line, respectively. Additionally, we will launch a demonstration frontend for buyer, supplier and LCL company (which differ by ports). To do this, follow the steps below:

Testing

The automatic tests for flows can be started by switching to /cordapp-lcl and executing ./gradlew test.

Exemplary walk-through

Below is a guide on how to run our business process from start to finish using the Postman collection (xarda.postman_collection) provided. This requires knowledge of the associated report. We assume a simplified example for one buyer and a single container, because otherwise the process and the description becomes even more complex. However, the steps can be adapted and for the same buyer node e.g. several packages can be created, which are then consolidated. Furthermore we implemented a demo frontend to showcase possible usecases. A guide containing further information can be found here.

Here are a few more points to consider after importing the xarda.postman_collection file into Postman:

After each final step of the groups below, it might be helpful to look at the change in tracking. Use "Get tracking state" with the corresponding ID as URL path variable.

buyer assigns the LCL company (folder "Assign LCL company")

LCL company requests a container from the shipping line (folder "Request container")

LCL company picks up the goods from each supplier (folder "Pickup goods")

LCL company transfers the packed container to the shipping line (folder "Load ship")

LCL company releases the arrived container from the shipping line (folder "Deconsolidation")

Shipped goods are delivered to the customer (folder "Delivery")

Finally, a call to "Get tracking state" shows the history of all the steps executed above.

Built With

Authors

License

This project is licensed under the MIT License.