Java
Java
Java
Introduction
This project was primarily concerned with the entire procedure for developing a courier
management system. The system enables courier services to be accessed easily by employees
and users. A number of features are included in this project, including the management of user
information, orders, delivery, and profiles. In addition, there is a report that shows the number of
orders. The system is based on Java Swing and data is stored and retrieved from text files. The
Courier management system is implemented using Java Swing classes and JFrame classes.
The admin of the service is the system administrator. The administrator is given an
exclusive user ID and password. They can access all parts of the system. The admin is also
responsible for adding new users to the text file. This includes adding, editing, and handling
customer orders. An administrator can search, view, edit, and delete products. Aside from that,
they can inspect, search, and accept or reject orders.
User:
Using the system, users can place orders. In order to access the system user must create
their account. The system requires their user Names, addresses, and Contact number to track
clients. Users may place, remove, review, edit, and search orders as well as change their profiles
at any moment.
Delivery staff:
A wide range of things can be delivered by delivery personnel to various destinations and
by various routes. He or she can examine the order, process it, and then update the courier status
after it has been finished. He may provide recommendations for the feedback session and also
collect cash.
3. Purposed system
The system will handle daily tasks such as out returns, corporate information, hub
pricing, booking, and delivery locations. Using a manual method would create a lot of
franticness, so it isn't an easy process. It is recommended to automate the process by building the
appropriate software as the world transitions from manual work to an era of information and
technology.
4. Objective
The major objective of the courier service system are given below:
5. Scope
A positive relationship between the business owner and the consumer is created through
it.
With automation, the resources will be utilized effectively and increase their productivity.
More user-friendly interface so, it will attract users to use it.
6. Limitation
There are many limitations of the proposed system while changing the system from a
manual to an automated system.
Increase in unemployment: Employees expressed concern about being laid off due to
the use of automated systems.
Training cost: It will take time and money for the business to teach the staff how to use
the courier Service system more effectively.
System Maintenance cost: Due to updates, installs, and new user requirements, the
system will need to be modified. However, because of the significant advantages, it
would bring, implementing a courier service system for the transport and cargo industry
is worthwhile.
7. Research Methodology
The main objective of the system is to enhance the efficiency of the existing system. It is
crucial to analyze the requirements specifications in this regard. In order to create the new
system, a preliminary analysis of the existing one will be conducted. Researchers have
investigated whether changing the system into an application program could resolve the issues
and eliminate the inefficiencies of the old system (TYAGI, 2013).
7.1. Feasibility Study
A method of assessing whether or not the project has a realistic possibility of success is
called feasibility. This study's goal is to confirm that the idea is both economically and legally
feasible. A feasibility study also aids in identifying the project's advantages and disadvantages,
and it offers advice on how to proceed in order to advance it and achieve the intended results.
The implementation of the projects assessed in the feasibility study often hinges on those areas.
For courier systems, a GUI, as well as a relational database, can be integrated. Using
careful programming, it is possible to eliminate data redundancy and prevent storage space
waste. Programming is careful to keep processing times as short as possible. A simple user
interface makes the system easy to use (TYAGI, 2013).
We need to evaluate three parts of the feasibility study, which are as follows:
1. Login
The courier management system has three types of access such as admin, delivery and
user.
2. update status
3. View status
View the status of other delivery and update the most recent delivery information.
5. View detail
Admin can view all the detail and update the information.
6. Delete data
Admin can have a right to delete the information of the delivered.
7. Search option
It has a search requirement for the both user as well as delivery staff.
1. This system is simple to use because it has a user-friendly interface and adequate
documentation.
2. This system offers a lot of privacy options. Nobody but the admin is allowed to see the details
of other users.
4. A menu tab and exit button are available for each frame.
8. software development
The design document is created in accordance with the specifications provided by the
customer throughout the software development process. Processes used to convert the SRS
document into the design document constitute the primary goal of the design phase. During the
next phase, it will be necessary to program the design document that was created during the
design phase.
8.1. Use Case Diagram
Use case diagrams to depict the details of a system and its users. Multiple components of the
system are frequently depicted as interacting visually (Tech Target, 2020). Here we have 3 actors
(i.e., user, Delivery staff, Managerial staff)
An independent contractor provides delivery services under the courier management system and
is also known as a delivery staff. A login account and password are needed in this system for
access by the delivery personnel. After that, the system transfers the information to the delivery
dashboard, where the admin will allocate the delivery crew. Delivery can look up the history of a
courier in this system. The delivery team updates the courier's status. Each order's info is updated
here.
The third actor one is Managing staff are individuals who handle senior administrative,
managerial, or executive responsibilities. The board refers to men and women who carry out
tasks such as these as managerial personnel, including deans, associate deans, heads of
administrative units, and administrative assistants. To access or manage this system, the
administrator is given a login and password. Here, the administrator can edit the employees and
users. He or she may see the order details. He is able to conduct a detailed search and issue
orders to both employees and users. Here everything is under the control of the managing staff.
8.2. Class Diagram
Diagrams such as class diagrams are used to describe static diagrams, in which
classifications, attributes, relations, and actions are used to map system structure. During an
activity, different classes are identified through three parts of a class diagram: the class name is
found in the first part of the class diagram; the class attributes are contained in the second part of
the class diagram; the class operations are contained in the third part of the class diagram, and
the class relationships are contained in the fourth part.
A static representation of the program is provided by the class diagram, which is prepared for use
in construction thanks to its ability to map to an object-oriented language. The class diagram is
the most often used UML diagram, in contrast to the sequence diagram, activity diagram, etc.
here we have altogether 9 classes that are interlink with each other.
As there are three access areas in this activity diagram user, delivery, and managerial. If we try to
log in, the system first verifies that the password with user type and then takes us to the user
dashboard, which includes the ability to place orders, view orders, and provide feedback while
also having the ability to view feedback. After the process completion we have an logout option.
The system will first check the delivery user and password if we want to access the
delivery. The delivery dashboard, which contains the order update, order view, and user
feedback views, is reached after the password match. After the delivery procedure is over, we
have the choice to log out.
The system will also verify that the managerial username and password match before
moving on to the user dashboard. The admin has the authority to examine orders, assign orders,
manage users, manage users, manage employees, and view user-provided comments. Admins
can add, remove, or update users and staff inside the manage staff and user section. When all the
steps have been taken, the logout session begins.
11. Testing
In the testing policy of the organization, a number of commonly used research
approaches are described. Test managers should be able to develop an efficient assessment
strategy based on the project's criteria and the requirements of the companies. Testing the project
is conducted using the following techniques, which are well-known (Help, 2018).
Our first test involved creating a user account for both a regular user and an
administrator, following which We signed in to the system. An admin can add, delete, or upgrade
users after their registration has been reflected in the database and the back-end.
11.3. system testing
It is a kind of testing that ensures the entire, flawlessly integrated software solution is
working as intended. Testing of this system aims to determine whether it complies with the
requirements listed. Additionally, it must be tested to ensure that it meets quality standards. The
system is an independent tester, which does not develop applications. This system check verifies
that the software meets the functional, business, and technological requirements of the customer.
In addition, our suggested solution is suitable for every environment and meets all requirements
(Help, 2018).
Fig: Class
12.2. object
There are two types of objects: Java OOP objects and Java API objects. Java OOP objects
store the state in fields and expose the behavior through methods and functions. An object is
often recognized by its distinctive name, which designates a specific instance of a class. In
object-oriented programming, objects are the basic building blocks. It is important to note that
each object has a state and behavior. As an example, a dog has characteristics such as its color,
breed, and name, as well as actions such as breaking and eating (oracle, 2022).
Fig: making object
12.3. Abstraction
There are parts of the class that define the implementation details while there are other
parts that are simply behavior definitions that remain to be implemented later. Similar to how
interfaces do it, the abstract class only defines the signature for additional methods. The
implementing classes will each have a different method implementation for these methods.
Commonly, a concrete class is a class that implements an abstract class. We often refer to a
concrete class as extending an abstract class rather than implementing it, as we would with
interfaces, because of the inheritance connection between the two classes (Hamill, 2014).
Fig: abstraction
12.4. Inheritance
Inheritance is the act of acquiring all the properties from one object to another. It is the
properties and behaviors of a parent object that are described here. This is a crucial part of the
OOPs. The concept of inheritance in Java is that new classes may be constructed on top of older
ones. You can utilize the parent class's methods and properties when you inherit from an existing
class. You may also add additional fields and methods to your existing class. Golden retrievers
are classified as dogs and are members of the mammal family, a subclass of species. Objects
would have to state their traits explicitly if hierarchical use was not available. Using inheritance,
an object simply needs to express the features that make it unique from its class members. Its
basic characteristics can be determined by its connection to blood. A particular item can
therefore be characterized as a particular instance of a more general situation by virtue of the
inheritance principle (Parlante, 2002).
Fig: Inheritance
12.5. Encapsulation
Using encapsulation, you can connect the code and the data it affects while protecting the
external interface and abuse. In other words, encapsulation prevents unauthorized access to code
and data by creating new code over the wraps outside the surface. It is carefully restricted
whether code or data behind the wrapper can be accessed by users through a clear interface. To
relate the encapsulation to reality, consider an automobile's automatic transmission. A large
amount of engine data is stored in it, including your speed, your position on the ground, and the
pitch of the surface. The Java class is the cornerstone of encapsulation. Each object in a class has
the structure and behaviors described in the class, which are the data and code that must be
shared by all members of the class set (logic, 2020).
Fig: encapsulation
12.6. Constructor
When a new object is created, the constructor initializes the object's state. A constructor
is invoked during the creation of an object, normally after the new keyword has been used. Super
constructors can also be invoked by child classes to initialize parent objects. The syntax of
constructors and methods are the same, but they do not have any return type and their name must
match the class name (case-sensitive). There are some rules for defining a constructor are
(Layka, 2014):
2. In the same way that methods can be overloaded, constructors can also.
12.7. Interface
Interfaces are collections of abstract methods and constants. An interface contains the
body of default and static methods. The main function of a class is to define the behavior of the
object that it is used to create. In contrast, an interface is a set of behaviors that a class must
implement if it intends to implement it. An interface must be implemented in an abstract class for
the program to run, otherwise, all its methods will not be declared. In the case of an Interface, it
is analogous to a class signing an agreement with the Interface (Notes, 2022).
Fig: interface
12.8. Polymorphism
Polymorphism refers to the idea of objects of different kinds being accessible via the
same interface. This interface can be implemented independently by each type. It is a
fundamental idea in object-oriented programming (OOP). In order for things with different
internal structures to share the same outward interface, this is crucial. There are mainly two
concepts in polymorphism (Janssen, 2018);
1. Overloading: Using method overloading, you can have multiple methods of the same
name but with different arguments. It increases the readability of the program. We can do
overloading methods by (-, 2022).
Changing the number of parameters.
Changing data types.
2. Overriding: Overriding is a function of object-oriented programming languages that
requires a subclass or child class to provide methods that are already provided by the
superclass or parent class. Polymorphism can be efficiently used if the parent classes and
child classes establish a hierarchy between lower and higher productivity classes (S.,
2022).
13. Screenshot
13.1. login
Fig: login
The Main page, which is the User login page, will be the first page to appear when the software
is launched. Users can enter their User ID and password at this point.
13.2. Signup
Fig: signup
If user don’t have account, then this interface is for the user to create the account after that
system will moves to change password. In this section user are given default password ‘123456’
after that user required to change the password.
13.3. Managerial Panel
This is the Dashboard for the managerial or admin where an overview of the admin scene and
states that the system is intended to be able to handle all necessary tasks including managing user
accounts, report of courier, and search courier, updating staff details, and view feedback in the
admin module.
13.3. Delivery Panel
On this screen, you will find the Delivery dashboard. Delivery is reached, featuring order
updates, order views, and user feedback, search courier. They can also check the status of their
earlier orders. Additionally, they may edit their profile.
This is the User panel where the customer were requested to fill the order form. The order form
includes the different sections like pickup address, drop address, sender as well as receiver name.
Also includes the weight of the order and the price of delivery is automatically calculated by the
system.
13.5. Feedback
It is a panel of giving feedbacks of the system by users. If a user want to share anything about the
system they can share and submit here which is automatically rated by our system.
This is the panel where the customer, admin, and Delivery staff all were allowed to see the
feedbacks provided by the users. from the above screenshot, we can know about the feedback of
different users like Ram, Suman, etc.
14. Conclusion
As a result of its Java development, the courier management system was designed to
meet the demands of the system for which it was developed. As a result of this project, we
learned the concept of Object-Oriented Development with Java quite well. With this project, we
are able to demonstrate object-oriented concepts in the context of an existing system. The goal of
this project was to provide a functional capability to create, explain, and enforce an object-
oriented framework.
14. Reference
-, B. G. (2022, 07 06). Method Overloading in Java with Examples - Great Learning. Retrieved
from my great learning: https://www.mygreatlearning.com/blog/method-overloading-in-
java/
Help, S. T. (2018, 5 20). Types of Software Testing: Different Testing Types with . Retrieved
from softwaretestinghelp.com: https://www.softwaretestinghelp.com/types-of-software-
testing/
Janssen, T. (2018, 01 06). OOP Concepts for Beginners: What Is Polymorphism. Retrieved from
dzone.com: https://dzone.com/articles/oop-concepts-for-beginners-what-is-polymorphism
Layka, V. (2014). Introduction to Java. In Learn Java for Web Development, pp. 383-398.
Malik, Y. (2018, 5 15). How to perform System Testing using various types of techniques? .
Retrieved from loginworks.com: https://www.loginworks.com/blogs/how-to-perform-
system-testing-using-various-types-of-techniques/
Nirosh, L. (2013, 4 8). Introduction to Object Oriented Programming Concepts (OOP) and More.
Retrieved from codeproject.com: :
http://www.codeproject.com/Articles/22769/Introduction-to-Object-Oriented-
Programming-Concep
S. (2022, 07 22). Overriding in Java [Methods, Uses, Examples with Output]. Retrieved from
Simplilearn.com: https://www.simplilearn.com/tutorials/java-tutorial/overriding-in-
java#what_are_the_rules_for_method_overriding_in_java
Wayde, R. (2021, July 8). Courier Management System Project For Final Year.
LovelyCoding.Org. https://www.lovelycoding.org/courier-management-system/