ASE Delivery
A platform that allows you to easily ship your parcels from anywhere to anywhere. With ASE Delivery, you can have your goods delivered fast and safely without having to waste your valuable time.








Motivation
Efficient and reliable logistics are essential for modern commerce, enabling businesses and individuals to send and receive goods with confidence. ASE Delivery focuses on two core tasks: managing deliveries and verifying that each package is delivered to and collected by the correct recipient. By addressing these challenges, the service aims to improve delivery accuracy and customer satisfaction.
Project Details
ASE Delivery platform is a pick-up station (aka. pack station) delivery service (ASE Delivery). In this system, each customer who orders items is assigned a box at a pick-up station. The service then delivers the items from a central depot to the customer's box at the pick-up stations. There are three user roles in ASE Delivery: dispatchers, deliverers, and customers.
- Dispatchers are responsible for the management of pick-up boxes and deliveries.
- Deliverers transport deliveries to the pick-up box assigned to a customer.
- Customers collect their delivery from their box.
To verify if a deliverer or customer can unlock a box, each deliverer and customer is given an RFID tag for identification. Each pick-up box has an RFID scanner to read the RFID tag from a deliverer or customer and determine if they are authorized to unlock the box. The Customers are informed when their delivery is created, delivered, or picked up successfully. Due to constraints on the hardware, we assume that each pick-up station has only one pick-up box.

Tech Stack
System Design
Delivery Service
Box Management
- The dispatcher manages pick-up boxes(CRUD). On creation, they configure the street address and ID of the Raspberry Pi.
- Each pick-up box has a fixed street address and a unique printable name and is equipped with a Rasberry Pi device.
- The device is connected to an RFID reader that controls the lock of the box.
- Each pick-up box has a configuration file that will be manually defined and stored in the Raspberry Pi. The configuration file contains the ID of the box in the delivery system, name, and address of the box.
- The pick-up box is either empty or holds arbitrary many deliveries for exactly one customer. Over time, many customers can use the same box.
- At a given point in time, all the deliveries in a box have to be for the same customer.
Box Unlock
- There are two types of RFID tokens to open the lock of a box:
- Deliverer-Tokens are given to the deliverer transporting deliveries. A Deliverer-Token opens only the boxes designated to its deliverer.
- Customer-Tokens are given to Customers. They only open a box that contains the good(s) to be delivered to the customer. At a given point in time, a customer may use multiple boxes simultaneously. For example, a customer can use a box near their home or office. A pick-up box lights a green LED if a deliverer/customer is authorized to open the lock. Otherwise, the box lights a red LED if the user deliverer/customer is unauthorized.
- After a deliverer/customer verifies their token and closes the box properly, the system updates the box status. A light sensor (photoresistor) is used to detect whether a box is closed properly by measuring the light intensity inside the box.
- If the box is not closed properly within 10 seconds, the pick-up box shall blink the LED light with red color.
- All the above features must be done using the necessary hardware setup, i.e., no simulation or mock-up of hardware signals is accepted.
Delivery Management
- On the creation of delivery, the dispatcher specifies the target box and the target customer, and the responsible deliverer. The system ensures that the target box is only used for deliveries of one customer.
- The deliverer can collect one or arbitrary many deliveries at the central depot.
- The deliverer can deposit a delivery only in the designated target pick-up box. After a successful delivery, the system records that all collected deliveries by this deliverer for this customer have been delivered.
- The customer can use their token to open a box that contains deliveries for them. After a suc- cessful delivery collection, the system records that all deliveries in the box are delivered to the customer.
Email Notification
- The system sends an email notification to a customer in the following cases:
- A dispatcher creates a new delivery for a customer
- A deliverer successfully places a delivery inside the pick-up box of the customer
- The customer successfully collects all deliveries in their pick-up box
UI Service
- A dispatcher can create, list, update and delete pick-up boxes through the web GUI.
- A dispatcher can create, list, update and delete deliveries through the web GUI. On the cre- ation of delivery, the dispatcher specifies the target box, the target customer, and the responsible deliverer. The system ensures that the target box is only used for deliveries of one customer.
- A dispatcher can create, list, update and delete other users through the web GUI.
- A deliverer can list boxes to which they are assigned, and can change the status of their assigned deliveries from Ordered to Picked-up through the GUI.
- A customer can list active deliveries and their corresponding pick-up box through the GUI.
- A customer can see past deliveries and their corresponding pick-up boxes through the GUI.
- A customer can track their active delivery by inputting the tracking code in the GUI.
Authentication Service
User Management
- The dispatcher creates a customer from email and assigns an RFID token, and a password to let them log in and track deliveries.
- The dispatcher creates a deliverer from email and assigns an RFID token, and a password to let them log in and track assigned deliveries.
- The dispatcher can also create a new dispatcher to manage the system. The new dispatcher is created from email and assigned a password.
Authentication/Authorization
- Users can authenticate themselves via their ASE Delivery account using Basic Authentication at minimum.
- Dispatcher requests accessing deliveries, boxes, or user information need to be authenticated and authorized.
- Deliverer or customer requests accessing deliveries need to be authenticated and authorized.
- Customer requests tracking of delivery need to be authenticated and authorized.