DBMS Project Report
DBMS Project Report
Submitted by
Dr. SUMATHY G
BACHELORS OF TECHNOLOGY
IN
ARTIFICIAL INTELLIGENCE
SCHOOL OF COMPUTING
COLLEGE OF ENGINEERING AND TECHNOLOGY
SRM INSTITUTE OF SCIENCE AND TECHNOLOGY
KATTANKULATHUR - 603203
April 2023
ABSTRACT
Courier Management System (CMS) is a centralized software solution that helps courier companies
streamline their delivery process from order booking to final delivery. The CMS is designed to be
efficient, reliable, and cost-effective, providing customers with a high-quality courier service. The
CMS is composed of multiple modules, each of which performs specific tasks related to courier
delivery operations. The customer management module enables companies to manage customer
details, including their contact information, pickup and delivery addresses, and payment history.
The order management module allows companies to track courier orders and their status, assign
delivery personnel for each order, and monitor their performance. The courier personnel
management module enables companies to manage courier personnel details, including their name,
contact information, and delivery performance. The invoice and payment management module
enables companies to generate invoices and receipts for customers and manage payment
information. Finally, the reporting module enables companies to generate reports on daily, weekly,
and monthly deliveries, providing valuable insights into courier delivery operations.The CMS is
user-friendly and intuitive, with a simple interface that is easy to use. It is also scalable and
customizable, allowing companies to add or modify features according to their requirements.
iii
TABLE OF CONTENTS
TABLE OF CONTENTS 4
LIST OF FIGURES 6
LIST OF TABLES 7
ABBREVIATIONS 8
1 INTRODUCTION 1
1.1 Introduction 1
1.2 Problem statement 1
1.3 Objectives 2
1.4 Scope and applications
1.5 General and Unique Services in the database application
1.6 Software Requirements Specification
2 LITERATURESURVEY 6
2.1 Existing system 6
2.2 Proposed system 7
3 SYSTEM ARCHITECTURE ANDDESIGN 8
3.1 Architecture Diagram 8
3.1.1 Front end (UI)design 9
3.1.2 Back end (Database Table) design 9
3.2 ER Diagram and Use case Diagram 10
4 Modules and Functionalities 12
4.1 Modules 12
4.2 Functionalities 12
5 CODING AND TESTING 13
5.1 Coding 13
5.2 Testing 21
6 RESULTS AND DISCUSSIONS 22
6.1 Outputs 22
6.2 Discussions 23
7 CONCLUSION AND FUTURE ENHANCEMENT 24
REFERENCES
iv
LIST OF FIGURES
v
LIST OF TABLES
1. USER 16
2. REPORT 16
3. BRANCH 16
4. COURIER 16
5. TRACKER 16
vi
ABBREVIATIONS
• CMS Courier Management System
• DBMS Database Management System
• DFD Data Flow Diagram
• BCIS Bachelor of Computer Information System
• JIT Just-In-Time
• DML Data Manipulation Language
• DDL Data Definition Language
• DCL Data Control Language
• CLR Common Language Runtime
• SSMSE Server Management Studio Express
• SQL Structured Query Language
CHAPTER 1
1. INTRODUCTION
1
1.Manual Data Entry: The use of manual data entry in the delivery process can lead to
errors, which can cause delays and additional costs for businesses.
3. Lack of Real-time Tracking: Customers demand visibility into their shipments, but
many courier companies still rely on outdated tracking methods that do not provide
real-time updates on the status of the package.
4. High Delivery Costs: Delivery costs are a significant expense for businesses, and
inefficiencies in the delivery process can lead to higher costs and lower profit margins.
6. Security Concerns: With the increasing threat of theft and package tampering,
ensuring the security of packages during the delivery process has become a major
concern for businesses.
1.3 Objectives
The main objectives of Courier management are operational and financial. Listed below
are some of the main objectives of Courier management.
2
2.Ensure Security: The system should have features to ensure the security of packages
during transit, including real-time monitoring and GPS tracking.
3.Scalability and Flexibility: The system should be scalable and flexible enough to
accommodate the growing needs of businesses and adapt to changes in the market.
4.Comprehensive Service Offerings: The system should offer a range of service offerings,
including different delivery options and modes of transport, to meet the diverse needs of
businesses and customers.
Scope:
The scope of a courier management system is vast and covers the entire courier and delivery
process, from order placement to final delivery. It includes features such as order management,
real-time tracking, warehouse management, delivery scheduling, driver management, payment
management, and customer communication. The system aims to streamline the entire process,
reducing errors, increasing efficiency, and providing real-time updates and visibility into the
delivery process.
Application:
3
1.5 General and Unique Services in the database application
General Services:
1. Order Management: The system should allow businesses to manage and track their
orders from creation to final delivery, including order processing, scheduling, and
dispatch.
2. Real-time Tracking: The system should provide real-time tracking of packages at every
stage of the delivery process, allowing businesses and customers to track their shipments
and receive updates on their status.
3. Delivery Scheduling: The system should provide businesses with the ability to schedule
deliveries and allocate resources efficiently, improving delivery times and reducing costs.
4. Payment Management: The system should allow businesses to manage their payment
processes efficiently, including invoicing, billing, and payment tracking.
Unique Services:
1. Route Optimization: The system should provide businesses with the ability to optimize
their delivery routes based on real-time traffic and other relevant factors, reducing
delivery times and costs.
3. Multi-Carrier Integration: The system should provide businesses with the ability to
integrate with multiple carriers, allowing them to select the most efficient and cost-
effective carrier for each shipment.
4
4. Package Scanning: The system should provide businesses with the ability to scan and
track packages using barcode scanners, improving accuracy and reducing errors.
5. Proof of Delivery: The system should provide businesses with the ability to capture
proof of delivery, including electronic signatures and photo confirmation, providing an
extra layer of security and accountability.
Introduction:
This section should provide an overview of the software system, its purpose, and its
intended audience.
Functional Requirements:
This section should outline the functional requirements of the software system, including
the features and capabilities it should provide. It should cover key areas such as order
management, real-time tracking, warehouse management, delivery scheduling, payment
management, and customer communication.
Non-functional Requirements:
This section should outline the non-functional requirements of the software system,
including performance, scalability, security, reliability, and usability. It should also cover
any regulatory or compliance requirements that the system needs to adhere to.
User Interface:
This section should provide a description of the user interface, including the layout, design,
and navigation
of the system. It should also describe any user interactions and workflows
System Architecture:
This section should provide an overview of the system architecture, including the hardware
and software components, and how they interact with each other. It should also cover any
third-party integrations that the system requires.
5
CHAPTER 2
LITERATURE SURVEY
2.1 Existing system:
A literature survey is a comprehensive review and analysis of
existing literature and research related to a specific topic or domain. Here are some
key points to consider when conducting a literature survey for a courier
management system:
2. Evaluate the Quality of Sources: Once you have identified potential sources of
information, evaluate the quality of each source based on its relevance, credibility,
and validity. Look for sources that are peer-reviewed and published in reputable
journals or conferences.
3. Summarize Key Findings: As you review each source, summarize the key
findings, insights, and recommendations related to the topic of courier
management. Organize the findings based on common themes or categories to help
identify trends and patterns.
6
system architecture, functional requirements, non-functional requirements, user
interface design, and testing and deployment strategies.
By conducting a thorough literature survey, you can gain valuable insights and
knowledge related to the domain of courier management, and use this information
to design and develop a high-quality and effective courier management system.
ADAVANTAGES
Improved Efficiency: A courier management system can help automate and
streamline many manual processes, such as order processing, dispatching, and
tracking, which can help improve overall efficiency and reduce errors.
Reduced Costs: A courier management system can help reduce costs by optimizing
delivery routes, reducing fuel consumption, and minimizing manual labor
requirements.
Better Resource Management: A courier management system can help optimize the
use of resources, including vehicles, drivers, and warehouse space, which can help
improve overall resource management and reduce waste.
7
CHAPTER 3
The design of the system architecture will also need to take into account the various user roles
and permissions that are required to manage the courier management system, as well as the
various interfaces and APIs that need to be developed to integrate with other systems and
services.
Overall, the system architecture and design for a courier management system will require careful
planning and consideration of the various technical and business requirements, as well as
ongoing monitoring and management to ensure the system continues to meet the needs of the
business and its customers.
8
3.1.1 Front end (UI)design:
Microsoft Visual Studio comes with Django Framework and
supports applications targeting Windows. It supports IBM DB2 and Oracle databases, in
addition to Microsoft SQL Server. It has integrated support for developing Microsoft
Silverlight applications, including an interactive designer.
The Djnago Framework provides a managed execution environment, simplified
development and deployment, and integration with a variety of programming languages,
including Visual Basic and Visual Python.
The command Object:
• Execute Non-Query: Executes commands that have no return values such as INSERT,
UPDATE AND DELETE.
10
Figure 3.2.2 Use Case Diagram for Courier Management System
11
CHAPTER 4
4. Modules and Functionalities
4.1 MODULES:
A courier management system is a software application that helps courier and delivery
companies manage and track their daily operations. Here are some common modules and
functionalities that can be included in a courier management system:
1. Order Management: This module allows users to create and manage orders, including
entering sender and receiver details, shipment weight, and destination.
2. Tracking and Status Updates: This module allows customers and company employees to
track the progress of their shipments through various stages of the delivery process. This
includes real-time updates on the status of the shipment, such as when it has been picked
up, in transit, or delivered.
3. Route Optimization: This module optimizes the delivery routes to save time, reduce fuel
consumption, and increase efficiency. This can be achieved by calculating the shortest and
fastest route to reach the destination.
4. Fleet Management: This module helps companies manage their fleet of vehicles,
including assigning drivers and vehicles to deliveries, tracking fuel consumption, and
scheduling maintenance.
4.2 Functionalities:
Billing and Invoicing: This module provides billing and invoicing functionality, allowing
companies to generate invoices and receive payments from customers.
Warehouse Management: This module enables companies to manage their inventory in
warehouses, including tracking stock levels, receiving and dispatching orders, and managing
returns.
User Management: This module enables companies to manage user accounts, including
setting user roles and permissions to control access to sensitive information and ensure data
security.
12
CHAPTER 5
5. CODING AND TESTING
5.1 CODING:
Code Editor is where the logical were developed into code and kept safe in the
solution explorer. In solution explorer we kept every code file by creating the folder
and adding those files in a folder that are similar in nature. The main folder was the
Inventory Management System.
Logic:
13
return redirect('dashboard')
return render(request,"login.html")
LOGOUT PAGE
def logout_user(request):
logout(request)
return redirect('login')
SIGN UP PAGE
def signup(request):
if request.method=="POST":
username=request.POST.get("username")
email=request.POST.get("email")
password=request.POST.get("password")
try:
user=User.objects.create_user(username=username,email=email,password=password)
login(request,user)
return redirect('track')
except:
return render(request,'signup.html',{'error':'Change email or username'})
return render(request,'signup.html')
DASHBOARD PAGE
@login_required(login_url='login')
def dashboard(request):
if request.user.manager==True:
branch=Branch.objects.get(manager=request.user)
courier_all=branch.couriers.all().order_by('-created')
14
pending=courier_all.filter(status='pending')
courier_all=courier_all.filter(status='Delivered')
if request.method=="POST":
client_id=request.POST.get("client_id")
try:
courier=Courier.objects.get(courier_id=client_id)
except:
return
render(request,'dashboard.html',{'couriers':courier_all,'error':"something went to
wrong"})
if courier is not None:
Tracker.objects.filter(courier=courier).update(present=branch)
courier.status="pending"
courier.save()
branch.couriers.add(courier)
return
render(request,'dashboard.html',{'couriers':courier_all,'branch':branch,'todays':pending})
else:
return HttpResponse("Not allowed")
SHIPMENTS PAGE
login_required(login_url='login')
def shipments(request):
branch=Branch.objects.filter(delivery=request.user)[0]
couriers=Branch.objects.get(name=branch)
couriers=couriers.couriers.filter(status="pending")
15
if request.method=="POST":
client_id=request.POST.get("client_id")
try:
courier=Courier.objects.get(courier_id=client_id)
except:
pass
if courier is not None:
courier.status="Delivered"
courier.delivery_by=request.user.username
courier.save()
return render(request,'shipments.html',{'couriers':couriers})
TRACKER PAGE
@login_required(login_url='login')
def track(request):
if request.method=="POST":
id=request.POST.get("tracking-number")
try:
tracker=Tracker.objects.get(courier__courier_id=id)
except:
return render(request,'track.html',{'error':'Check id!'})
if request.user.id == tracker.courier.customer.id:
return render(request,'track.html',{'tracker':tracker})
else:
16
return render(request,'track.html',{'error':'Not Allowed!'})
return render(request,'track.html')
MANAGER PAGE
@login_required(login_url='login')
def report_manager(request):
branch=Branch.objects.get(manager=request.user)
reports=branch.reports.all()
return render(request,'report.html',{'reports':reports})
REPORT PAGE
• Codes
class User(AbstractUser):
manager=models.BooleanField(default=False,null=True)
worker=models.BooleanField(default=False,null=True)
email=models.EmailField(unique=True,null=True)
REQUIRED_FIELDS = []
def _str_(self):
return self.username
class Courier(models.Model):
name=models.CharField(max_length=20)
customer= models.ForeignKey(User,
on_delete=models.CASCADE)
destination=models.TextField()
id=models.UUIDField(primary_key=True,default=uuid.uuid4,uniq
ue=True,editable=False)
courier_id=models.CharField(max_length=50,default=uuid.uuid4)
created=models.DateTimeField(auto_now=True)
17
status=models.CharField(max_length=10,default="In Transit")
delivery_by=models.CharField(max_length=20,default=None,null
=True,blank=True)
def _str_(self):
return self.name[:20]
class Report(models.Model):
report= models.TextField(null=True)
created=models.DateTimeField(auto_now=True)
courier=models.ForeignKey(Courier,
on_delete=models.CASCADE,null=True)
customer= models.ForeignKey(User,
on_delete=models.CASCADE,null=True)
id=models.UUIDField(primary_key=True,default=uuid.uuid4,uniq
ue=True,editable=False)
report_id=models.CharField(max_length=50,default=uuid.uuid4)
def _str_(self):
return self.customer.username[:20]
class Branch(models.Model):
name=models.CharField(max_length=20)
manager=models.ForeignKey(User,
on_delete=models.CASCADE)
address=models.TextField()
id=models.UUIDField(primary_key=True,default=uuid.uuid4,uniq
ue=True,editable=False)
branch_id=models.CharField(max_length=50,default=uuid.uuid4)
couriers=models.ManyToManyField(Courier,related_name="couri
ers",blank=True)
delivery=models.ManyToManyField(User,related_name="delivery
s",blank=True)
reports=models.ManyToManyField(Report,related_name="reports
",blank=True)
18
def _str_(self):
return self.name[:20]
class Tracker(models.Model):
courier=models.ForeignKey(Courier,
on_delete=models.CASCADE,null=True)
customer= models.ForeignKey(User,
on_delete=models.CASCADE,null=True)
present= models.ForeignKey(Branch,
on_delete=models.CASCADE,null=True)
def _str_(self):
return self.courier.name[:20]
@receiver(post_save,sender=Courier)
def create_tracker(sender,instance,created,**kwargs):
if created:
Tracker.objects.create(courier=instance,customer=instance.custom
er)
• ORCALE CODES
5.2 TESTING:
standards and application need. Testing does not ensure quality and the purpose of
testing
is not to find bugs. Testing can be verification and validation or reliability estimation.
The
primary objective if testing includes:
To identifying defects in the application.
The most important role of testing is simply to provide information.
to check the proper working of the application while inserting updating and deleting
21
CHAPTER 6 RESULTS AND DISCUSSIONS
6.1 OUTPUTS:
22
Figure 6.1.2 Login page
23
Figure 6.1.3 Main administration
24
Figure 6.1.5 Tracker page
25
Figure 6.1.7 Delivery Boy page
26
6.2 DISCUSSION ABOUT OUTCOME:
The outcome of a courier management system depends on various factors, including the
specific needs of the business, the features included in the software, and the
implementation process.
27
CHAPTER 7
7. CONCLUSION AND FUTURE ENHANCEMENT
7.1 CONCLUSION:
In conclusion, a courier management system is a valuable tool for businesses that rely on
courier services to deliver their products. By automating manual tasks, providing real-time
tracking and reporting, and optimizing delivery routes, a courier management system can
help businesses improve efficiency, increase productivity, enhance visibility, provide better
customer service, and save on delivery costs. The specific outcomes of implementing a
courier management system will depend on the unique needs of each business, the features
of the software, and the implementation process. However, overall, a courier management
system can be a significant asset to businesses looking to streamline their courier delivery
process and improve their bottom line.
28
4. Data Analytics: Advanced data analytics could be incorporated into courier management
systems to help businesses gain insights into their delivery operations, identify trends, and
make data-driven decisions to optimize their delivery process.
5. Sustainability Features: With an increasing focus on sustainability, courier management
systems could be enhanced by incorporating features that allow businesses to reduce their
carbon footprint by optimizing delivery routes, reducing vehicle emissions, and promoting
sustainable practices.
Overall, by incorporating these or other enhancements, courier management systems can
continue to evolve and improve to meet the ever-changing needs of businesses and
consumers alike.
29
REFERENCES
[2] https://docs.oracle.com/en/solutions/build-governance-app-
oraclepaas/create-front-end-application-using-visual-builder-cloud-
service1.html
[3] https://www.slideshare.net/DivyaBaghel111/synopsis-
oncouriermanagementsystem
[4] AMAZON,FLIPKART
[5] https://couriermanagement.pythonanywhere.com/login/
30