Delivery Platform Demo is a pet project replicating package delivery services, focusing on tracking and managing packages via QR code scanning. It also records the entire delivery process on the Ethereum blockchain for package history.
- Key Features
- Running the Project Locally
- Documentation
- Contributors
- Project Motivation & Goals
- License
- 🚚 Couriers can scan QR codes on packages to manage delivery tasks, including accepting packages in the warehouse, starting delivery, and confirming delivery
- ✏️ If the camera is unavailable, couriers can manually input package information
- 🗺️ Customers can effortlessly track the real-time location of their packages
- 🌐 The customer's UI reads package data directly from the Ethereum blockchain, ensuring transparency
- 🔒 Package history is securely recorded on the Ethereum blockchain.
- 🛠️ The platform uses Jaeger for distributed tracing across services
To try out the project and its features, you need to run it locally. Follow the steps below.
Ensure you have the following tools installed:
To start the project, run the following command:
docker compose -f docker-compose-full.yml --env-file ./.env.full-example up
Note
The initial setup may take up to 5 minutes, depending on your PC. Some errors might appear during startup as services depend on each other and will restart until all are ready.
When the terminal displays the message Blockchain Service is listening.
, the project is up and running. You can verify this by checking the screenshot below:
Once the services are running, execute the following command to insert users and companies into the database:
./scripts/startup/setup-project.sh --env prod
To explore example flow, follow the steps provided here.
- Tracking UI:
- Delivery UI:
- HTTP URL: http://localhost:3001
- HTTPS URL: https://localhost:3002
- Mailpit UI:
- Delivery Service API:
- Base HTTP URL: http://localhost:8000
- Swagger HTTP URL: http://localhost:8000/swagger
- Base HTTPS URL: https://localhost:8001
- Swagger HTTPS URL: https://localhost:8001/swagger
- Local Ethereum Node (JSON-RPC):
- Base URL: http://localhost:8545
- Jaeger UI:
If you'd like to explore the project's evolution or find additional information, you can browse through the documentation.
Contributor | Contributions |
---|---|
@AljazOblonsek |
|
@urosmeh |
|
@maticsusteric |
|
This project aims to accomplish the following:
- Develop a straightforward package delivery system that records package history on the blockchain
- Demonstrate how blockchain can be used for applications beyond cryptocurrency
- Gain hands-on experience with new technologies
This project is licensed under the MIT License. See the license file for details.