# High Level Design and Implementation

# Background

Ukay Furniture Delivery currently tracks all deliveries manually through the use of spreadsheets, and physical forms. There is no advanced-integrated system that allows for live checks on item deliveries, the status of the delivery, nor any checks to see if drivers are following a pre-determined route. This introduces many variables that can cause delays in shipments, as well as the loss of confirmations of receipts, meaning that the administrative dispatch team may lose the ability to confirm if a delivery was ever attempted or completed for any one delivery.

The purpose of this application is to provide a purpose-built solution that implements the pre-existing systems, and further enhances on it.

# Solution

The client requested that we develop a mobile application that allows him, his dispatchers, and his drivers be able to upload a list of deliveries with pertinent details to this application. The application allows drivers to view a list of deliveries assigned to them, and view the client information such as the items to be delivered, client address, and contact information.

Once the driver verifies that the information is correct, they may pick to begin the delivery. The application will then open the appropriate navigation app on their phone, which will have the clients’ addresses pre-populated, and navigation is ready to begin.

Drivers are able to then update the status of a delivery, upload a Proof of Delivery, delay a delivery, or perform other actions based on what is going on at their level. Administrators at the office are able to view these updates live as the driver progresses through their routes.

If any delivery is delayed, the driver is able to initiate a text message conversation with the client to inform them of the status of their delivery, as well as provide an ETA. Additionally, the app will automatically notify the client that the driver is en-route, and is approaching the provided address such that delays at the destination are minimized.

# Technical Implementations

The mobile application (front-end) was designed such that it works across all major platforms (Android, iOS, and Web Applications). Data storage, data retrieval, and data processing happens independently from the application interface in order to ensure that we are able to provide maximum performance at the application level. This allows the solution to be scalable and robust such that it can be hosted using any computing platform, and that failures that happen on a per-device basis is isolated to the conflicting device, and will not affect other users.

The business logic for data storage, data retrieval, and data processing (back-end) was designed in such a way that data is received and sent using HTTP endpoints. This allows future users and developers of the solution to easily integrate the suite using any platform, as well as ease conflicts if any of the technology changes because of updates, or design choices. Additionally, using HTTP endpoints allows developers to test the business logic without the need of launching the mobile application, allowing development to happen in parallel, and independently of each other.

# Technical Limitations

The business logic of the suite is currently unsecured, and is not ready for a production environment. Security is a primary concern as this makes the application susceptible to cyberattacks from many different vectors. Additionally, communications between the front-end and back-end are also unsecure.

The front-end of the application was implemented in a barebones fashion. It does not support data caching, transaction queuing, as well as other features that further improves its performance. If the back-end of the application is not running, the front-end is useless because there is no local cache of delivery information, routes, and photos/spreadsheets can not be uploaded to the back-end.