0% found this document useful (0 votes)
18 views51 pages

Courier Management Systems Report

The document outlines the development of a Courier Management System (CC Couriers) aimed at improving logistics management through an interactive web application. It details the objectives, implementation, database design, and features such as remote tracking, parcel status updates, and a feedback system. The application is built using PHP and MySQL, with a user-friendly interface designed using HTML5, CSS3, and Bootstrap.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views51 pages

Courier Management Systems Report

The document outlines the development of a Courier Management System (CC Couriers) aimed at improving logistics management through an interactive web application. It details the objectives, implementation, database design, and features such as remote tracking, parcel status updates, and a feedback system. The application is built using PHP and MySQL, with a user-friendly interface designed using HTML5, CSS3, and Bootstrap.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 51

CS6106 – DATABASE MANAGEMENT SYSTEM

Feb - May 2021

COURIER MANAGEMENT
SYSTEMS

Ajitesh M - 2019103503
Table of Contents

S.No Title Page No


1. Objectives 3
2. Abstract 4
3. Introduction 5
4. Database Design
1. ER – Diagram 7
2. Schema design 9
5. Implementation
1. Creating relations 10
2. Creating views 12
3. Creating triggers 15
4. Creating events 16
5. Inserting values 17
6. User Interface design 21
7. Connecting to database 27
8. Staff login 28
9. Staff details 31
10.Logout 32
11.Placing parcel 33
12.Update delivery status 37
13.Parcel tracking 40
14.History of consignments 43
15.Feedback/query filing 46
16.Employee of the Month 48
17.Branch details 49
6. Conclusion 50
7. References 51

Courier Management Systems 2


Objectives

The main objective of this mini-project is to explore the various database


management concepts and implement them in a real-time application, which is
achieved by developing an interactive web application which manages several
logistics routines such as placing, updating and tracking delivery packages.

The Courier Management System proposed here avoids spending more manual
hours in maintaining records and generating reports. Daily transactions are managed
easily and the centralized database helps in avoiding conflicts between different
branches and placing orders in a large scale. It also provides secured data storage.

I wished to develop a customer-friendly flexible delivery policy in order to tackle


the issues me and my friends faced recently with one of the well-known courier
service.

Along with my keen intersts in web development and databases, I wanted to use this
oppurtunity to explore and get hands-on experience with working a on real time
project. By the end of this mini-project, I would be able to improve my knowledge
and experience with databases to the higher level.

Courier Management Systems 3


Abstract

Courier Management System

CC Couriers - An interactive courier management application which provides the


facilities of remote tracking and feedback system to customers and the facilities of
placing a new parcel, updating the status of existing ones and display the history of
consignments to staffs. Recently, I faced an issue with the delivery policy of one of
the well known courier service. As I was unable to receive my parcel, I requested a
change in delivery address to a friend of mine residing in the same town. But he was
unable to do so because of their delivery terms and conditions. In order to tackle this
issue faced by many of us, I’ve implemented a facility to change the delivery address
anytime before it is out for delivery.

Courier Management Systems 4


Introduction
The project emphasizes the planning and execution of delivery of packages and
goods by a Courier service company named CC COURIERS using a Courier
Management System. The system maintains details about the branches of the
company, staffs working under the company, parcels/packages placed, delivery
status of the parcels and the pricing list for the parcels between various states. The
system is used for daily activities such as placing orders, loading them, delivery
status checking and managing the branches and more. It is very difficult to do these
processes manually since they are much time-consuming and paper work needed for
it also increases. Hence it is recommended to computerize the process by developing
the relative software as the world is turning into information and technology. By
doing so, the task of handling the parcels will get easier, quicker and also more
efficient. Feedback/query system is also provided.

The Courier Management System proposed here avoids spending more manual
hours in maintaining records and generating reports. Daily transactions are managed
easily and the centralized database helps in avoiding conflicts between different
branches and placing orders in a large scale. It avoids human errors in feeding parcel
details or handling records, and provides support to customers by enabling them to
track the status of their parcels. It also manages data in a secure manner and provides
a GUI that does not require special training to make people work upon.

This is an interactive web application developed using PHP and MySQL database.
HTML5 and CSS3, along with Bootstrap 4, is used for front-end development.

This web application provides the facility of tracking the package for the customers,
who can access the delivery status of their package using an unique Tracking ID,
which displays the date-time details of stages such as received and shipped from the
origin office, out for delivery as received by the destination office and delivered to
the receiver successfully.

Courier Management Systems 5


Also provides the facility to update the receiver’s address by another address of the
same city anytime before it is out for delivery from the destination office.
Feedback/query system is also provided.

For the employees, it provides the facilities of placing new order and update the
delivery status of the orders. The delivery charge depends upon the weight of the
parcel, source and destination state.

Fig 1 : Home page of the application

Salient Features :

1. Remote tracking and delivery address update if needed.


2. Placing new a parcel.
3. Updating the delivery status of a parcel.
4. History of consignments delivered and yet to be delivered.
5. Feedback/query support.

Courier Management Systems 6


Database design

ER - Diagram

The below mentioned Entity-Relationship diagram (ER -diagram) describes the


structure of the Courier management system database.

Fig 2 : Entity-relationship diagram of the database

DESCRIPTION OF THE ER MODEL:

The Courier Management System database has various entities namely Staff,
Credentials, Branches, Parcel, Status, Pricing and Feedback.

Courier Management Systems 7


Staff entity stores the details of the staffs who work for the courier management
service. It has a one-to-one relationship with the Credentials entity as every staff has
a unique staff_id and a password and every credential refer to a unique staff. The
staff entity also holds a one-to-one relationship with the Branches entity because
each branch is managed by a unique staff and each staff manages a unique branch.
The staff entity holds a one-to-many relationship with the Parcel entity since a staff
can handle many parcels while a parcel could only be handled by a single staff. The
staff entity also holds a one-to-many relationship with the Status entity as a staff can
assign the status of any number of parcels whereas a status of a parcel could only be
assigned by a single staff.

The Parcel entity has a many-to-one relationship with the Pricing entity as a pricing
could be set to any number of parcels and they may have the same price whereas a
single parcel could have only one pricing. The Parcel entity has a one-to-one
relationship with the Status entity as a single parcel could have a single status and a
single status of a tracking_id could have a unique parcel.

Courier Management Systems 8


Schema design
The schema design mentioned below is a skeleton structure that represents the
logical view of the Courier Management System database as a whole. This
database schema design organizes the data into separate entities, determines how to
create relationships between organized entities, and how to apply the constraints on
the data.

Fig 3 : Relation schema model

This schema design elucidates about the relationship each table is having with
others. It also says about how the primary key and foreign key constraints are used
in order to provide relationship between the tables.

All the tables have been normalized and are present in Boyce – Codd Normal
Form since all the transitive functional dependencies have been removed by
decomposing the tables.

Courier Management Systems 9


IMPLEMENTATION
This interactive web application is completely responsive thereby suitable for all
screen sizes and user-friendly. The user interface is developed used HTML5, CSS3
and Bootstrap 4 which structures the application, styles its contents and develops
mobile-friendly responsiveness respectively (Frontend development). The server-
side scripting is implemented in PHP7, which is a server scripting language, and a
powerful tool for making dynamic and interactive Web pages. Along with MySQL
database management system, which is a widely-used relational DBMS comprises
of the Backend development stack.

The PHP development environment, XAMPP, is a free and open-source cross-


platform web server solution stack package developed by Apache Friends,
consisting mainly of the Apache HTTP Server, MariaDB database, and interpreters
for scripts written in the PHP and Perl programming languages. XAMPP v.3.2.3
used in this project provides Apache web server and MySQL database.

The various stages of the implementation of this project are briefed as follows,

1. CREATING RELATIONS :

The various relations(tables) used to represent the data in the database include :

STAFF (StaffID, Name, Designation, Gender, DOB, DOJ, Salary,


Mobile, Email, Credits)
CREDENTIALS (StaffID, Pwd)
BRANCHES (Branch_id, Address, Contact, Email, Manager_id)
PARCEL (TrackingID, StaffID, S_Name, S_Add, S_City, S_State,
S_Contact, R_Name, R_Add, R_City, R_State, R_Contact,
Weight_Kg, Price, Dispatched_Time)
PRICING (S.No, State_1, State_2, Cost)
STATUS (TrackingID, StaffID, Dispatched, Shipped,
Out_for_delivery, Delivered)
FEEDBACK ( F.No, Cust_name, Cust_mail, Cust_msg)

Courier Management Systems 10


Fig 4.1 : SQL queries to create tables

Fig 4.2 : Created tables in the database

Courier Management Systems 11


2. CREATING VIEWS :

A view is a virtual table based on the result-set of an SQL statement. A view


contains rows and columns, just like a real table. The fields in a view are fields
from one or more real tables in the database.

Here two different views are created on the relations parcel and status.

Fig 5.1 : List of views in the database

i. Arrived view: stores the details of consignments in transit.

Fig 5.2 : SQL query to create the view - Arrived

Courier Management Systems 12


Fig 5.3 : Structure of the view - Arrived

ii. Delivered view : stores the details of the consignments delivered.

Fig 5.4 : SQL query to create view – Delivered

Courier Management Systems 13


Fig 5.5 : Structure of the view – Delivered

Courier Management Systems 14


3. CREATING TRIGGERS :

A trigger is a stored procedure in database which automatically invokes whenever


a special event in the database occurs.

placeParcel : Trigger to insert the values of the attributes -TrackingId and


dispatched_time - of parcel relation into the status relation after inserting a new
tuple in the parcel relation.

Fig 6.1 : SQL query to create the trigger - placeParcel

Fig 6.2 : Result of successful creation of the trigger

Courier Management Systems 15


4. CREATING EVENTS :

MySQL Events are named object which contains one or more SQL statement. They
are stored in the database and executed at one or more intervals, say once every week
or month.

resetCredits: Event which resets the credits received by each staff to 0 at the
beginning of every month in order to award - the Employee of the Month.

Fig 7.1 : SQL query to create event - resetCredits

Fig 7.2 : Result of successful creation of the event

Courier Management Systems 16


5. INSERTING VALUES INTO THE TABLES :
Data is populated into credentials, staff, branches and pricing tables by the
database administrator.

Data in the remaining tables – parcel, status and feedback – are populated as the
staff places and updates the parcel details and the customer files a feedback/query.

1. Credentials relation : Stores the login credentials (Staff Id and password) of


each of the employee.

Fig 8.1 : SQL query to insert data into credentials table

Fig 8.2 : Data stored in credentials table

Courier Management Systems 17


2. Staff relation : Stores various details regarding the staff such as their id, name,
salary, contact details, etc.

Fig 8.3 : SQL query to insert data into staff table

Fig 8.4 : Data stored in staff table

Courier Management Systems 18


3. Branches relation : Stores the details of the various branch offices such as
branch id, address, contact, email along with the manager id of that branch.

Fig 8.5 : SQL query to insert data into branches table

Fig 8.6 : Data stored in branches table

Courier Management Systems 19


4. Pricing relation : Stores the details of delivery charge per kg (as Cost) of the
transportation between the corresponding states. Also the states present in this
relation depicts the availability of the service in various states mentioned in it.

Fig 8.7 : SQL query to insert data into pricing table

Fig 8.8 : Data stored in pricing table

Courier Management Systems 20


6. USER INTERFACE DESIGN :
The user interface of this interactive web application is developed using HTML5,
CSS3 and Bootstrap 4. HTML is the standard markup language for documents
designed to be displayed in a web browser. CSS is the style sheet language used to
style an HTML document and describes how HTML elements should be displayed.
Bootstrap is a free and open-source CSS framework directed at responsive, mobile-
first front-end web development. It contains CSS- and JavaScript-based design
templates for typography, forms, buttons, navigation, and other interface
components.

Fig 9.1 : Home page of the application with a carousal

Courier Management Systems 21


Fig 9.2 : The page featuring the legacy of CC couriers

Fig 9.3 : Segment of the home page featuring the Employee of the Month and the Contact form

Courier Management Systems 22


Fig 9.4 : Tracking page of the application

Fig 9.5 : Branches page displaying the details of the branch offices stored in branches relation

Courier Management Systems 23


Fig 9.6 : Staff Login page

Fig 9.7 : Placing a new order tab of the staff page

Courier Management Systems 24


Fig 9.8 : Updating the existing parcel details tab of staff page

Fig 9.9 : Page displaying the consignments in transit which are the contents of the arrived view

Courier Management Systems 25


Fig 9.10 : Page displaying the delivered consignments which are the contents of the delivered
view

Courier Management Systems 26


7. CONNECTING TO DATABASE :

Fig 10.1 : Code for connecting the database

Fig 10.2 : CC Couriers Database

Courier Management Systems 27


8. STAFF LOGIN :

Fig 11.1 : PHP code snippet for validating the login credentials and redirecting to the staff page
on successful login. It stores the credentials in the session on successful login.

Courier Management Systems 28


Fig 11.2 : Staff login page with login credentials as per the credentials table

Fig 11.3 : Staff login page prompting its mandatory to enter the corresponding details for
successful login

Courier Management Systems 29


Fig 11.4 : Staff login page displaying the prompt – Incorrect Password

Fig 11.5 : Staff login page displaying the prompt – Enter valid Staff Id – when the entered staff
id is not present in the credentials table

Courier Management Systems 30


9. STAFF DETAILS :

Fig 12.1 : PHP code snippet that executes the corresponding SQL query to fetch the details of the
logged in staff

Fig 12.2 : Page displaying the fetched staff details from the staff table

Courier Management Systems 31


10. LOGOUT :

Fig 13.1 : PHP code snippet to logout the current staff by destroying the session storing the
credentials of the logged in staff id. On successful logout, it redirects to the login page.

Fig 13.2 : The logout option is available in the dropdown near the logged in staff which redirects
to the login page.

Courier Management Systems 32


11. PLACING A NEW PARCEL :

Fig 14.1 : PHP code snippet which stores the data collected from the new order form into the
parcel table ( and to the status table by the trigger placeParcel ) only if the delivery details
provided can be serviced. Here the delivery charge is calculated based on the values stored in the
pricing table. It redirects the page to receipt page along with its unique tracking id. It also alerts
the staff when the service is not available for the address details provided.

Fig 14.2 : Page displaying the form with details which is stored into the parcel and status table
when the place order button is hit.

Courier Management Systems 33


Fig 14.3 : The details of the placed parcel along with its delivery charge (price), staff id and the
dispatched time (which is the time when the parcel received by the source office =
CURRENT_TIMESTAMP) in the parcel table.

Fig 14.4 : Result of the trigger – placeParcel – which stored the tracking id, staff id and dispatched
time of the new parcel placed (in parcel table) into the status table. Also the trigger adds 5 credits
to the staff for each parcel placed by them which is used to announce the Employee of the Month.

Courier Management Systems 34


Fig 14.5 : Receipt page on successful placement of parcel display its details along with its unique
tracking id and delivery charges calculated based on the values provided by the pricing table on.
The back button takes us back to staff page and the print button prints the receipt out.

Fig 14.6 : The generated receipt is printed when the print button is hit.

Courier Management Systems 35


Fig 14.7 : Page displaying the form with details where the service is not available. These service
details are extracted from the pricing table which depicts the states between which the service is
available along with delivery charge/kg.

Fig 14.8 : Alert prompting that the delivery service is not available for the address details
provided.

Courier Management Systems 36


12. UPDATING DELIVERY STATUS OF EXISTING PARCEL :

Fig 15.1 : PHP code snippet with corresponding SQL query for selecting the record of the
entered tracking id from status table. The fetched results are displayed and it is updated to the
subsequent delivery status with the current timestamp. Also this script ensures that status is
updated in a hierarchical manner.

Courier Management Systems 37


Fig 15.2 : The record of the entered tracking id is fetched from the status table is displayed and
the subsequent status is checked for update. Also note that only one status track is enabled, the
lower and higher levels are disabled to ensure the hierarchy of the delivery statuses.

Fig 15.3 : Note that the record of the tracking id 108025 is modified with Shipped = current time.

Courier Management Systems 38


Fig 15.4 : The successful status update is reflected when the record of the same tracking id is
fetched.

Fig 15.5 : When an invalid tracking id is entered

Courier Management Systems 39


13. DELIVERY STATUS TRACKING :

Courier Management Systems 40


Fig 16.1 : PHP code snippet with the corresponding SQL query to fetch the record of the entered
tracking id. On successful record fetch, the receiver’s address can be updated before the package
is updated for out for delivery. Also this form collecting the new address remains hidden until
the user hits the update delivery address button.

Fig 16.2 : The result of fetching the delivery status record of the entered tracking id from status
table. The progress bar here gives a pictorial view on the progress of the package. Also the
option to change the receiver’s address is given.

Courier Management Systems 41


Fig 16.3 : The form in the tracking page collecting the values to update the receiver’s address
residing in the same city.

Fig 16.4 : The Success alert prompts the user that the delivery address is successfully updated.

Courier Management Systems 42


Fig 16.5 : The result of successful updation of receiver’s address is reflected in the parcel table
(to the record tracking id = 10824.)

Fig 16.6 : When an Invalid tracking id is entered.

14. DISPLAYING THE HISTORY OF CONSIGNMENTS :

Fig 17.1 : PHP code snippet with corresponding SQL queries to fetch the entries of the arrived
and delivered views to display the consignments in transit and the delivered consignments resp.

Courier Management Systems 43


Fig 17.2 : Entries of the arrived view with the consignments in transit (ie) Delivered = NULL ) .

Fig 17.3 : Displaying the consignments in transit, which are the entries of the arrived view.

Courier Management Systems 44


Fig 17.4 : Entries of the delivered view.

Fig 17.5 : Displaying the delivered consignments, which are the entries of the delivered view.

Courier Management Systems 45


15. FEEDBACK/QUERY FILING :

Fig 18.1 : PHP code snippet to store the contents from the contact form provide for feedback and
queries into the feedback table.

Fig 18.2 : The Contact form with details entered.

Courier Management Systems 46


Fig 18.3 : On successful submission of the feedback/query success alert is prompted.

Fig 18.4 : The result of successful submission is reflected in the feedback table at entry f.no 6.

Courier Management Systems 47


16. EMPLOYEE OF THE MONTH :

Fig 19.1 : PHP code snippet with the corresponding SQL query to fetch the record of the staff with
maximum credits and displayed as the Employee of the month. Note that each staff is awarded 5
credits for each parcel they place (which is added to the credits in staff table by the placeParcel
trigger) and the event – resetCredits – resets the credits of all employees to 0 on every month
beginning.

Fig 19.2 : The Employee of the month featured in the home page.

Courier Management Systems 48


17. DISPLAYING BRANCH DETAILS :

Fig 20.1 : PHP code snippet with corresponding SQL query to fetch the records of the branches
table.

Fig 20.2 : The Branches page displaying the address and contact details of various branch offices
as per the entries fetched from the branches table.

Courier Management Systems 49


Conclusion

From understanding the user and admin requirements to system design and finally
consolidation of everything, each step requires in-depth understanding and
commitment toward achieving the objectives of this project. CC Couriers is a
customer-friendly delivery service with flexible policies and proper management
system.

Although the Courier Management System developed in this project is not fully
integrated to the real world needs of a system, the prototype and implementation
demonstrates easy navigation in the system and how data are stored in a systematic
view. The study of how a relational database will be developed and maintained for
industry purposes was done and been implemented. Overall, the main motive of this
project is to gain more knowledge about the usage of database systems in the
industrial view which was done efficiently. Also it is indeed a great learning
experience.

Courier Management Systems 50


References

 https://www.w3schools.com/
 https://www.javatpoint.com/dbms-tutorial
 https://www.guru99.com
 www.stackoverflow.com
 https://www.youtube.com/
 https://getbootstrap.com/docs/4.0/getting-started/introduction/
 Database System Concepts, Seventh Edition by Abraham Silberschatz, Henry
F. Korth, S. Sudarshan

Courier Management Systems 51

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy