This app is used to achieve Efficient On-Time Delivery and serve as a platform for warehouse managers and delivery personnels. It creates a space for the item scanning employees and warehouse managers to efficiently manage the scanning, logging, dispatch, and monitoring of goods from a single place.
- Frontend : Next.js (Typescript)
- Design : TailwindCSS
- Backend : Python (FastAPI)
- Database : MongoDB
- Python 3.7+
- pnpm 7.22.0+
cd ./server/
pip install -r requirements.txt
uvicorn main:app
cd ./app/
pnpm install
pnpm dev
- If you working with VSCode, we recommend you to install PostCSS Language Support
The app has two types of users:
- Item Scanning personnel
- Warehouse managers
- Delivery Riders
Both, the item scanners as well as warehouse managers will have to login using an id and password, before obtaining access to the following functionalities:
-
As items are placed within the scanning tool, data received in the sensors will be fed to the application and will be visible on the web/app interface, along with the inferences regarding the item's information.
-
The scanner's task is to monitor the sensor data and approve the item currently visible on the interface. The item will then be added to the list of all previously scanned items.
-
Scanners may remove any item from this list at any point in time if they wish to do so.
-
Finally, once the final list of scanned items is ready, the scanner will have to submit it via the interface. This action will add the items to the database.
-
The manager's dashboard will display the list of scanned items as well as the information about the riders for that day.
-
In case of any inconsistencies, the manager will be able to alter the information about any rider or item.
-
Upon clicking the "Dispatch" button, the routing algorithm will start running in the backend and will perform optimal clustering of items to riders, as well as finding the optimal route for each rider.
-
On the navigation page, the manager will be able to view the current location of each rider and their projected route. This page will also support dynamic addition and removal of pickup points.
- Each rider should be able to view the route they need to take in order to reach the next delivery/pickup point.
- Riders will also be intimidated about the expected time within which the they should reach that location
-
Routing algorithm should be such that it maximizes the on time delivery percentage and minimizes overall distance traveled. It should maximize the output of the riders by smart bag creation/clustering to get the best out of riders and routes.
-
Minimum time lag for communication between the app and the sensors as well as between the app and the routing algorithm.
-
Rider route navigation must mimic a real-world senario as closely as possible, with appropriate scaling down of the time taken for the rider to travel between to points, so as to represent a simulation-like environment.
Following is the Data flow diagram which shows interaction between various entities of the application