Author: Asutosh Pati
Purpose: For training of MCCAI - batch 2 of CTTC, Bhuabneswar
Date of Creation: 21 Nov. 2020
Last Updated: 04 Apr. 2023
In this project we have 4 types of users (Admin, Agent, Customer, Manager), so that students can understand how diffrent roles work in programming environment; As this project provides certain functionalities that differ with the roles. Every user can have access to their own profile data which can be modified by the user itself. Every user can order a parcel and can track the ordered parcel. Where as an agent can pickup a pracel and can deliver to an user. An Manager is the incharge of a depot and can manage the shipment of parcel in depot of their supervision. An admin has access of creating a new depot, manage user privileges like appointing managers, angents and new admins along with this admin has full accesss over the database. With all this functionality the students can also learn about the versioning and the modification works that can be done during development of any project is required.
You can use this source code for educational purposes untill and unless you provide the credits to the author. Also give a star anf follow me if you like the project.
![]() |
![]() |
|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
This project is build over python & PyQt; and tested on python 3.9.13 with the below dependencies. Don't forget to install them before running the code.
pip install PyQt5==5.15.7
pip install PyQtWebEngine==5.15.4
Don't want to install python or any other packages, simply move to dist directory and
download PMS-one-file.exe or
PMS-one-dir.zip extract and run the application.
The below users will be created during the first run and further this users can be used to start using the program.
| User ID | User Name | Mobile | Password |
|---|---|---|---|
| 100001 | Default Admin | 9999999999 | Default@123 |
| 100002 | Default Manager | 9999999999 | Default@123 |
| 100003 | Default Agent | 9999999999 | Default@123 |
| 100004 | Default Customer | 9999999999 | Default@123 |
| Features | Admin | Manager | Agent | Customer |
|---|---|---|---|---|
| Signup | ❌️ | ❌️ | ❌️ | ✔️ |
| Login | ✔️ | ✔️ | ✔️ | ✔️ |
| Forgot Password | ✔️ | ✔️ | ✔️ | ✔️ |
| Update Profile | ✔️ | ✔️ | ✔️ | ✔️ |
| Order Parcel | ✔️ | ✔️ | ✔️ | ✔️ |
| Check Parcel Details | ✔️ | ✔️ | ✔️ | ✔️ |
| Track Parcel | ✔️ | ✔️ | ✔️ | ✔️ |
| Pickup Parcel | ❌️ | ❌️ | ✔️ | ❌️ |
| Deliver Parcel | ❌️ | ❌️ | ✔️ | ❌️ |
| Receive Parcel at Depot | ❌️ | ✔️ | ❌️ | ❌️ |
| Dispatch Parcel from Depot | ❌️ | ✔️ | ❌️ | ❌️ |
| Manage Roles | ✔️ | ❌️ | ❌️ | ❌️ |
| Assign Manager to Depot | ✔️ | ❌️ | ❌️ | ❌️ |
| Exapan to New City | ✔️ | ❌️ | ❌️ | ❌️ |
| Establish New Depot | ✔️ | ❌️ | ❌️ | ❌️ |
- Let's start by creating a new customer; Provide a name, select a appropriate title, provide an unique mobile number along with a strong password which should contain atleast 6 characters and at max 18 with a upper case, lower case and a digit, also don't forget to add a address.
- You can also use the existing customer
User ID: 100004; Password: Default@123for the following steps. - Once user is created successfully; it will automatically take you the dashboard.
- Now remember your user ID; you will need it for next login.
- Incase you forgot your user ID; you can check it directly from the database in
UserDetailtable.
- Incase you forgot your user ID; you can check it directly from the database in
- Now if you want; you can logout from the dashboard and try logging in again. Other wise continue with next steps.
- If you have logged out and don't remember the password you can try with
forgot passwordoption. Otherwise login to continue with the next steps.
- If you have logged out and don't remember the password you can try with
- Now let's try to modify some profile details; change the details you want to update (remember user ID can't be
modified at any time in the dashboard). Once you are done with changes just save it by clicking on
modify profilebutton. On success you will receive a confirmation message. - Now let's try to order a parcel; Go to
Package➡️Order Parcel. Select a payment type (as this is a dummy project platform will not ask you for any payment details) then select a product category as per you choice and place the order. On success you will receive a confirmation message along with the parcel ID. - At this moment we have ordered a parcel, but for next steps we need to explore some functionalities of manager & agent roles. So you can logout from the customer dashboard. Update User Role
- Let's login as Agent. An agent can pickup or deliver parcels. You can try with the default agent
(
User ID: 100003; Password: Default@123) or you can create a new one that we will cover later in this section. - Let's try to pick up a parcel. Go to
Agent➡️Pickup. Now you can pickup a parcel by providing parcel ID (If you don't remember the parcel ID created at earlier stage then don't worry you can try with10000001; or if you haven't ordered any parcel yet then order a parcel first then try with this step again), weight, height, length and width of the parcel, also a return address is mandatory to provide. Once you have all the information you good to go. Just click on thePickupbutton to continue. You will receive a confirmation message on success. - Now you can logout from agent dashboard and login as
Customerto check the parcel details.- Go to
Package➡️My Parcelsselect a parcel ID you want to check details and continue. - You can also track the parcel now. Go to
Package➡️Track Parcelselect the parcel ID you want to track and continue.
- Go to
- Now let's logout and explore some functionalities of
Admin. An admin can expand to new city, create a new depot, manage roles of user and assign manager to depots. Intially you have login with the default admin (User ID: 100001; Password: Default@123) provided during the intialization of the app. - Let's add a new city now; go to
Admin➡️Expand City. Provide a new city name and click onExpandto contine. On success you will receive a confiramtion message.- Remember only unique cities are allowed to create.
- Now we are all set a create a depot. Go to
Admin➡️New Depot.- Provide the city ID (you can try with
101if you have created city in the previous step, otherwise create a city first to continue) and click onfindto search for the city name; if you forgot city ID don't worry you can check it inAdmin ➡ Expand Citypage. - Once you get the city name where you want to create depot; just provide a depot address and a manager ID (you can
use the default manager
User ID: 100002or you can provide any other manager ID if you have creted, which we will see in a later stage in this section Update User Role) to create a depot.
- Provide the city ID (you can try with
- [Optional Step] Now let's see how you can update manager of a depot. Go to
Admin➡️Assign Manager.- Provide the depot ID (try with
101if you have created depot at the prvious step; otherwise you can try with other depot IDs when you create them) and manager ID (try with100002or you can use other manager IDs when you create them) and click onAssignto assign manager to the depot.
- Provide the depot ID (try with
- [Optional Step] Now let's see how you can update user roles. Go to
Admin➡️Manage Role.- Provide an user ID and click of on
Find User. If any user is available with that ID you can update the role by selecting the desired role and clicking on theAssignbutton.
- Provide an user ID and click of on
- Now let's explore some functionalities of
Manager. A manager can receive or dispatch parcel from the depot he/she is assigned to. Login as a manager; you can use the default managerUser ID: 100002; Passwor: Default@123or you can use any other manager credential if you have created them. Update User Role - Go to
Manager➡️Receive. Select the depot ID and provide the parcel ID (you can try with10000001if you have already ordered parcel; otherwise try with ordering a parcel) and click onReceivebutton to receive the parcel at depot. - There is similar process available to dispatch the parcel from the depot in
Admin➡️Dispatch. - You can login with the customer dashboard to track the parcel after the above process; and you will find the parcel status over there.
- At last you can deliver or return a parcel by an agent; which you can find at
Agent➡️Deliver. Just provide the parcel ID check the details and choose what to do, whether to deliver or to return. - After completing the above process. Login as customer and track the parcel to see the updated status.







