IJEMR2022120536 (4)

Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

International Journal of Engineering and Management Research e-ISSN: 2250-0758 | p-ISSN: 2394-6962

Volume-12, Issue-5 (October 2022)


www.ijemr.net https://doi.org/10.31033/ijemr.12.5.36

Travel Planning Management System


1 2 3 4 5
Madushan S.H.K , De Alwis Gunathilake W.L.D.C.K , Jayasinghe J.A.S.C , D.V.P Ferdinando , D. I. De Silva and
Piyumika Samarasekara6
1
Department of Computer Science and Software Engineering Sri Lanka Institute of Information Technology. (SLIIT). Malabe,
SRI LANKA
2
Department of Computer Science and Software Engineering Sri Lanka Institute of Information Technology. (SLIIT). Malabe,
SRI LANKA
3
Department of Computer Science and Software Engineering Sri Lanka Institute of Information Technology. (SLIIT). Malabe,
SRI LANKA
4
Department of Computer Science and Software Engineering Sri Lanka Institute of Information Technology. (SLIIT). Malabe,
SRI LANKA
5
Department of Computer Science and Software Engineering Sri Lanka Institute of Information Technology. (SLIIT). Malabe,
SRI LANKA
6
Department of Computer Science and Software Engineering Sri Lanka Institute of Information Technology. (SLIIT). Malabe,
SRI LANKA
2
Corresponding Author: chamathkavvindya@gmail.com

ABSTRACT For example, update remaining services quantity upon


This project, "TRAVEL PLANNING travel users reserves them, acknowledge service providers
MANAGEMENT SYSTEM", is used to automate all processes about their received reservations real-time, etc. Moreover,
of travel and tourism, which deals with the creation, booking, to attract travellers from various countries and cultures,
confirmation, and user details. The project is designed with multilingual support is also available in most travel
React JS as the front end and Spring boot as the backend,
applications in the present day.
which works in any browser. A travel planning management
system is used to book a tour from anywhere in the world by a In the rest of the content, we are focusing on
single dynamic website which will help the user to know all eliminating disadvantages, minor issues, and improvements
about the places and travel details in a single web application. that can be done to develop a more intuitive, helpful travel
The admin can add travel packages to the system, transport planning software application by comparing current travel
services, place management, and hotels to create travel software products in the software market. We considered a
packages. Then the users can sign in and book each travel feature, user experience, and implementation-wise
package, and also, they can book custom travel packages. The characteristics since the implementation of an application is
user can confirm their bookings by paying for the package. It a more crucial scenario when it comes to facilitating
is the most accessible platform for travellers who can easily
complex functionalities for many customers. The rest of the
book and know all details.
content in this paper is organized considering related work,
Keywords— Travel Planning Management, Travel server-side implementation and user experience flow,
Packages, Package Booking considered features, and a summary of the content in the
body of this paper.

I. INTRODUCTION II. RELATED WORK/LITERATURE


REVIEW
A travel application in the software context helps
users to explore destinations to travel to and reserve related Considering the user experience and the
services such as accommodation, transportation services, functionalities of popular travel applications currently
outside activities providers, etc., which can be helpful while functioning in the software application market, we can
travelling. mainly identify two types of travel applications.
Several characteristics can be particularly identified 1. Travel applications for search information and
in travel applications currently available in the market. Due popular recommendations of various places* and
to the advancement of software development technologies, destinations*
companies that provide travelling-related services can 2. Travel applications for search and reserve services
obtain the advantages of real-time and automated services. that can be required while travelling
288 This work is licensed under Creative Commons Attribution 4.0 International License.
International Journal of Engineering and Management Research e-ISSN: 2250-0758 | p-ISSN: 2394-6962
Volume-12, Issue-5 (October 2022)
www.ijemr.net https://doi.org/10.31033/ijemr.12.5.36

Considering the first type, it provides information as all the recommendations and options are shown in the
regarding the places* and destinations* and what to see and flow.
do, available transport service types, available Apart from the above-proposed travel planning
accommodation service types, etc., in those mentioned flow, we tried to implement additional features in our travel
locations. In these applications, moderators of the system application.
are responsible for updating the information in the app with In our proposed system as a feature, we tried to
the latest information. Considering the second type provides implement personalized travel planning based on user
a platform to reserve various services that can be useful interests by collecting users' search history, watched items
while travelling, such as transport services, accommodation history etc., inside the application. We followed a simple
services, etc. In these applications, it can be limited to schedule reasoning method to analyze the user's collected
information provided by the commercial parties* since the data [1].
information available in the application mainly depend on In our proposed system as a feature, we tried to
them because such types of travel applications are not implement a feature to recommend different routes that can
intended to provide information that can be useful for a travel during the travel planning process upon selected
travelling user but to provide an intermediate platform for items/criteria to get concise information about travelling
reserving services that can be useful for a traveller. distance and cost using Google Maps API and used a
We tried to aggregate functionalities in the above customized Geometric Heuristic Search to estimate the cost
types in our proposed system. And then eliminate the of different routes and provide best cost-effective ways for
minorities in both kinds of travel applications. In brief, the user [2].
registered commercial parties*, travelling users, and This information will be saved along with the user's
moderators in our proposed system can propose new chosen travel services for later reference. As we observed,
places* and destinations* with things that can see and do in travel planning applications currently available in the
those mentioned places* and destinations* or update market tried to implement such a feature using third-party
existing ones as necessary. Furthermore, registered services such as Google Maps API. In our proposed
commercial parties can register their various services, application, we wanted to implement it considering user-
which can be helpful. In contrast, travelling, such as selected destinations, places, and other locations that
transport services, accommodation services, and outside provide additional services so that the user can quickly
activities such as camping and glamping, etc., so that decide whether their expectations can be fulfilled with the
registered travel users can search for them and, if interested, current budget before reserving them to make payments.
reserve them.
In our proposed system, we tried to design a single III. METHODOLOGY
user flow to plan a trip, starting from searching places* and
destinations* to reserving each essential service. Travel In this application, ReactJs is used as the front-end
users will be provided with a single-flow user experience. technology. ReactJs [5] is a front-end Javascript library for
For example, a registered user can search the desired implementing user interfaces. The backend of this
place*and destinations* or expect to visit, then reserve application is developed using SpringBoot. SpringBoot [6]
accommodation services as required, then book the is a java-based framework used to create a microservice.
transport services as required by considering the MongoDB is used as the database technology of this
information and recommendations showing regarding the application. MongoDB is a document-oriented NoSQL
place and destinations, then reserve other services if wanted database [7].
such as outside activities, spas, and wellness centres, etc., Junit4 and Mockito are used as unit testing tools.
and organize the travel plan in a single flow. This can be Junit [8] and Mockito are test frameworks [9]. Azure Board
considered an extension of the second type of travel app is used as the project management tool [10]. GitHub is used
mentioned above since those applications provide this as the version control tool [11]. Selenium is used as a test
functionality on a modular basis, which means that travel automation tool [12]. SonarQube is used to inspect the code
users can reserve various services that can be useful while quality of the system [13].
travelling, each individually but not in a single flow. Travel A. Backend Processes
users may need to search for the services they need in such User Registration
a travel application. Using our proposed system decreases In user registration, it takes the user input data like
the effort that a travelling user needs to explore each full name, email, password, and confirmed password. Then
reserve each service needs since it will be shown all the it validates that data. If there is a validation error, it will
optional and recommended services relating to a place* and display it. It will check whether there is a user registered
destinations*. Moreover, it minimizes the possibility of with the email that the user entered. If a user exists, it will
missing any service a travelling user may want to reserve, display a message saying, "User Already exists." If the

289 This work is licensed under Creative Commons Attribution 4.0 International License.
International Journal of Engineering and Management Research e-ISSN: 2250-0758 | p-ISSN: 2394-6962
Volume-12, Issue-5 (October 2022)
www.ijemr.net https://doi.org/10.31033/ijemr.12.5.36

email is valid, it will check the password and confirm The Below flow chart explains the backend process of
password matching. If not, it will display a message saying, Sign-in and Authentication.
"Password doesn't Match." After validating the password, if
it is valid, it will hash the password using BCrypt. The new
user will be saved in the database if all data is valid. The
Below flow chart explains the backend process of user
registration.

Figure 2: Sign-in and Authentication flow chart

Update User Profile


In the profile update process, users can update their
Figure 1: User Registration flow chart existing data or add new data like address and phone
number. Once the user enters these data, it will validate
Sign-in and Authentication them, and if there are any validation errors, it will return an
In sign-in and authentication, it takes email and error message. Otherwise, it will update the user data in the
password and validates that data. If there is any validation database and return a success message.
error, it will display an error message. Then it will get the Users can add a profile picture if they want. The
user from the database using email. If there is no use for profile picture will check the type of file the user uploaded
that email, it will return a bad request error saying the user and the size of the picture. It will return an error message if
doesn't exist. If the user exists, it will get the hashed it is not a valid image type or is larger than the max size. If
password from the database and check it with the user- it is valid, it will show a success message.
entered password. If the password matches, it will generate Users can also update their password by entering the
a JSON Web Token with the user id and email and return it. current password, new password, and confirm password.
First, it will check the current password by taking the user

290 This work is licensed under Creative Commons Attribution 4.0 International License.
International Journal of Engineering and Management Research e-ISSN: 2250-0758 | p-ISSN: 2394-6962
Volume-12, Issue-5 (October 2022)
www.ijemr.net https://doi.org/10.31033/ijemr.12.5.36

password saved in the database and compare with the Hotel, number of members, room category, and appointed
current password. If it is incorrect, it will return an error rooms. Then users can select a transport service, no of
A message is saying incorrect password. If it is correct, it kilometres, vehicle type(Car, Van, Mini-bus), and chosen
will check the new password and confirm password is valid. vehicles. If the data is filled, it will calculate the total cost
If it is not valid, it will return a validation error. If the and save the trip plan in the database. The below flow chart
passwords are valid, it will check if those passwords match. explains the backend process of Creating a Trip Plan.
If not, it will produce an error message. Otherwise, it will
change the user password and update the database. The
Below flow chart explains the backend process of Update
User Profile.

Figure 4: Create a Trip Plan flow chart

Payment Process
The payment process takes the user name, card
number, expiration date, and CVC number. Those data will
be validated. If there are any validation errors, it will
display a validation error. Otherwise, it will continue the
payment process. If the payment is successful, it will
display a message saying, "Payment Successful." If the
payment fails, it will display a statement saying, "Payment
Figure 3: Update User Profile flow chart Failed." Then it will save the payment details in the
database and update the trip plan status to paid. The Below
Create a Trip Plan flow chart explains the backend process of the Payment
In creating a trip plan, users can enter a title, the Process.
type of the trip plan(Individual, Couple, Family, and
Friends), the trip's start date, and the trip's end date. These
data will be validated, and if there is any validation error, it
will return a validation error message. Users can enter place
details by selecting a place and selecting travelling sites.
The user can enter accommodation details by choosing the

291 This work is licensed under Creative Commons Attribution 4.0 International License.
International Journal of Engineering and Management Research e-ISSN: 2250-0758 | p-ISSN: 2394-6962
Volume-12, Issue-5 (October 2022)
www.ijemr.net https://doi.org/10.31033/ijemr.12.5.36

Figure 6: Create Place Function flow chart

Update Place Data


The update place data backend function needs
PathVariable("id") and the request body. Then it executes
the findById method in the placeManagementRepository.
Then in the if statement, check placeData.isPresent(). If
true, execute the save method in the
placeManagementRepository and return HttpStatus.OK. If
not, placeData.isPresent() return status
Figure 5: Payment Process flow chart HttpStatus.NOT_FOUND. The Below flow chart explains
the backend process of Update Place Data.
Create Place Function
The create place backend function needs
RequestBody, then execute the try-catch block. The try
block executes the save method in the
placeManagementRepository. Then return
HttpStatus.CREATED. in the catch block exception handle
execute and return
HttpStatus.INTERNAL_SERVER_ERROR. The Below
flow chart explains the backend process of Create Place
Function.

292 This work is licensed under Creative Commons Attribution 4.0 International License.
International Journal of Engineering and Management Research e-ISSN: 2250-0758 | p-ISSN: 2394-6962
Volume-12, Issue-5 (October 2022)
www.ijemr.net https://doi.org/10.31033/ijemr.12.5.36

Figure 7: Update Place flow chart

Get Place Function


The get place backend function needs an (optional)
name. after that function executes the try-catch block. in the
try-block if(name == null) execute findAll method in
placeManagementRepository. else it executes
findByNameContaining method in
placeManagementRepository. After that, there is another if
statement to check data is empty. It indeed returns
HttpStatus.NO_CONTENT. Else it returns
HttpStatus.OK.in the catch block exception handle execute
and return HttpStatus.INTERNAL_SERVER_ERROR. The
Below flow chart explains the backend process of the Get Figure 8: get place flow chart
Place Function.
Transportation Management
In transport management services, a single API is
used to register and update transport service details in the
system. To approve or reject a transport service registration,
a single API is used in the same manner described before in
register and update transport service.
They are registering and updating a transport service
check whether a transport service record/record is already
associated with the received email address. Data would be
registered in the system if the email address was not
received. Else the transport services details will be updated
on the received email address. Users will not be allowed to
change their email address corresponding to its registered
transport services for privacy and disclosure regulation
reasons. The Below flow chart explains the backend

293 This work is licensed under Creative Commons Attribution 4.0 International License.
International Journal of Engineering and Management Research e-ISSN: 2250-0758 | p-ISSN: 2394-6962
Volume-12, Issue-5 (October 2022)
www.ijemr.net https://doi.org/10.31033/ijemr.12.5.36

process of Transportation Management. system will pass the exception. If the input entered details
are valid, the system will save the submitted Hotel
into the database. The Below flow chart explains the
backend process of Accommodation Management.

Figure 9: Transport service registration and update flow


chart

Figure 11: Create a hotel flow chart

IV. PROPOSED SYSTEM


When developing a suitable travel planning system,
there are a few things that we need to think about. A good
travel planning tool makes life easier for our customers, and
this web application should free customers from tedious and
time-consuming work. So, to help customers a little more,
Figure 10: Transport services requests flow chart we are creating new features they should consider when
choosing our online travel planning system.
Accommodation Management A. Hotel Management
After submitting the hotel details system will This is a critical part of our travel planning system.
validate the entered details. If there are any errors, the Using our system allows hotels to leverage the marketing

294 This work is licensed under Creative Commons Attribution 4.0 International License.
International Journal of Engineering and Management Research e-ISSN: 2250-0758 | p-ISSN: 2394-6962
Volume-12, Issue-5 (October 2022)
www.ijemr.net https://doi.org/10.31033/ijemr.12.5.36

power of online travel agencies, bring potential bookers to extend our target audience. A sound travel planning
directly to hotels and avoid paying commissions to OTA system should allow users to apply promotional codes. It
portals. With reasonable rates, distribution strategy, and should not come down to simple one-time discounts and
direct booking offers, hotels worldwide can easily register vouchers. Best trip planning enables guests to configure
their hotels in our system, which is the most profitable discounts on products, specific time limits, the total amount
booking channel. System Admin can add new hotels to the spent, or the number of people booked. A state-of-the-art
system in figure 12. To create a unique hotel admin needs trip planning system allows the administrator to get a quick
to insert the hotel name and address. Also, they can upload overview of how the trip planning business is doing so
images to the system. To add new rooms to the system, the visitors can take immediate action. And also, travellers can
admin needs to provide information and add a new hotel. pick already created travel packages through our system.
The user is free to select the accommodation type, and the There are five steps to complete to create a new package in
system will display details according to the selection. For figure 13. The first traveller needs to give a name for the
example, if users choose hotels as an accommodation box and select the type of trip out of family, couple or
system, they will show available rooms, and if they select individual. The need to enter the date that plans to go.
restaurant system will not, but here it will display other In the next step, the traveller can select the location and
details. places planning to visit. In the third step, the traveller must
choose a place for accommodation. The fourth step is that
the traveller can select a travelling vehicle. In the last step,
the traveller has to confirm and click the finish. Travellers
can view all plannings by clicking them and can delete
current plannings by clicking the delete button. The
traveller can navigate the payment page by clicking the
Book button.

Figure 12: Add new Hotel

It's essential to update hotel details. For that admin


can select a specific Hotel and can update hotel details. For
the hotel management function, the admin can generate
reports related to the hotels. Data plays a vital role in the
travel planning system. With the correct data at your Figure 13: Create Plan
fingertips, you can effectively measure and optimize system
performance to provide a personalized experience for On the payment page, travellers can add their
visitors. The hotel management segment has access to payment details to the system, which will validate in figure
critical data to make informed choices. 14. After payment is a success, they can book their created
B. Plan & Package Management package. On the home page, travellers can see places to
This is a central part of the trip planning system. visit and travel packages, and users can filter them. From
With online trip planning, planners can tailor their trips the home page, the user can navigate to other system
using our system. Users can select multiple locations and sections. Admin can give a title to the newly created
add them to their custom plans. With this feature, the package and select the type out of budget, midrange and
system will display hotels according to the city. Guests can premium. Then we need to set the number of days for the
lock their places in our system by paying the deposit package and can give a discount. Then admin can select a
amount. They are ready and confident to book their flights. place, accommodation, and transport and submit it.
Everyone has individual preferences when it comes
to paying for online travel planning. Some people like the
convenience of using PayPal, while others prefer to pay by
credit card or bank transfer. We can increase the number of
online bookings on our website by expanding our guest
options. Working with advertising campaigns is a great way

295 This work is licensed under Creative Commons Attribution 4.0 International License.
International Journal of Engineering and Management Research e-ISSN: 2250-0758 | p-ISSN: 2394-6962
Volume-12, Issue-5 (October 2022)
www.ijemr.net https://doi.org/10.31033/ijemr.12.5.36

Services"; the service provider can see this section from


there.
The complexities of today's transportation
regulations make the task nearly impossible without
computerization. Automating these complex transportation
processes for travellers helps ensure that transportation
services are secured at the lowest possible cost without
sacrificing quality or efficiency.
D. Place Management
Place management helps travellers choose their
destinations and plan their travel plans. Using place
management, travellers can achieve their goals and thus
unlock many benefits, such as delighting tourists so that
they return to their destination. Using our system, they can
Figure 14: Pay for the Package select their destination in their preferences. For that, they
can filter the places by selected district or city. Through our
planning process, they can add their destinations to the
C. Transport Management
system. Admin can add new places to the system, and users
Transport management is used to provide
can add beautiful places to the system. After users submit
transportation services to travellers. For that, they can pick
the places, that request will display to the system admin.
the vehicle through our planning process. Only they must
For beautiful places, travellers can add their feedback or
choose the vehicle and destination in our planning process.
rate those places. Admin can update the places, and also,
And also, any company with direct responsibility for
they can delete selected places. Only admin can be used to
transporting travellers can register their services to our
delete specific places from the system. In the beginning, the
system. They can register their services to our system as a
traveller needs to fill in the name, description of the place,
user or through our admin. After submitting the transport
location, rating, and image of the place. After that, the
registration form, the registration request sends to the
traveller can submit the form to the system. This page was
admin. In the admin dashboard, they can view available
designed by focusing on one specific task: adding the place
requested transport services. Admin can approve or reject
to the system. If the admin needs to update or delete a
those requests. The service provider can enter full details
particular place, they must choose what place they want to
about the vehicle and others to register the transport service.
delete or edit. Then the admin can edit or delete using the
When the service provider logs in to its account, a button
edit & delete button.
will be shown as "Register Services", and the service
Anyone can display all the available places from the
provider can access the "Transportation Services
system in figure 16. Initially, the system will show all
Registration" form in figure 15.
places already added to the system. If a traveller/admin
wants to add a place to the system, they can add it using the
"add" button. Also, users can search for places using a
search bar.

Figure 15: Transportation Services Registration

This page was designed to achieve one specific task:


requesting registration for transportation services. Admin
can view all the requests. The "Register Services" page will Figure 16: Display All the Places
display all the statuses of the submitted request registration
for transportation services form. When the service provider
logs in to its account, a button will be shown as "Register

296 This work is licensed under Creative Commons Attribution 4.0 International License.
International Journal of Engineering and Management Research e-ISSN: 2250-0758 | p-ISSN: 2394-6962
Volume-12, Issue-5 (October 2022)
www.ijemr.net https://doi.org/10.31033/ijemr.12.5.36

V. DISCUSSION
In the existing system, there is no way to manage all
places, accommodations, and transportation in one place.
Users had to book them separately, which is a tidies work.
And there are no packages included in all three services.
Also, there is no way to display all details in one place and
no meaningful reports to generations.
In the proposed system, those drawbacks are
addressed to give more user experience to the users.
Testing Methods
As the testing methods in the system, JUnit and
Mockito are used in the backend for unit testing. In trip plan
management, all functions( create a trip plan, get all trip
plans, get a trip plan by id and delete trip plan by id) are
covered using unit testing. In user management, adding a
new user, authenticating a user, updating a user, getting a Figure 18: Frontend SonarQube report
user by id, delete user methods are covered with unit
testing. In Travel package management, creating a package, VI. CONCLUSION
updating a package, getting all packages, getting a package
by id, and deleting a package are covered with unit testing. This travel web application was successfully created
The payment function is also covered with unit testing. and stored all the travel admins, users, places, hotel
Unit testing covered all controller, service, model, bookings, travel transportation, managing, and tour details
and DAO layers to get 100% coverage on each feature. in the database.
Integration testing can be done to test how each layer The web application was tested very well, using
communicates with the others and what are the errors and Selenium and SonarQube, and the errors were adequately
missing points. debugged. All the necessary output results are generated.
Selenium is used for automation testing to check The SonarQube system thus provides an easy way to
whether the system is working as expected. All the features automate all web application functionalities. This web
in the system are tested with selenium. The below figures application is implemented in a few areas like
show the SonarQube report of the front and backend. transportation, places, booking, and packages, but it covers
the complete tour for users, and the web application will be
helpful in many areas.
Further enhancements can be made to the project so
that it functions much more attractive and valuable than the
present one. It is concluded that the application works well
and satisfies the needs.
*places/place – From the term places/place, it is
assumed that the cities and villages which travellers are
interested in exploring.
*destinations/destination – From the term
destination, it is assumed that historical places, popular
natural environments such as forests, beachside, etc., in a
specific location or a place as in the above section.
*commercial parties – From the term commercial
parties, it is assumed that the businesses registered in the
system intended to provide various services for a wide
Figure 17: Backend SonarQube report range of travel users registered in the system.

REFERENCES
[1] User-adapted travel planning system for personalized
schedule recommendation, Hsiu-Sen Chiang, Tien-Chi
Huang, Department of Information Management, National

297 This work is licensed under Creative Commons Attribution 4.0 International License.
International Journal of Engineering and Management Research e-ISSN: 2250-0758 | p-ISSN: 2394-6962
Volume-12, Issue-5 (October 2022)
www.ijemr.net https://doi.org/10.31033/ijemr.12.5.36

Taichung University of Science and Technology, No. 129, [5] https://reactjs.org.


Sec. 3, Sanmin Rd., Taichung 40401, Taiwan, ROC.
[6] https://spring.io/projects/spring-boot.
[2] Geometric travel planning Stefan Edelkamp, Shahid
Jabbar Universitat Dortmund Fachbereich Informatik, [7] https://www.mongodb.com/.
Lehrstuhl V Baroperstraße 301 D-44227 Dortmund, [8] https://junit.org/junit4/.
Thomas Willhalm Universitat Karlsruhe ¨ Institut fur Logik, [9] https://site.mockito.org/.
Komplexitat und Deduktionssysteme D-76128 Karlsruhe.
[10] https://azure.microsoft.com/en-
[3] Camacho, D., Borrajo, D. & Molina, J.M. (2001).
us/products/devops/boards/.
Intelligent travel planning: A multiagent planning system to
solve web problems in the e-tourism domain. Autonomous [11] https://github.com/.
Agents and Multi-Agent Systems 4, 387–392. [12] https://www.selenium.dev/.
[4] Agent-based adaptive travel planning system in peak [13] https://www.sonarqube.org/.
seasons. Graduate School of Management, Korea Advanced
Institute of Science and Technology, 207-43 Chongryangri-
dong, Dongdaemoon-gu, Seoul 130-012, South Korea.

298 This work is licensed under Creative Commons Attribution 4.0 International License.

You might also like