IJEMR2022120536 (4)
IJEMR2022120536 (4)
IJEMR2022120536 (4)
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.
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.
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
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
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.
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.
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
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
298 This work is licensed under Creative Commons Attribution 4.0 International License.