Java

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 26

1.

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.

There are three ways to access the system:

 Managing staff as Admin:

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.

2. Existing system review


According to Wayde (2021), The most important responsibility for developers is to
explore the issues and state of the current system since it contributes to establishing the system's
needs and requirements. Knowing the issues with the current system helps us to have a clear
vision of how it should be constructed. So that it will help us to determine the function that must
be added to the system. We have received one scenario in the assignment that has two different
sorts of end-users:  managing staff and delivery staff. courier services system is not handled by
our customer. To handle shipments, several tools from outside sources are used. The application
was not customized for any particular client. An excel spreadsheet was used by the customer to
keep track of billing, shipment, and shipment stator shipments. Digitalization has not been
implemented in transaction processes. Records are difficult to manage manually and are
frequently inaccurate. Managing all the records manually takes a lot of time. The limitation of
the existing system are:

 Difficulty in searching for information.


 It was based on a manual system.
 The important data might be lost.
 Anyone can access the system and get confidential data.
 It used to consume time more.
 The processing speed is too slow.
 Inaccurate data were found more.

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:

 To provide a reliable courier service system.


 To develop a user-friendly interface.
 To calculate the employee's working hours.
 To deliver prompt service with no delays.
 To protect the Text file records.
 To provide knowledge of technology(software).
 To increase the processing speed fast.

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:

7.1.1. Operational Feasibility


An operationally feasible system is one that is accepted by the user and is used to support
the business objectives. Despite its attractive appearance, this mechanism is easy to use and
straightforward. There is no need for users to receive special training in order to use the system.
In addition to discussing the system's ability to provide accurate information on customers and
products, the technical presentation also discusses whether the system can provide the right
information consistently and at the right time.

7.1.2. Technical Feasibility


There are several technical requirements that need to be satisfied for the project to be
technically feasible. During the technological evaluation of an allocated project, a decision is
made as to whether the existing systems can be adapted and upgraded to incorporate the new
technology. We do not need any other hardware or software since the program will be developed
on the Java platform. A basic courier management system will be activated through the internet
using the software developed for the project.

7.1.3. Economic Feasibility


In order to determine whether a new system is economically feasible, it is necessary to
weigh the advantages it would bring against the costs involved in designing and implementing it.
With the help of this feasibility study, the management has a financial reason for implementing
the new system. (BrightHubProjectManagement, 2009)

In this situation, a comprehensive economic analysis that provides an accurate cost-


benefit comparison would be considerably more useful. Furthermore, this serves as a useful
comparison tool as the project develops. Automating can lead to a number of intangible benefits.
Customers might be more satisfied, products might be of higher quality, information might be
available more quickly, decisions made more accurately, activities might be accelerated,
processes improved, documentation and record-keeping improved, and staff morale might be
higher.

7.2. Functional and Non-Functional Requirement


7.2.1. Functional Requirement
Functional requirements define the prerequisites for a system to operate properly. Here
are some of the requirements for the courier management system:

1. Login
The courier management system has three types of access such as admin, delivery and
user.

2. update status

Their primary responsibility is to update delivery information and status.

3. View status

View the status of other delivery and update the most recent delivery information.

4. Assign delivery task

Admin can assign the delivery task to the delivery person.

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.

7.2.2. Non-Functional Requirement


It is not required to satisfy non-functional requirements. Non-functional criteria describe
the system's characteristics and functionality. It is possible for a system to have a number of
characteristics, such as reliability, reaction time, maintainability, availability, and storage
requirements. Some of the non-functional requirements of the courier management system are
given below:

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.

3. Any delays in delivery can be reported by customers.

4. A menu tab and exit button are available for each frame.

5. File based system is used to store the data.

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)

Fig: use case diagram


Here, a user may register an account, have access to the user dashboard, place orders,
examine order information, also known as the user's history, and see the status of their orders,
including whether they are still waiting, in the middle of processing, or have already been
delivered by the courier.

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.

Fig: class diagram

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.

8.3. Activity Diagram


Flowcharts show how actions lead to other actions in an activity diagram. A system operation
could be used to describe the action. Activity diagrams are primarily used to depict the dynamic
behavior of a system. Some people refer to object-oriented flowcharts as "object-oriented
flowcharts."

Fig: activity diagram

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.

8.4. GANTT Chart

Fig: Gantt chart timeline


Fig: Gantt chart

9. Hardware and Software Requirements


The system must have the following hardware and software components in order to
function properly. The hardware requirement is given below:

Minimum free Hard Drive space = 100Mb

Minimum RAM = 128Mb

I3 processor required with 1.4GHZ

The software requirement is given below:

Operating system = window 7/8/10 and 11

Integrated development environment = NetBeans, Eclipse J2EE

Drivers: Java Runtime Environment


10. Backup and Recovery
To ensure data is not lost in the event of an accident or disaster, backup and recovery
plans are crucial. Furthermore, if we have a solid backup and recovery strategy, the data will not
be lost even when we are in an urgent situation, and we will be able to restore our data and keep
the application working normally. This software was backed up using text files (.txt). Text files
are used to store the information generated by this software. Text files are used for various data
categories, including user details, delivery details, and order details. Java file handling
techniques are used here to handle the system's inputs and outputs to the file.

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).

11.1. Unit Testing


In software development, unit testing is a method for ensuring that a unit of code will
function as intended and that it will always deliver the same outcome. To reduce time and
money, this testing is typically used to execute unit tests. Further, it executes a tiny portion of our
code and runs independent checks against other components of the project. A unit test is run on
every module of the courier management system. In order to determine whether each system
module works properly, every module was examined (Help, 2018).

11.2. Integration Testing


The purpose of integration testing is to confirm all integrated components function
together after they have been integrated. A module can be anything from a piece of code to a
standalone program to a client-server application running over a network. It is particularly
suitable for testing client-server and distributed systems (Malik, 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).

12. Implementation of Code


12.1. class
In simple terms, classes are the blueprints for describing objects in depth. A class
specifies the state and behavior of a real-world object by combining its name, its characteristics,
and its operations or behaviors (Nirosh, 2013).

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):

1. Constructors are given the same names as the class.

2. In the same way that methods can be overloaded, constructors can also. 

3.   A constructor and a method can have the same name.   

4. Constructors in Java may not be abstract, static, final, or synchronized.


Fig: constructor

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

fig: 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

Fig: 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.

13.4. User Panel


Fig: user dashboard

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

Fig: Give 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.

We have concluded this project by using the principle of object-oriented programmings


such as abstraction, encapsulation, inheritance, and Polymorphism. So, we get more knowledge
about file handling, overloading, and overriding while doing this project. It helps to boost the
skill in java. So, by applying all those things we were able to meet the requirement of the
assignment.

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/

BrightHubProjectManagement. (2009, 11 18). brighthubpm. Retrieved from brighthubpm.com:


https://www.brighthubpm.com/project-planning/56372-types-of-feasibility-studies/

Hamill, H. (2014). Abstraction in Java – The ULTIMATE Tutorial. javacodegeeks, 1-15.


Retrieved 07 23, 2022, from https://www.javacodegeeks.com/2014/07/abstraction-in-
java.html

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.

logic, S. (2020, 01 5). Encapsulation. Retrieved from www.sumologic.com:


https://www.sumologic.com/glossary/encapsulation/#:~:text=In%20object%2Doriented

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

Notes, U. (2022, 01 16). Interface in Java. Retrieved from usemynotes.com:


https://usemynotes.com/interface-in-java/
oracle. (2022, 03 02). What Is an Object? Retrieved from oracle..com:
https://docs.oracle.com/javase/tutorial/java/concepts/object.html

Parlante, N. (2002). OOP2 -- Inheritance. CS193j, Stanford, 1-12. Retrieved from


https://web.stanford.edu/class/cs193j/handoutsWinter2003/09OOP2.pdf

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

TYAGI, A. (2013). Courier Management System. Department of Computer Applications, 6-77.


Retrieved from https://docshare.tips/courier-management-system-cms-
_57503ba6b6d87f51a08b4928.html

Tech Target. (2020, July). Retrieved from Tech Target:


https://www.techtarget.com/whatis/definition/use-case-diagram

Wayde, R. (2021, July 8). Courier Management System Project For Final Year.
LovelyCoding.Org. https://www.lovelycoding.org/courier-management-system/

You might also like