Abstract
This project outlines the design and development of an intelligent Tour Management
System (TMS) that seeks to improve tourism selection, booking activity, and revenue
earning for travel agencies. The TMS allows tourists to browse multiple tour options, along
with applying a real-time offer for the selected tour based on allocation capacity, booking
demand, and profitability to temporarily generate a discount for the tourist that they are
entitled to receive.
The TMS includes the Adaptive Discount Optimization Algorithm which considers pre-
specified parameters, including total allocation capacity, remaining allocation, and pricing
margin, before setting a discount for daily tours. When a tour has a high allocation status
nearing capacity, the tour will be printed with a larger discount in an effort to encourage
final booking. Conversely, if a tour, based on the booking count, has low allocations, this
tour would not be discounted to avoid negative revenue. The expected offer and booking
will have a built-in secure store for both consumer and tour-operator options with web-
enabled options based on role, and secure management features for administration roles,
agents, and tourists/consumers. The TMS aims to improve potential tourist experiences
through, ultimately to improve occupancy rates, and to optimize revenue.
Keywords: Tour Management System, Dynamic Pricing, Travel Booking System,
Revenue Management.
i
Acknowledgement
The project presented in this report was conducted and showcased at Ratna RajyaLaxmi
Campus, Faculty of Humanities and Social Sciences, Tribhuvan University, as part of
Bachelor of Arts in Computer Application (BCA) program. This project serves as a
testament not only to technical proficiency but also to individual and performance amidst
various challenges. This successful completion of this journey owes much to the invaluable
assistance provided by experts. Additionally, I extend our gratitude to the lectures of the
Department of Computer Application for their generosity in sharing their expertise, which
greatly contributed to the development of this project. I am also thankful to our friends for
their unwavering support and to the respondents who helped to enhance my project work.
I will be ever grateful to my supervisor Mr. Shaila Mitra Neupane, Lecturer without
whose guidance, this project would not have become successful. I am also grateful to our
department director Mr. Ananda K.C.
ii
Table of Contents
Abstract ................................................................................................................................. i
Acknowledgement ...............................................................................................................ii
List of Abbreviations .........................................................................................................vii
List of Figures .................................................................................................................. viii
List of Tables ...................................................................................................................... ix
Chapter 1: Introduction ........................................................................................................ 1
1.1 Introduction ................................................................................................................ 1
1.2 Problem Statement ..................................................................................................... 2
1.3 Objectives .................................................................................................................. 3
1.4 Scope and Limitation ................................................................................................. 3
1.5 Development Methodology ....................................................................................... 4
1.6 Report Organization ................................................................................................... 5
Chapter 2: Background Study and Literature Review ......................................................... 6
2.1 Background Study ...................................................................................................... 6
2.2 Literature Review....................................................................................................... 6
Chapter 3: System Analysis and Design .............................................................................. 9
3.1 System Analysis ......................................................................................................... 9
3.1.1 Requirement Analysis ......................................................................................... 9
3.1.2 Feasibility Analysis ........................................................................................... 11
3.1.3 Object Modelling: Object & Class Diagram ..................................................... 12
3.1.4 Dynamic Modeling: State & Sequence Diagram .............................................. 14
3.1.5 Process Modelling: Activity Diagram .............................................................. 17
3.2 System Design ......................................................................................................... 21
3.2.1 Refinement of Classes and Object .................................................................... 21
3.2.2 Component Diagram ......................................................................................... 22
v
3.2.3 Deployment Diagram ........................................................................................ 23
3.3 Algorithm Details..................................................................................................... 24
Chapter 4: Implementation and Testing ............................................................................. 29
4.1 Implementation ........................................................................................................ 29
4.1.1 Tools Used ........................................................................................................ 29
4.1.2 Implementation details of the module............................................................... 30
4.2 Testing...................................................................................................................... 33
4.2.1 Test cases for Unit Testing ............................................................................... 33
Chapter 5: Conclusion and Future Recommendation ........................................................ 39
5.1 Conclusion ............................................................................................................... 39
5.2 Lesson learnt/Outcome ............................................................................................ 39
5.3 Future Recommendation .......................................................................................... 39
Appendices ......................................................................................................................... 40
References .......................................................................................................................... 41
vi
List of Abbreviations
TMS - Tourism Management System
SaaS - Software as a Service
UI - User Interface
API - Application Programming Interface
JWT - JSON Web Token
ORM - Object Relational Mapping
SMTP - Simple Mail Transfer Protocol
DBMS - Database Management System
CRUD - Create, Read, Update, Delete
HTTP - Hypertext Transfer Protocol
SEO - Search Engine Optimization
PSO - Particle Swarm Optimization
LSTM - Long Short-Term Memory
SQL - Structured Query Language
UML - Unified Modeling Language
vii
List of Figures
Figure 1.1 Iterative Waterfall Model of Yatriko .................................................................. 4
Figure 3.1 Use Case Diagram of Yatriko............................................................................. 9
Figure 3.2 Gantt Chart of Yatriko ...................................................................................... 11
Figure 3.3 Class Diagram of Yatriko ................................................................................. 12
Figure 3.4 Object Diagram of Yatriko ............................................................................... 13
Figure 3.5 State Diagram of Yatriko.................................................................................. 14
Figure 3.6 Sequence Diagram of Yatriko .......................................................................... 16
Figure 3.5 Activity Diagram of Yatriko for Users/Tourists .............................................. 17
Figure 3.7 Activity Diagram of Yatriko for Organizations ............................................... 18
Figure 3.8 Activity Diagram of Yatriko for Tour Guides .................................................. 19
Figure 3.9 Activity Diagram of Yatriko for Super-Admin ................................................ 20
Figure 3.10 Refinement of Class Diagram of Yatriko ....................................................... 21
Figure 3.11 Component Diagram of Yatriko ..................................................................... 22
Figure 3.12 Deployment Diagram of Yatriko .................................................................... 23
viii
List of Tables
Table 4.1 Test Case for Register User ............................................................................... 33
Table 4.2 Test Case for User Login ................................................................................... 34
Table 4.3 Test Case for Create Organization ..................................................................... 35
Table 4.4 Test Case for Category Creation ........................................................................ 36
Table 4.5 Test Case for Tour Creation............................................................................... 36
Table 4.6 Test Case for Tour Assignment to Guide .......................................................... 37
ix
Chapter 1: Introduction
1.1 Introduction
Tourism has always been one of the most dynamic and rapidly growing sectors across the
globe, connecting people with cultures, destinations, and unique experiences. In today’s
digital era, the tourism industry is undergoing a major transformation, moving from
traditional offline methods of booking and managing tours to comprehensive online
platforms that streamline the entire process. With increasing demand for personalized travel
experiences, there is a growing need for systems that only cater to tourists but also empower
organizations and guides to efficiently manage their services.
The proposed project, a Tourism Management SaaS system, takes the initiative to bridge
this gap with a common interface in which the stakeholders—tourists, organizations and
guides—can communicate effortlessly among themselves. Unlike, common tourism
websites that are entirely focused on showcasing tours, the site offers a multi-faceted
solution. The site is mostly offering tourists ways to search, book and manage tours but
also providing organizations with extremely efficient ways of creating, editing, and
assigning tours to guides. This dual functionality ensures both the demand (tourists) and
supply (organizations and guides) sides of the tourism industry are being catered to within
one website.
From the visitor’s perspective, the system is interactive and user-friendly. The tourists are
initially shown top-rated and updated tours by other organizations. However, they must log
in using secure authentication methods such as JWT or OAuth, ensuring both security and
personalization.
Once an organization is created, it can utilize features such as creating, editing and deleting
tours, and assigning guides to activities. This enables organizations to work more
efficiently and reach broader audience.
Guides, though, are welcomed to the system through organization invitations. After
receiving their credentials through an email, they can log in to their individual guide
dashboard. From there, guides are free to accept or reject tour assignments, manage their
calendars, and update their profiles.
In brief, this Tourism Management SaaS project aims to provide an end-to-end solution to
the travel industry by bringing together tourists, organizations and guides into one scalable
1
platform. From secure authentication of users to subscription-based organizational
management, the system not just simplifies tourism operations but also improves the overall
journey experience. Such a project can, in turn, change the way tourism services are
delivered and consumed in the era of digital communication.
1.2 Problem Statement
Tourism is one of the fastest-growing industries worldwide, contributing significantly to
cultural exchange, employment and economic growth. However, managing tourism
services effectively remains a complex challenge. Traditionally tourism management
systems often lack scalability, transparency and flexibility to meet the diverse needs of
stakeholders such as organizations, guides and tourists. Most existing platforms either serve
a single organization or focus on basic bookings without offering features like real-time
guide management, subscription access for organizations or smart algorithms for tour
planning.
Today’s tourists want seamless experiences where they can easily find, book and manage
tours. Meanwhile, organizations need effective tools to manage their offerings, assigns
guides, and track bookings. Guides require a dedicated platform to keep track of
assignments, manage their availability and communicate with organizations. System
administrators also need oversight capabilities to ensure secure transactions, manage
subscription and govern the platform.
Without an integrated solution, this fragmented experience leads to inefficiency, a poor
resource management, low customer satisfaction, and lost revenue for organizations.
Additionally, the lack of smart algorithm like route optimizations, limits the platform’s
ability to provide tailored services to its users.
This project aims to tackle these challenges by creating a full stack SaaS Tourism
Management System. The platform will support various roles: super-admin, organizations,
guides and tourists. It will also integrate modern technologies for scalability, security and
ease of use. By adding algorithms for route optimization, the system will streamline
operations and provide smart features that enhance decision-making and improve the
overall tourism experience.
2
1.3 Objectives
The primary objectives of this project are:
• To develop a SaaS platform to connect super-admin, organizations, guides and
tourists.
• To simplify tour management with booking, guide assignment and payments.
• To apply a Dynamic Discount Pricing Algorithm that adjusts tour prices based on
demand and seat availability to maximize utilization and revenue.
1.4 Scope and Limitation
The Tourism Management System (TMS) is designed to streamline, automate, and enhance
how tourism organizations manage their tour package, guides and customer bookings. The
system provides a centralized platform where tourists can explore tours, register securely
and make bookings based on real-time availability. Tourism organizations can create and
manage their tours, assign guides, monitor booking status and utilize automated discount
recommendations powered by Dynamic Discount Optimization Algorithm. The platform
supports role-based access for super-admin, organizations, tour guides and tourists,
ensuring smooth operations and secure data handling. Additionally, integrated
authentication and guide assignment workflows contribute to a complete and modern
tourism management solutions. By leveraging modern web technologies and structured
data management, the system aims to deliver efficiency, accuracy and an enhanced user
experience for all stakeholders involved.
Despite its broad functionality, the system operates with certain limitations, which include:
• The system currently does not support integration with third-party travel APIs such
as flight booking, hotel booking, or real-time map navigation services.
• Offline access is not supported; users must have an active internet connection to use
the platform.
• Multi-language support and advanced localization features are not included,
limiting accessibility for international users.
• Mobile application support is not yet available, restricting usage primarily to web
browsers.
• Data backup, redundancy and disaster recovery processes are basic.
3
1.5 Development Methodology
The proposed Tourism Management System (TMS) will follow the Iterative Waterfall
Model Development Methodology. Unlike the traditional waterfall, this approach allows
revisiting earlier stages if issues arise in later phases. This ensures better flexibility and
improvement. Below are the phases focused on the TMS:
The process starts with the planning phase, where the project scope, objectives, required
resources, and feasibility are clearly defined. This creates a solid foundation.
Next is the analysis phase, where both functional and non-functional requirements are
collected and examined. This includes essential features such as tourist registration, tour
package management, booking systems, and guide assignments. It also covers non-
functional needs like system usability, scalability, and data security.
The design phase then translates these requirements into concrete plans. This involves
creating system architecture diagrams, database schema, and user interface layouts. These
elements ensure smooth interactions among tourists, organizations, guides, and
administrators.
Figure 1.1 Iterative Waterfall Model of Yatriko
Once the design is complete, the coding phase begins. Developers create the actual system
modules using technologies like [Link], [Link], [Link], MySQL and many more.
After that, the testing phase takes place. Here, unit testing is performed to check for
accuracy, functionality, and reliability while also identifying and fixing errors.
4
Finally, the implementation phase launches the system for real-world use. This phase is
supported by user training, documentation, and ongoing feedback. Unlike the traditional
waterfall method, the iterative approach allows for revisiting and refining earlier phases
when needed. This ensures that the TMS can evolve to better meet user expectations.
1.6 Report Organization
The report can be organized into 5 chapters which are given below:
Chapter 1 includes the brief introduction of the system, statement problem, objectives,
scope and limitation.
Chapter 2 includes background study and literature review, includes the previous work
related to the system and similar works studied and unauthorized.
Chapter 3 includes system analysis and design, includes different feasibility analysis and
design system architecture, system flow design, entity relationship diagram and data flow
diagram.
Chapter 4 includes implementation and testing of the current system.
Chapter 5 includes conclusion, outcomes of the system and future recommendations.
5
Chapter 2: Background Study and Literature Review
2.1 Background Study
Tourism is a rapidly growing industry that contributes significantly to economic
development and employment generation. With the advancement of web technologies,
tourism services have gradually moved from manual operations to digital platforms for tour
listing, booking, and customer management. However, many existing tourism systems still
rely on basic functionalities and static pricing models, which often result in inefficient tour
allocation, poor resource utilization, and limited flexibility for both service providers and
tourists.
The introduction of SaaS-based Tourism Management Systems has created opportunities
to improve operational efficiency through centralized management, role-based access, and
automation. By incorporating intelligent mechanisms such as dynamic discount
optimization based on booking demand and allocation status, modern systems can enhance
booking rates and customer satisfaction while maintaining organizational profitability. This
project focuses on developing such a system to bridge the gap between traditional tourism
operations and intelligent, technology-driven solutions.
2.2 Literature Review
Technology advancement has significantly transformed tourism management system in
that they allow enhanced functioning, enhanced customer experience, and evidence-based
decision-making. Numerous research papers, books and articles have studied introducing
algorithms and machine learning techniques into TMS to address routing optimization,
segmentation of tourists, demand forecasting and recommendation problems. This
literature review speaks about key books in the field, with particular focus given to the
algorithms and techniques commonly practiced in tourism management and how their
relevance compares with contemporary SaaS-based solutions development.
Collaborative filtering approaches for tourism recommendations — This study surveys
collaborative filtering methods used in tourism recommendation systems. It shows how
user-based and item-based collaborative filtering, which relies on similarity measures like
cosine or Pearson correlation, helps derive user preferences from past booking and rating
data. These methods allow platforms to recommend destinations, activities or tours by
6
analyzing patterns among users with similar tastes. They address data sparsity by
combining with content-based features when necessary. [7]
Dijkstra/A-based route optimization for itineraries — Several practical studies demonstrate
the use of graph shortest-path algorithms, including Dijkstra and A*, to find optimal travel
routes between attractions. These studies model points of interest as graph nodes and travel
times or distances as weighted edges. Dijkstra calculates exact shortest paths on weighted
graphs, while A* speeds up the search using an admissible heuristic, often the Haversine
distance. This makes them suitable for planning tour segments and visualizing maps. [8]
K-Means clustering for tourist segmentation — Research applying K-Means clustering to
tourism datasets shows how tourists can be grouped into meaningful segments, like
adventure seekers or budget travelers, based on demographics, trip attributes and behaviors.
These clusters enable targeted marketing, personalized packages and dashboard analytics
for operators. Some studies combine K-Means with hierarchical or Self-Organizing Map
(SOM) preprocessing to determine the best number of clusters. [9]
Dynamic pricing and demand forecasting in travel — Recent literature on dynamic pricing
in travel uses time-series models, supervised machine learning methods like random forests
and gradient boosting, and even deep learning to forecast demand and adjust prices
dynamically for flights and tickets. These strategies allow platforms to increase revenue
and offer users price-prediction features, such as the best time to buy. Some studies also
explore reinforcement learning for adaptive pricing based on customer behavior. [10]
Hybrid and enhanced recommenders for tourism — Several studies suggest hybrid
recommenders that blend collaborative filtering, content-based filtering and contextual
signals. They propose domain-specific improvements to addresses issues like sparse
destination data. These hybrid models enhance coverage and accuracy in tourism
recommendations by integrating user profiles, tour attributes, geolocation and social
signals. [11]
Using social and survey data to improve clustering and path recommendations — Some
recent studies enhance K-Means by combining it with genetic algorithms or features
derived from social media. This aims to better capture tourist preferences and generate path
recommendations. The goal is to create clusters that reflect real-world travel intentions and
inform route or itinerary suggestions that align with tourist motivations. [12]
7
Itinerary customization via multi-layer optimization — Recent research proposes multi-
layer optimization models that combine preference modeling, attraction utility, and travel
costs to create personalized itineraries. These methods include mixed optimization
techniques, hypergraph formulations, and metaheuristics, such as genetic algorithms and
Particle Swarm Optimization (PSO), to balance attractiveness, time constraints, and costs
when organizing stops for a tour. These strategies are useful for planning multi-stop tours
with complex constraints. [13]
Flight fare prediction and multi-attribute ML models — Literature on airline fare prediction
utilizes attention-based sequence-to-sequence models, Long Short-Term Memory (LSTM)
networks, and ensemble methods to forecast price trends. This is useful for apps
recommending the best times to purchase tickets. Models that incorporate various
attributes, such as seasonality, routes, and historical prices, provide probabilistic or point
forecasts that platforms can present as buy now or wait guidance for travelers. [14]
8
Chapter 3: System Analysis and Design
3.1 System Analysis
3.1.1 Requirement Analysis
i. Functional Requirement
The functional requirements define the expected features and operations of the Tourism
Management System. These requirements are derived from the use case diagram and
describes how different actors (Super-admin, Organization, Guide and Tourist) interact
with the system.
• The system shall allow users to register and create an account.
• The system shall allow tourist to browse available tours.
• The system shall allow tourist to book tours.
• The system shall allow tourists to view and update their booking history.
Figure 3.1 Use Case Diagram of Yatriko
9
• The system shall allow organization to create and manage tours.
• The system shall allow organizations to assign tours to specific guides.
• The system shall allow organizations to update tour status.
• The system shall allow organizations to manage guides and tourists.
• The system shall allow guides to view tours assigned to them.
• The system shall allow guides to accept or reject assigned tours.
• The system shall allow guides to update the status of tours they are managing.
• The system shall allow the super-admin to manage organizations.
• The system shall allow the super-admin to oversee and manage the entire system.
Hence, these are the functional requirements of the proposed Tourism Management
System.
ii. Non-Functional Requirements
The non-functional requirements define the quality attributes, constraints, and operational
characteristics of the proposed Tourism Management System. These requirements ensure
that the system performs efficiently, securely, and reliably while providing a smooth user
experience.
a) Performance
The system shall support concurrent users including tourists, organizations, and
guides without performance degradation.
b) Security
The system shall implement secure authentication using JWT and OAuth 2.0
mechanisms.
c) Scalability
The system shall be designed as a SaaS platform capable of scaling horizontally to
support multiple organizations.
d) Availability and Reliability
The system shall be available 24/7 with minimal downtime and proper error
handling and recovery mechanisms shall be implemented to prevent data loss.
Hence, these are the non-functional requirements of the proposed Tourism Management
System.
10
3.1.2 Feasibility Analysis
A feasibility study makes sure that the proposed Tourism Management System (TMS) can
be developed and maintained effectively. It looks at technical, operational, and financial
factors to determine if the project is worthwhile.
i. Technical Feasibility
The system uses [Link], [Link], [Link] MySQL, and Tailwind CSS. These are
modern, open-source, and reliable technologies. We can implement features like
authentication, tour booking, and route optimization using available libraries and APIs,
which makes the system technically achievable.
ii. Operational Feasibility
The TMS supports four roles: Super-admin, Organization, Guide, and Tourist. Each role
has specific features. It addresses common tourism challenges such as booking, assigning
guides, and managing tours. As a web-based system, it is accessible and practical for real-
world use making is operationally feasible.
iii. Economic Feasibility
Since the project relies on open-source tools, development costs are low to none. A
subscription model for organizations ensures recurring revenue, while tourists benefit from
easier booking. The growing tourism market makes it likely that the system can be
economically feasible.
iv. Schedule Feasibility
Schedule feasibility was assessed to determine whether the project timeline and deadlines
were reasonable. Consideration was given to the constraints of limited time, ensuring that
the project could be completed within the specific timeframe, even under mandatory
deadlines.
Figure 2.2 Gantt Chart of Yatriko
11
3.1.3 Object Modelling: Object & Class Diagram
Class Diagram
This diagram illustrates the basic architecture of the Tour Management System, where the
User is the main entity of the tourist type. Booking is responsible for handling bookings
referred to particular Tours and the associated Payment processing.
Figure 3.3 Class Diagram of Yatriko
12
The Dynamic Pricing part of the system enables the intelligent adjustment of prices
depending upon the demand, while Organizations are responsible for creating tours and
managing guides. The Email Service is responsible for handling communication between
users of the platform.
Object Diagram
This object diagram shows real instances of the Tour Management System at runtime.
Tourist "john_doe" has made booking #1001 for the Everest Base Camp Trek, paying
NRP2,700. Nepal Adventure Tours (organization) created this tour and assigned guide Raj
to it. The dynamic pricing component applies a 10% discount, setting the current price at
NRP1,350. The diagram demonstrates how all components interact with actual data values
in a specific operational scenario.
Figure 3.4 Object Diagram of Yatriko
13
3.1.4 Dynamic Modeling: State & Sequence Diagram
State Diagram
The following state diagram demonstrates different lifecycle states that the different entities
go through.
Figure 3.5 State Diagram of Yatriko
The state diagram represents the operational flow of the Tourism Management System,
illustrating how different user roles interact with the system based on their assigned
responsibilities. The system supports three primary user roles: Tourist, Guide, Organization
Admin, along with a SuperAdmin who oversees system-wide operations. The diagram
begins at a common initial state, from which users can access the system through their
respective login interfaces such as Tourist Login, Guide Login, or SuperAdmin Login.
Once logged in, each user is directed to a role-specific dashboard. The Tourist Dashboard
enables tourists to browse available tours, book tours, make payments, and view booking
history, providing a complete tour planning and booking experience. The Guide Dashboard
allows guides to view assigned tours, accept or reject tour assignments, and update tour
status during execution. Meanwhile, the Organization Dashboard provides organization
administrators with capabilities to create and edit tours, assign guides, monitor booking
statistics, and manage organizational tour operations. The SuperAdmin has access to
higher-level system functionalities such as managing organizations, switching between
organizations, generating reports, viewing tourist activity, and monitoring overall system
performance.
14
All dashboards include a Logout state, allowing users to securely exit the system and return
to the final state. This state diagram effectively demonstrates how the system enforces role-
based access control while ensuring a structured, secure, and efficient workflow across
different stakeholders in the tourism management platform.
Sequence Diagram
This sequence diagram illustrates the interactions among objects in sequential order. In the
context of Tourism Management System (Yatriko), the sequence diagram captures the
dynamic behavior of the system, depicting how various components interacts to perform
specific functionality.
15
Figure 3.6 Sequence Diagram of Yatriko
16
3.1.5 Process Modelling: Activity Diagram
The following activity diagrams illustrates the processes within a Tourism Management
System.
Figure 3.7 Activity Diagram of Yatriko for Users/Tourists
The diagram depicts a user activity flow beginning with a login validation check. Upon
successful login, a user can browse tours, book a tour, manage their profile, or create an
organization before ultimately logging out. If the login is invalid, the flow ends.
17
Figure 3.8 Activity Diagram of Yatriko for Organizations
This flow starts with selecting an organization. If it exists, organization can then create
tours, assign them, create categories, and manage tourist or their own profile. If the
organization doesn't exist, the process ends.
18
Figure 3.9 Activity Diagram of Yatriko for Tour Guides
This diagram shows a tour guide logging in. If the login is valid, the guide checks for a tour
assignment and then executes the tour before logging out. If the login is invalid, the flow
ends.
19
Figure 3.10 Activity Diagram of Yatriko for Super-Admin
This diagram begins with a Super Admin logging in. If the login is valid, they can manage
organizations, generate reports, and monitor the system before logging out. If the login is
not valid, the process ends.
20
3.2 System Design
3.2.1 Refinement of Classes and Object
Figure 3.11 Refinement of Class Diagram of Yatriko
21
In the following refined diagram, the existing class diagram has been refined by adding
more details. The diagram consists of method signatures, return types and parameter types.
While the class diagram showed the overview of the system, the refined class diagram adds
more detail for actual implementation.
3.2.2 Component Diagram
The component diagram below illustrates the physical components of the Tourism
Management System (Yatriko) and their interactions. With its help we are able to visualize
the overall structure and organization of system.
Figure 3.12 Component Diagram of Yatriko
22
3.2.3 Deployment Diagram
The deployment diagram represents the physical architecture of the proposed Tourism
Management System and illustrates how various system components are distributed across
multiple servers. The system follows a modular and service-oriented architecture consisting
of a Web Server, Backend Server, Database Server, Payment Server, and an external SMTP
Server. This separation ensures scalability, security, and efficient system performance.
The Web Server hosts the client-side application developed using modern frontend
technologies. It provides user interfaces for tourists, organizations, guides, and
administrators, including features such as user authentication, tour browsing, booking,
organization management, and dynamic pricing display. User actions from the web
interface are sent as HTTP requests to the backend server for further processing.
Figure 3.13 Deployment Diagram of Yatriko
The Backend Server contains the core business logic of the system. It includes
authentication modules, routing mechanisms, and controllers such as TourController,
OrganizationController, and GuideController. The dynamic discount pricing algorithm is
also deployed on this server, where tour prices are automatically adjusted based on
allocation and booking status. The backend server handles data validation, business rules,
and communication with external services.
23
The Payment Server is responsible for securely handling all payment-related operations. It
manages payment requests, processes transactions through third-party payment gateways,
verifies payment status, and returns confirmation responses to the backend server. By
isolating payment processing into a separate server, the system enhances security, reduces
risk, and complies with best practices for handling financial data.
The Database Server hosts the MySQL database, which stores all persistent data related to
users, organizations, tours, bookings, payments, subscriptions, and system configurations.
The backend server communicates with the database server through secure queries to store
and retrieve data, ensuring data consistency and reliability.
The SMTP Server is used to handle email communication within the system. It enables
automated notifications such as account creation emails, guide login credentials, booking
confirmations, and system alerts. This external service improves communication efficiency
and system responsiveness.
Overall, the deployment diagram demonstrates a well-structured and distributed system
architecture that supports secure payment processing, dynamic pricing, and scalable
tourism management operations.
3.3 Algorithm Details
The integration of technology in tourism and hospitality has transformed pricing strategies
through Dynamic Discount Pricing, which automatically adjusts tour prices based on real-
time market conditions. The algorithm considers factors such as time until departure,
current occupancy levels, and historical booking patterns to determine optimal prices that
balance customer demand and revenue maximization. By dynamically updating prices, tour
operators can manage perishable inventory, encourage early bookings, and fill last-minute
vacancies, leading to improved operational efficiency and profitability.
The Dynamic Discount Pricing algorithm calculates the optimal price for a tour by
combining time-based urgency factors with occupancy-based scarcity factors. The system
continuously recalculates prices to reflect current market conditions and booking status.
The current price P for a tour is calculated as:
P = Pbase × (1 - D/100)
24
Where:
• P = Current discounted price
• Pbase = Base price (original undiscounted price)
• D = Combined discount percentage (0 ≤ D ≤ 50)
The price is constrained by a minimum threshold:
P = max(P, Pmin)
Where:
• Pmin = Minimum price (typically 60-80% of base price)
Discount Calculation Components
The combined discount D is derived from two primary factors: time-based discount (Dt)
and occupancy-based discount (Do).
1. Time-Based Discount (Dt)
The time-based discount considers the urgency factor based on days remaining until tour
departure. The formula is defined as:
Dt = f(t)
Where:
• t = Days until tour start date
• f(t) is a piecewise function:
⎧ 25% if t > 60 (Super Early Bird)
⎪ 20% if 30 < t ≤ 60 (Early Bird)
⎪ 10% if 14 < t ≤ 30 (Advance Booking)
Dt = ⎨ 5% if 7 < t ≤ 14 (Standard)
⎪ 15% if 3 < t ≤ 7 (Last Week)
⎪ 30% if 1 ≤ t ≤ 3 (Last Minute)
⎩ 40% if t < 1 (Same Day)
The time calculation is:
t = ⌈(Tstart - Tnow) / 86400⌉
25
Where:
• Tstart = Tour start timestamp (in seconds)
• Tnow = Current timestamp (in seconds)
• 86400 = Seconds in a day
• ⌈ ⌉ = Ceiling function (rounds up to nearest integer)
2. Occupancy-Based Discount (Do)
The occupancy-based discount reflects demand and scarcity. The occupancy rate is
calculated as:
O = (Sbooked / Stotal) × 100
Where:
O = Occupancy rate (percentage)
Sbooked = Number of seats already booked
Stotal = Total capacity of the tour
The occupancy-based discount is then determined by:
⎧ -10% if O ≥ 90 (Premium - Almost Sold Out)
⎪ 0% if 70 ≤ O < 90 (High Demand)
Do = ⎨ 5% if 40 ≤ O < 70 (Moderate Availability)
⎪ 15% if 20 ≤ O < 40 (Low Occupancy)
⎩ 25% if O < 20 (Very Low Occupancy)
Note: Negative discount represents premium pricing (price increase).
3. Combined Discount Strategy
The final discount D is calculated using a weighted combination with special rules:
D = w1 × Dt + w2 × Do
Where:
26
w1 = 0.6 (time weight - 60%)
w2 = 0.4 (occupancy weight - 40%)
However, special case rules override the weighted formula:
Special Case 1 (Urgent + Low Demand):
If t ≤ 3 AND O < 40:
D = min(Dt + 0.5 × Do, 50)
Special Case 2 (Early + High Demand):
If t > 30 AND O > 70:
D = max(0.3 × Dt, 0)
Special Case 3 (Almost Sold Out):
If O ≥ 90:
D = -10 (Premium pricing regardless of time)
Steps
The dynamic pricing algorithm follows these steps:
Step 1: Input Parameters
Retrieve tour data: base price (Pbase), minimum price (Pmin), total capacity (Stotal), booked
seats (Sbooked), start date (Tstart)
Get current timestamp (Tnow)
Step 2: Calculate Time Factor
Compute days until tour: t = ⌈(Tstart - Tnow) / 86400⌉
Determine time-based discount: Dt = f(t)
Step 3: Calculate Occupancy Factor
Compute occupancy rate: O = (Sbooked / Stotal) × 100
Determine occupancy-based discount: Do = g(O)
Step 4: Apply Combined Discount Logic
Check for special cases (urgent + low demand, early + high demand, almost sold out)
If special case applies, use special case formula
27
Otherwise, calculate: D = 0.6 × Dt + 0.4 × Do
Step 5: Calculate New Price
Compute discounted price: P = Pbase × (1 - D/100)
Apply minimum price constraint: P = max(P, Pmin)
Round to 2 decimal places: P = ⌊P × 100 + 0.5⌋ / 100
Step 6: Update Database
Store new price, discount percentage, and discount reason
Update timestamp of last price change
Step 7: Price Locking on Booking
When a booking is made, lock current price for that transaction
Update booked seats: Sbooked(new) = Sbooked(old) + Sbooked(transaction)
Recalculate price for future bookings using updated Sbooked(new)
28
Chapter 4: Implementation and Testing
4.1 Implementation
4.1.1 Tools Used
Frontend Framework ([Link])
[Link] and [Link] are used to develop the user interface of the Tourism Management
System. These frameworks enable the creation of dynamic, responsive, and reusable UI
components. [Link] additionally supports server-side rendering and improved SEO, which
is beneficial for displaying tourism content such as tours and organizations to users
efficiently.
Backend Runtime ([Link])
[Link] is used as the backend runtime environment to handle server-side operations. It
enables the system to process client requests, implement business logic, manage APIs, and
handle authentication efficiently. Its event-driven and non-blocking architecture makes it
suitable for scalable web applications like a SaaS-based Tourism Management System.
Web Framework ([Link])
[Link] is used to build RESTful APIs for communication between the frontend and
backend. It simplifies routing, middleware integration, and request handling. [Link]
helps structure the backend application cleanly by separating concerns such as
authentication, controllers, and services.
Database Management System (MySQL)
MySQL is used as the relational database management system to store and manage
structured data such as users, organizations, tours, bookings, payments, and subscriptions.
It ensures data consistency, integrity, and reliability, which are essential for handling
transactional tourism data.
Object Relational Mapping (Sequelize ORM)
Sequelize ORM is used to interact with the MySQL database using JavaScript and
TypeScript. It simplifies database operations by mapping database tables to application
models, reducing the need for complex SQL queries and improving maintainability.
29
Styling Framework (Tailwind CSS)
Tailwind CSS is used for designing the user interface with a utility-first approach. It allows
rapid development of responsive and consistent layouts without writing extensive custom
CSS, improving development speed and UI consistency.
Authentication and Authorization (JWT/ OAuth 2.0)
JWT is used for secure user authentication and session management, while OAuth 2.0
enables third-party login functionality. These mechanisms ensure secure access control and
protect user data across different roles such as tourists, organizations, and guides.
Payment Integration Tools (Khalti)
Payment processing is handled through a dedicated payment server that communicates with
third-party payment gateway APIs (i.e Khalti) . This setup ensures secure handling of
financial transactions, payment verification, and refund processing while maintaining
system modularity.
Email Service (SMTP Server)
An SMTP server is used to send automated emails such as guides tour registration using
node mailer package. This enhances communication between the system and users.
Development and Design Tools
Tools such as Visual Studio Code are used for coding and debugging, while diagramming
tools like [Link] and PlantUML are used to design UML diagrams including use case,
class, and deployment diagrams for documentation and system design.
4.1.2 Implementation details of the module
The major functional modules of the proposed Tourism Management System (TMS) and
their implementation details are described below. The system is designed as a SaaS-based
web application supporting multiple user roles including Super Admin, Organization
Admin, Tour Guides, and Tourists. Each module is developed to ensure scalability,
security, and ease of use.
30
Login Module
The Login Module provides secure, role-based access to the system for all users, including
Super Admin, Organization Admin, Guides, and Tourists. It is implemented using JWT-
based authentication, where users log in using their registered email and password. The
backend verifies the credentials against the database, and upon successful authentication, a
JSON Web Token is generated and returned to the client. Based on the user’s role, the
system redirects them to the appropriate dashboard. Passwords are securely stored using
hashing algorithms, and token validation ensures protected access to system resources.
Register Module
The Register Module enables new users to create accounts on the platform. Tourists can
self-register by providing basic information such as name, email, and password.
Organization creation is initiated after user registration, allowing a user to register as an
Organization Admin. All input data is validated on both client and server sides to ensure
accuracy and security. Passwords are encrypted before being stored in the database. Upon
successful registration, users gain access to system features based on their assigned role.
Organization Module
The Organization Management Module allows registered users to create and manage
tourism organizations. After creating an organization, users are required to subscribe to a
plan to unlock organization-level features. Organization Admins can update organization
details, manage subscription status, and control organizational resources. This module
supports CRUD operations and ensures that each organization is uniquely identified within
the system.
Tour Module
The Tour Management Module allows Organization Admins to create, update, delete, and
manage tours. Each tour includes details such as destination, schedule, price, capacity, and
availability. Tours are associated with specific organizations and can be assigned to guides.
The module interacts with the dynamic discount pricing algorithm to adjust tour prices
automatically based on booking allocation. All tour-related data is stored securely in the
database.
31
Dynamic Discount Pricing Module
This module implements an algorithm that dynamically adjusts tour prices based on
demand and seat availability. Parameters such as total tour capacity, booked slots,
remaining allocation, and base price are analyzed to determine discount eligibility. Tours
with fewer remaining slots receive higher discounts to encourage bookings, while tours
with lower occupancy may not receive discounts to avoid losses. The pricing logic is
processed on the backend and displayed in real time on the user interface.
Booking Module
The Booking Module allows tourists to browse available tours and make bookings. When
a user selects a tour, the system calculates the final price by applying any applicable
dynamic discounts. The module validates availability before confirming bookings and
updates the booked slot count accordingly. Booking status such as pending, confirmed, or
cancelled is maintained for tracking and management purposes.
Guide Management Module
The Guide Management Module enables Organization Admins to assign tours to registered
guides. Guides receive login credentials via email and can access their dashboard to view
assigned tours. They can accept or reject tour assignments and update tour status during
execution. This module ensures effective coordination between organizations and guides.
Payment Module
The Payment Module is responsible for handling all financial transactions in the system. It
is implemented using a dedicated payment server that securely processes payments through
third-party payment gateways. Upon successful payment, transaction details are verified
and stored in the database. This module supports subscription payments and tour booking
payments while ensuring secure and reliable transaction handling.
Notification Module
The Notification Module uses an SMTP server to send automated email notifications.
Emails are sent for account registration, guide assignment, booking confirmation, and
payment verification. This module improves system communication and enhances user
engagement.
32
4.2 Testing
The testing phase ensures that the system functions correctly, meets all specified
requirements, and provides a smooth user experience. Various types of tests—such as unit
testing, integration testing and system testing—are performed to identify and fix errors
before deployment. This process helps verify the reliability, accuracy, and overall quality
of the project.
4.2.1 Test cases for Unit Testing
Unit testing focuses on verifying individual components or modules of the Tourism
Management System to ensure each part works as intended. It helps detect errors early in
development by testing functions such as user registration, tour and category creation, and
data validation independently, ensuring reliability and consistency in the overall system.
Table 4.1 Test Case for Register User
Project Name: Tourism Management System (Yatriko)
Test Case 1
Test Case ID: TC_1 Test Designed by: Sonam Sherpa
Module Name: User Register Test Executed by: Sonam Sherpa
Description: Testing the User Register module of Yatriko
S.N. Test Name Input Expected Actual Test
Output Output Result
1. Navigate [Link] Register Register Pass
to Signup Page /register Page Page
2. Test Username: Sonam007 Invalid Registration Pass
username Email: test@[Link] Email Failed
invalid Password:
HelloWorld123!
Email and
Password
3. Test Username: Sonam007 Registration Registration Pass
valid Email: Successful Successful
test1@[Link]
username,
33
email Password:
HelloWorld123!
and password
and click
submit
button
Table 4.2 Test Case for User Login
Project Name: Tourism Management System (Yatriko)
Test Case 2
Test Case ID: TC_2 Test Designed by: Sonam Sherpa
Module Name: User Login Test Executed by: Sonam Sherpa
Description: Testing the User Login of Yatriko
S.N. Test Name Input Expected Actual Test
Output Output Result
1. Navigate [Link] Login Login Pass
to Login Page /login Page Page
2. Test Email: test@[Link] Invalid Login Fail
invalid Password: Helo1 Credential Failed
Email and
Password
3. Test Email: Login Login Pass
test1@[Link]
valid Successful Successful
Password:
email
HelloWorld123!
and password
and click
Login
button
4. Sign-in using Click on Sign-in using Login Login Pass
Google Google and accept Successful Successful
terms
34
Table 4.3 Test Case for Create Organization
Project Name: Tourism Management System (Yatriko)
Test Case 3
Test Case ID: TC_3 Test Designed by: Sonam Sherpa
Module Name: Organization Creation Test Executed by: Sonam Sherpa
Description: Testing the Organization Creation of Yatriko.
S.N. Test Name Input Expected Actual Test
Output Output Result
1. Navigate [Link] Create Create Pass
to Create /create-organization Organization Organization
Organization Form Form
Form
2. Test valid Organization Name: Required Create Pass
Digital Tech Credential Organization
Address: must be Successful
entered
Pasikot,
Budhanilkantha
Phone Number:
+977 9800000001
Email:
dt@[Link]
Either:
Vat Number:
11111111
OR
Pan Number:
22222222
3. Click Clicked Organization Organization Pass
Create Created Created
Organization Successful Successful
button
35
Table 1.4 Test Case for Category Creation
Project Name: Tourism Management System (Yatriko)
Test Case 4
Test Case ID: TC_4 Test Designed by: Sonam Sherpa
Module Name: Category Creation Test Executed by: Sonam Sherpa
Description: Testing the Category Creation in Organization Module of Yatriko
S.N. Test Name Input Expected Actual Test
Output Output Result
1. Navigate [Link] Create Create Pass
to Create /dashboard/organization/ Category Category
Category category Form Form
Modal
2. Test Category Name: Required Create Pass
Necessary Camp Credential Category
Details Category Description: must be Successful
This is about camp entered
category.
3. Click Clicked Category Category Pass
Create Created Created
Category Successful Successful
button
Table 4.5 Test Case for Tour Creation
Project Name: Tourism Management System (Yatriko)
Test Case 5
Test Case ID: TC_5 Test Designed by: Sonam Sherpa
Module Name: Tour Creation Test Executed by: Sonam Sherpa
Description: Testing the Tour Creation in Organization Module of Yatriko
36
S.N. Test Name Input Expected Actual Test
Output Output Result
1. Navigate [Link] Create Create Pass
to Create /dashboard/organization/ Tour Tour
Tour tour/create Form Form
Form
2. Test Tour Start Date: Error:”End Not as Pass
date must be Expected
End Date 2026/01/01
equal to or
previous than Tour End Date: after start
Start Date 2025/12/15 date”
3. Test valid Tour Name: Tour Tour Pass
Tour Data Everest Base Camp Created Created
Tour Description: Successful Successful
This is about Everest
Base camp
Total Capacity: 27
Base Price: NPR1000
Tour Photo: File
Start Date:
2026/01/01
End Date:
2026/01/25
Categories:
Tour, Camp
Table 4.6 Test Case for Tour Assignment to Guide
Project Name: Tourism Management System (Yatriko)
Test Case 6
Test Case ID: TC_6 Test Designed by: Sonam Sherpa
Module Name: Tour Assignment Test Executed by: Sonam Sherpa
37
Description: Testing the Tour Assignment in Organization Module of Yatriko
S.N. Test Name Input Expected Actual Test
Output Output Result
1. Navigate [Link] Create Create Pass
to Create /dashboard/organization/ Guide Guide
Guide guide/create Form Form
Form
2. Test Phone Number: Error” Not as Fail
Guide Form +977 981012542 Invalid Expected
With invalid Email: Email
data s@gmai12.+com.e Fromat,
Salary: Invalid
-4500 Phone
Number
Format,
Salary can’t
Be
negative”
3. Test valid Guide Name: Tour Tour Pass
Guide Data Sonam Sherpa Assigned to Assigned to
Email: Guide Guide
sonammzyou@[Link] Successful Successful
Phone Number:
+977 9800000001
Address:
Pasikot, Budhanilkantha
Photo: File
Salary: 45000
Category:
Everest Base Camp
38
Chapter 5: Conclusion and Future Recommendation
5.1 Conclusion
5.2 Lesson learnt/Outcome
5.3 Future Recommendation
39
Appendices
40
References
[1 M. Aldayel , A. Al-Nafjan, W. M. Al-Nuwaiser , G. Alrehaili and G. Alyahya,
] "Collaborative Filtering-Based Recommendation Systems for Touristic Businesses,
Attractions, and Destinations," MDPI, 27 September 2023. [Online]. Available:
[Link]
[2 X. Wang, H. Zhang, S. Liu, J. Wang, Y. Wang and D. Shangguan, "Path planning of
] scenic spots based on improved A* algorithm," scientific reports, 25 January 2022.
[Online]. Available: [Link]
[3 A. S. I. Crisostomo, B. A. Dhuhli and R. Gustilo, "Investigation on Tourism Trends
] Using K-means Clustering and Regression Analysis," ResearchGate, May 2025.
[Online]. Available:
[Link]
nds_Using_K-means_Clustering_and_Regression_Analysis.
[4 A. Ghaffari, M. Afsharian and A. A. Taleizadeh , "A machine learning approach to
] dynamic pricing in multi-channel transportation supply chains," ScienceDirect, 30 July
2025. [Online]. Available:
[Link]
[5 A. D. Solano-Barliza, I. Arregocés-Julio, M. Aarón and R. Zamora-Musa,
] "Recommender systems applied to the tourism industry: a literature review,"
ResearchGate, June 2024. [Online]. Available:
[Link]
d_to_the_tourism_industry_a_literature_review.
[6 M. A. Damos and J. Zhu, "Enhancing the K-Means Algorithm through a Genetic
] Algorithm Based on Survey and Social Media Tourism Objectives for Tourism Path
Recommendations," MDPI, 27 January 2024. [Online]. Available:
[Link]
41
[7 C. Song, "Scenic spot path planning and journey customization based on multilayer
] hybrid hypernetwork optimization," PLOS one, 10 December 2024. [Online].
Available:
[Link]
[8 S. M, "Flight Price Prediction — A Case Study," Medium, 25 January 2024. [Online].
] Available: [Link]
study-19f29c4ce423.
[9 B. Li and K. Zhang, "Research on Travel Route Planning Optimization based on Large
] Language Model," Preprints, 17 July 2024. [Online]. Available:
[Link]
[1 "Viator: Tours, Activities & Things To Do," Viator, [Online]. Available:
0] [Link]
[1 "Klook: Travel Activities, Attractions & Things To Do," Klook, [Online]. Available:
1] [Link]
[1 "Rezdy: Online Booking Software for Tours and Activities," Rezdy, [Online].
2] Available: [Link]
[1 "TourCMS: Tour Operator Software and Reservation System," TourCMS, [Online].
3] Available: [Link]
[1 "GetYourGuide: Tours & Tickets Worldwide," GetYourGuide, [Online]. Available:
4] [Link]
42