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

A Project

on
“TOURISM MANAGEMENT SYSTEM”

Submitted for the partial fulfilment of the Degree of Bachelor of


Computer Application
under
Maulana Abul Kalam Azad University of Technology, West Bengal.
A Project on
“TOURISM MANAGEMENT SYSTEM”

Submitted by SEO KUMAR HARIJAN

SWAMI VIVEKANANDA INSTITUTE OF MODERN SCIENCE


Kolkata, West Bengal
SWAMI VIVEKANANDA INSTITUTE OF MODERN SCIENCE

Kolkata, West Bengal

Student Name: Seo Kumar Harijan


Roll Number: 26401221113
Registration No.: 212641001210064 Year: 2021-2022
Department: Computer Application
Course: Bachelor of Computer Application
Session: 2021-2024
Paper Name: Industrial Training & Minor Project
Paper Code: BCAD581
College Code: 264
University Name: Maulana Abul Kalam Azad University of Technology
SWAMI VIVEKANANDA INSTITUTE
OF
MODERN SCIENCE

Affiliated to Maulana Abul Kalam Azad University of Technology, WB


Sonarpur Station Road, Karbala, P.O. - Narendrapur, P.S. - Sonarpur, Kolkata-700103

TO WHOM IT MAY CONCERN

This is to certify that the project entitled “Tourism Management System” with
reference to Swami Vivekananda Institute of Modern Science, Sonarpur, Kolkata-
700103 is submitted by SEO KUMAR HARIJAN [3rd year, 2nd semester,
registration no. 202641001210035 year 2020-21, roll no. 26401220033] under the
Department of Computer Application for the partial fulfilment of the degree of BCA,
under Maulana Abul Kalam Azad University of Technology, WB, embodies the work
has been done by him under our supervision.

…………………….. ……………………..
Prof. Gargi Gupta Dr. Meghdoot Ghosh
(Vice-Principal) (Principal)
SVIMS SVIMS

…………………….. ……………………..
Prof. (Dr.) Ambalika Ghosh Prof. (Dr.) Ambalika Ghosh
(Internal Project Guide) (Head of The Department)
Department of Computer Application Department of Computer
SVIMS Application
SVIMS

Date:
Place: Kolkata
DECLARATION

I hereby declare that the project work title “TOURISM MANAGEMENT SYSTEM” Submitted
to SWAMI VIVEKANANDA INSTITUTE OF MODERN SCIENCE Affiliated to MAULANA
ABUL KALAM AZAD UNIVERSITY OF TECHNOLOGY, as a partial fulfilment for the award of
Bachelor of Computer Application. This is an original work done by me not submitted to any other
institute.

Place: KOLKATA WITH SENCERE REGARDS

Date: SEO KUMAR HARIJAN


ACKNOWLEDGEMENT

I think this is an opportunity to thank all the individuals without their help in this project have been
incomplete.

I would like to thank "DR. NANDAN GUPTA", Director, Swami Vivekananda Institute of Modern
Science and "PROF. GARGI GUPTA", Vice- Principal of Swami Vivekananda Institute of
Modern Science, Karbala More, Sonarpur Station Road, Kolkata-700103.

I would also like to thank “PROF. DR. AMBALIKA GHOSH”, Head of the Department of
Computer Application.

My profound gratitude goes to “PROF. SIMI ROY CHOWDHURY”, Assistant Professor,


Department of Computer Application, as our internal guide. I would also express my sincere thanks
to the persons who are helpful in explaining about domain information of the existing system.

I am thankful to all the FACULTY MEMBERS AND LAB ASSISTANT OF DEPARTMENT OF


COMPUTER APPLICATION, also all the FACULTY MEMBERS of Swami Vivekananda
Institute of Modern Science.

I am grateful to my PARENTS and FRIENDS for supporting me directly and indirectly during the
project.

Finally, I would like to mention here that I am indebted to each and everybody who have been
associated with my project at any stage but whose name doesn't find a place in this acknowledgment.

Date WITH SINCERE REGARDS

SEO KUMAR HARIJAN


Table of Content

SL.No. Topic Page No.

1. Introduction 1-7
2. Literature Review 8-13
3. Objective of the Project 14
4. Purpose of the Project 15
5. System Analysis and Feasibility Study 16-21
6. Software and Hardware Requirements 22
6.1 Technology Used 23-25
6.1.1 Backend Technology 23-24
6.1.2 Frontend Technology 25

7. System Design 26-27


7.1 Software Development Model 28
7.2 Data Flow Diagram 29
7.2.1 Context Level DFD 30
7.2.2 1 Level DFD 31
7.2.3 2 Level DFD 32
7.3 Entity Relationship Diagram 33
7.4 Normalization 34-35
7.5 Database Tables 36-37
8. Coding and Implementation 38-158
9. Case Studies 159
9.1 Testing Methodology 160
9.2 Test Cases 161-163
9.3 Validation 164
9.4 System Security Measures 165-166
10. Maintenance 167
11. Limitation and Future Scope 168-169
12. Conclusion 170-173
Picture Index

SL.No. Topic Page No.


01 Context Level DFD 30
02 1-Level DFD 31
03 2-Level DFD 32
04 ER- Diagram 33
05 TMS Database 36
06 Agents Database 36
07 User Database 36
08 Package Database 37
09 Booking Database 37
10 Customer Support 37
11 Home Page 38
12 Sign in & Sign up 43
13 About 59
14 Admin Control Page 63
15 Package Page 70
16 Package Details 74
17 Enquiry Form Page 79
18 Admin Login 83
19 Dashboard 86
20 Create Tour Package 94
21 Manage Package 103
22 Update Package 109
23 Agents Details 118
24 Manage Agents Details 126
25 Update Agents Details 133
26 Manage Booking 142
27 Manage Issues 151
Abstract

In this project a detailed review of Tourism Management System. The main objectives of this website
to know the package related to the trip and journey with best facility and current offer. Searching
will be very easy. At a single click will be able to fetch the required data.

Nowadays, there are multiple travel packages existing from the various websites to approximately
all the locations over the world. A customer demonstrates that it is extremely complicated to search
for the multiple of the packages as for significant websites, contact, and communication with the
travel agents and more options that exists in it which is a passive method and time-consuming.

This project will assist travellers to recommend the best Travel Package among all the packages
relevant information such as image, hotel facility, Google map facility, transport facility and
description about the places where they want to visit. The tour and travels management system will
be helpful for tourism.

The need for a tourism management system that can manage tourism information with ease is sought
after by every tour management company. Tourism Management system is a dynamic website for
tourism business. This travel and tourism application is designed for travel agencies by which they
can manage different tour packages based on the destinations. By using this, the tour company can
tailor tour packages spanning various destinations at almost every price point. The also implemented
search module allows the administrator to find and update or upgrade the tour packages with ease

This module can also even be extended to a customer application page by which customers can find
the right tour package for them at every budget, depending on the tour locations. The main purpose
is to help tourism companies to manage tour packages. The system can also be used for both
professional and business trips. The proposed system maintains a centralized repository to make
necessary travel arrangements and to retrieve information easily.

This particular project deals with the problems on managing a tour and avoids the problems which
occur when carried manually. The deployment of TMS has profound implications for the tourism
industry, reshaping traditional paradigms and introducing new possibilities. Operational efficiency
is heightened as manual processes are automated, reducing administrative overhead and minimizing
errors. Customer satisfaction is elevated through personalized services and streamlined experiences,
fostering loyalty and positive word-of-mouth. Additionally, TMS contributes to the industry's
commitment to sustainability by providing tools for responsible tourism planning, monitoring, and
reporting. While the benefits of TMS are evident, challenges such as data security, system integration
complexities, and the need for continuous technological updates must be addressed. As the industry
evolves, the future of TMS lies in its adaptability to emerging technologies, its role in shaping smart
tourism destinations, and its ability to balance innovation with sustainability.

Tourism Management Systems stand as the linchpin of the modern tourism industry, offering a
transformative approach to operations, customer engagement, and sustainability. As we delve into
the nuances of TMS in the subsequent chapters, a deeper understanding of its role in shaping the
present and future of travel will unfold, illuminating the path for stakeholders to navigate the
evolving landscape of the global tourism ecosystem.
1. Introduction

Project Title: Tourism Management System (TMS)


A tourism management system is the backbone of the travel industry, orchestrating and streamlining
the intricate web of services that cater to travellers’ needs. This system amalgamates technology,
logistics, and customer-centric approaches to enhance the overall travel experience. From
reservations and itinerary planning to ensuring seamless operations at hotels, attractions, and
transportation hubs, the tourism management system plays a pivotal role in ensuring efficiency,
convenience, and satisfaction for both tourists and service providers. By leveraging innovation and
data-driven insights, this system aims to optimize operations, foster sustainable practices, and
create unforgettable experiences that beckon travellers to explore and discover the world's wonders.

Tourism has turned out to be an economic booster contributing to the economic development of
many countries over the last few decades. People see holidays as a necessity, and not as luxury in
the present scenario. Tourism calls for coordination and cooperation between travel agents, tour
operators, and tourists.

Thus, we have developed an application to provide the best travelling services to the customers and
travel agents. The Tourism Management System provides a search platform where a tourist can find
their tour places according to their choices. This system also helps to promote responsible and
interesting tourism so that people can enjoy their holidays at their favourable places and develop
tourism with different cultures so that they enrich the tourism experience and build pride.

The Tourism Management System is a web-based application. The objective of this project is to
develop a system that automates the processes and activities of a travel agency. It is tedious for a
customer to plan a particular journey and have it executed properly. This project is developed to
replace the currently existing system, which helps in keeping records of the customer details of
destination as well as payment received. The proposed system is highly automated and makes the
travelling activities much easier and flexible. The users can get the very right information at the
very right time. This will increase the trust of the customer into the tourism company as well.

This project is designed with SQL Server as back end. All the data will be stored in the server and
in case of any data losing situation, a backup will be available by this server. The details related to
every aspect of the tourist will be available separately. The admins just have to click once and all
the details will be available to them.

Travel and Tourism management system is an online project to provide the complete information
about the vehicles available for a tour. There are 2 different types of users. First the customer visits
the site and enters the place from where to where he wishes to travel. He also provides the date as
when he would like to travel. Then he sends these details to the travel and tourism agency. The
employee of travel and tourism agency receives the mail and check which vehicle is available for
that day and reverts back to the customer along with the quotation.
If the customer agrees for any one of the quotations, he can reply back along with agreed quotation.
Then the agency will take down all the details of the customer and will send a confirmation message
to the customer. On the day of the tour, the customer first must show the confirmation message to

1|Page
the driver for clarity and only then he will agree to drive after looking at the confirmation message.
This software is user friendly and helps in finding the vehicle sooner rather than wandering
manually everywhere to find for vehicles. Before the tour starts, half payment has to be done.
After the customer returns or reaches his final destination, he must pay full amount either through
cash or through cards. After the travelling the customer can come back to the site and enter his
feedback about the travel and tourism agency. If any good feedback will be taken positively and if
any negative feedback too will be taken positively and try to improve what had lacked. The report
is also generated periodically and the database will be cleared according to the time.
Users’ information has to be compelled to be registered within the system thus on establish every
one of them unambiguously and do the required group action as real potential. like on the name of
the bill are issued. On the far side, this plenty of things require measure there wherever we will
reference him.

Without registration, there are a few options and pages one user can see which are landing on the
home page and taking the features to read but he won’t be allowed to use those. For use, he will
have to register. One person needs to put all the details correctly and precisely as it will be helpful
in identifying them and believing that he is the real person who has booked for the same. It also
includes driver license for them who is driving and parameter too.

After registration one will register within the system because of the operator of the system either
on behalf of the user. When this he has the different helpful interfaces accessible for any actions.
Here either bride or groom both have to log in with their unique identity and passwords. After
this, they will be directed to the primary user interface from where they have further options.

This is quite often that people tend to forget the password they keep for the login. So, this could
be very tedious and hectic to recover the password manually in case if one needs to login in an
emergency. So, to overcome this problem we have this module named ass forgot the password,
and using this module users can recover their password in seconds.

So here we need only to put our registered email Id and hit the enter. Then one confirmation email
will go to the email where he may reset the password. In seconds one can use this module and get
rid of the forgetting password problem.
Tourism Management System This resource is crafted to provide you with detailed insights,
guidance, and support in navigating the functionalities and features of our platform.
Whether you're a seasoned professional in the tourism industry or someone passionate about
exploring the world of travel management, this documentation serves as your go-to reference. Here,
you'll find a wealth of information, tutorials, and FAQs designed to assist you at every stage of
utilizing our system.
Our goal is to empower users with a deeper understanding of our platform's capabilities, enabling
you to leverage its full potential effectively. From learning the basics to mastering advanced
functionalities, this documentation is your key to unlocking seamless travel management
experiences.

2|Page
Admin has the official powers to control the flow of the data from one part of the system to the
other. He can manipulate the access of the users to the data. The primary purpose of this account
is to make the user data relevant and then giving the inputs to the other interface module and
make it work optimistically and get the timetable according to the wish we want to create for a
particular type of inputs.

‘Hence all the data will be reflected in clean and well data in the interfaces’

1.Efficient Tour Package Management: The TMS aims to simplify the creation,
modification, and management of tour packages, allowing businesses to quickly respond to market
demands and offer a diverse range of travel options to customers.
Efficient tour package management involves the seamless orchestration of various components to
create, organize, and deliver comprehensive travel experiences to customers. Here’s a breakdown:

Package Creation: Designing appealing and diverse tour packages that cater to different
preferences and demographics. This involves selecting destinations, accommodations, activities,
and transportation options that align with the target audience's interests.
Inventory Management: Maintaining an up-to-date inventory of available resources,
including hotel rooms, transportation services, tour guides, and attractions. This ensures that
package offerings are based on actual availability.

Real-time Updates: Providing real-time updates on availability, pricing, and any changes in the
package details to both customers and internal staff, ensuring transparency and accuracy in
information.

Booking and Reservation Integration: Streamlining the booking process by integrating


various booking systems for flights, accommodations, tours, and other services into a unified
platform. This simplifies the reservation process and reduces potential errors.

Customer Communication: Establishing effective communication channels to interact with


customers, addressing their queries, providing necessary information, and ensuring a smooth pre-
travel experience.

Logistics and Coordination: Coordinating all elements of the package, including


transportation, accommodations, activities, and guides, to ensure they align seamlessly and create
a cohesive travel experience.

Feedback and Improvement: Collecting feedback from customers post-trip to understand


their experiences, preferences, and areas for improvement. This feedback loop helps in refining
future tour packages and enhancing customer satisfaction.
Efficient tour package management involves a blend of technology, logistics, customer
engagement, and continuous improvement strategies to create enticing travel offerings while
ensuring a hassle-free and enjoyable experience for travellers.

2.Streamlined Booking and Reservation: Through a user-friendly interface, the TMS


enables customers to effortlessly browse, book, and pay for tours and services. It automates the
reservation process, reducing errors and improving overall booking efficiency.
3|Page
Streamlined booking and reservation processes in the context of tourism refer to the seamless and
efficient procedures put in place to facilitate the reservation of travel-related services, such as
accommodations, flights, tours, and other activities. Here's an explanation of the key elements:

User-Friendly Interfaces: Designing intuitive and easy-to-navigate online platforms or


applications where customers can effortlessly browse, select, and book various travel services. A
user-friendly interface simplifies the booking process, reducing the steps required to make a
reservation.
Centralized Booking Systems: Integration of different booking systems into a centralized
platform allows customers to access and book multiple services (hotels, flights, car rentals) in one
place. This reduces the need for customers to navigate through multiple websites or platforms to
plan their trip.
Real-Time Availability: Providing real-time information on the availability of services,
including rooms, seats, or tours. This ensures that customers receive accurate and updated
information at the time of booking, minimizing the chance of overbooking or discrepancies.
Confirmation and Communication: Sending immediate confirmation of bookings via
email or SMS to customers, providing them with all necessary details such as booking IDs,
itineraries, and contact information. Effective communication channels are crucial to handle queries
and changes swiftly.
Integration with Customer Profiles: Having systems that store customer preferences and
booking history can facilitate faster bookings by auto-populating details and providing personalized
recommendations.
Efficient Backend Operations: Ensuring that the backend systems efficiently process
bookings, manage inventory, and synchronize data across various departments to avoid
discrepancies and streamline operations.
By streamlining the booking and reservation process, travel companies aim to enhance the overall
customer experience, reduce booking errors, and increase efficiency in managing reservations,
ultimately leading to higher customer satisfaction and loyalty.

3.Enhanced Customer Relationship Management (CRM): The system is designed to


centralize customer data, preferences, and interactions, enabling businesses to provide personalized
services, build lasting relationships, and gain valuable insights into customer behaviour.
Enhanced Customer Relationship Management (CRM) in the context of tourism revolves around
strategies and tools used to build and maintain strong relationships with travellers, ensuring
personalized and exceptional experiences. Here's a breakdown:
Customer Data Collection: Gathering comprehensive information about customers,
including their preferences, past travel history, contact details, and feedback. This data serves as
the foundation for personalized interactions and services.
Personalization: Utilizing collected data to personalize interactions and offerings. This might
involve suggesting tailored travel packages, recommending specific destinations based on past
preferences, or providing personalized discounts or perks.
4|Page
Communication Channels: Offering various communication channels such as email, chat,
social media, and phone support for customers to reach out for inquiries, assistance, or support.
Prompt and personalized responses contribute to customer satisfaction.

Feedback and Surveys: Regularly seeking feedback from customers post-trip to understand
their experiences, preferences, and areas for improvement. Analysing this feedback helps in
refining services and addressing pain points.
Customer Journey Mapping: Understanding and mapping the customer journey, from the
initial research phase to post-trip feedback. This helps in identifying touchpoints where customer
experience can be improved.
CRM Software Integration: Implementing CRM software that centralizes customer data,
interactions, and preferences, enabling efficient management and analysis of customer information
to enhance service delivery.
Proactive Problem Solving: Anticipating and addressing customer issues before they
escalate. This involves proactive communication, swift resolution of complaints, and a customer-
centric approach in problem-solving.
Training and Empowerment: Training staff to provide exceptional customer service and
empowering them with the tools and authority to resolve issues promptly, creating a positive impact
on customer experience.
Enhanced CRM in tourism focuses on creating meaningful and long-lasting relationships with
travellers by understanding their needs, providing personalized experiences, and consistently
delivering exceptional service throughout their journey. This approach not only fosters customer
satisfaction but also contributes to increased brand loyalty and positive word-of-mouth referrals.

4.Transparent Reviews and Ratings: The TMS promotes transparency and trust by
allowing customers to share their experiences through reviews and ratings, which can help
businesses improve their offerings and reputation.
Transparent reviews and ratings in the tourism industry refer to an open and honest system where
customers can express their opinions and experiences regarding travel services, accommodations,
destinations, and activities. Here's a closer look:
Customer Feedback Platforms: Providing platforms, such as review websites or sections on
booking platforms, where travellers can leave reviews and ratings based on their experiences. These
reviews should be easily accessible to potential customers.
Authenticity and Trustworthiness: Ensuring that the reviews and ratings are authentic and
credible. This might involve verification processes or systems to prevent fake or biased reviews.
Two-Way Communication: Allowing for two-way communication between service providers
and customers regarding reviews. Service providers can respond to reviews, addressing concerns
or expressing gratitude, which adds transparency and shows a commitment to customer satisfaction.

5|Page
Diverse Perspectives: Encouraging reviews from diverse demographics to provide a
comprehensive understanding of the service quality. This includes soliciting feedback from
different types of travellers, considering factors like solo travellers, families, or business travellers.
Detailed and Descriptive Reviews: Encouraging customers to provide detailed feedback
beyond just ratings, including specific aspects they liked or disliked about the service or destination.
This helps potential customers make informed decisions.
Moderation and Fairness: Moderating reviews to ensure fairness and prevent inappropriate
content while allowing for honest opinions. Balancing the need for transparency with maintaining
a respectful platform is crucial.
Impact on Decision-Making: Acknowledging the impact reviews and ratings have on
travellers decision-making processes. Many travellers rely on reviews to choose accommodations,
activities, or tour packages, making transparency in these ratings essential.
Continuous Improvement: Using reviews and ratings as valuable feedback for service
improvement. Analysing trends in feedback can highlight areas needing attention, guiding efforts
to enhance services and customer satisfaction.
Transparent reviews and ratings play a pivotal role in shaping the perceptions of potential traveller’s
influencing their choices, and ultimately contributing to the improvement of services within the
tourism industry. They provide a platform for both customers and service providers to engage,
ensuring accountability and fostering a culture of continuous improvement.

5.Seamless Integration with External Services: The system enhances the customer
experience by integrating with external services such as weather forecasts, mapping, and local
attractions information, providing valuable information to travellers.
Seamless integration with external services in the context of tourism refers to the ability of a travel
management system or platform to effectively collaborate and interact with third-party services,
applications, or systems to enhance the overall travel experience. Here's a breakdown:
API Integration: Utilizing Application Programming Interfaces (APIs) to connect and integrate
with external services such as airline booking systems, hotel reservation platforms, car rental
services, tour operators, and payment gateways. This allows for real-time data exchange and
facilitates smooth transactions.
Multi-Platform Connectivity: Ensuring compatibility and connectivity across various
devices and platforms, including mobile devices, websites, and other digital interfaces. This enables
travellers to access and utilize services seamlessly across different channels.
Service Aggregation: Integrating multiple services or offerings from different providers into a
single platform, enabling travellers to access a wide range of options conveniently. For example, a
travel app that aggregates flights, accommodations, and local experiences from various vendors.
Real-Time Updates: Ensuring that information from external services is updated in real time
within the travel management system. This includes availability of flights, room vacancies, tour
schedules, and pricing changes.

6|Page
Secure Transactions: Establishing secure connections and protocols for transactions between
the travel platform and external services to safeguard sensitive customer data and financial
information.
Customization and Personalization: Leveraging integrated external services to offer
personalized recommendations or customized travel packages based on customer preferences and
behaviours, enhancing the overall user experience.
Customer Support Integration: Integrating customer support systems or chatbots that can
assist travellers in real time by accessing information from external services, addressing queries or
issues promptly.
Analytics and Reporting: Collecting and analysing data from integrated services to derive
insights, track performance, and make data-driven decisions that improve the overall efficiency and
quality of services offered.
Seamless integration with external services is essential in today's travel industry to provide
customers with a comprehensive and user-friendly experience. It enables travel platforms to offer
a wider array of choices, streamline processes, and ensure that travellers have access to up-to-date
and relevant information throughout their journey.

OVERALL DESCRIPTION: Tours & Travels Management System Transport solution to the
different companies situated locally in the many districts and it organizes tours to various part of
the particular areas. Earlier all the processes were done manually. The manual process is done by
maintaining the details of the tours, employees and their customers.
Overall, a well-designed and implemented tourism management system is instrumental in
enhancing the efficiency of the travel industry while also ensuring a delightful and hassle-free
experience for travelers.

7|Page
2. Literature Review

A literature review on a tourism management system explores the scholarly works, research, and
theories surrounding the development, implementation, and impact of technology in managing
tourism activities.
The tourism industry has witnessed significant transformations due to technological advancements,
particularly in the development and utilization of tourism management systems (TMS). These
systems integrate various technologies to streamline and enhance the efficiency of tourism-related
operations, including booking, marketing, resource management, and customer service.
Research by Buhalis and Law (2008) highlights the evolution of TMS, emphasizing the shift from
traditional manual processes to sophisticated digital systems. The integration of information and
communication technologies (ICTs) has revolutionized the way tourism is managed, offering
opportunities for destination management organizations (DMOs) and businesses to improve their
competitiveness and sustainability.
One crucial aspect often explored in literature is the impact of TMS on destination management.
DMOs play a pivotal role in promoting and developing tourist destinations. Studies by Gretzel and
Jamal (2009) emphasize how TMS empower DMOs to collect, analyze, and utilize data for
effective destination marketing. Real-time data analytics enable personalized marketing strategies
and the customization of tourist experiences, ultimately contributing to destination
competitiveness.
Furthermore, TMS's influence on tourist behavior and decision-making processes is a significant
focus. Research by Xiang, Magnini, and Fesenmaier (2015) delves into the role of technology in
shaping tourists' information search and decision-making processes. The accessibility of
information through TMS, such as online reviews, social media, and mobile applications,
influences tourists' perceptions and choices, impacting destination preferences and travel planning.
Sustainability is another critical dimension addressed in the literature concerning TMS. Pappas and
Fragkaki (2018) highlight the potential of TMS in promoting sustainable tourism practices.
Through efficient resource management, waste reduction strategies, and the facilitation of eco-
friendly initiatives, TMS contribute to sustainable destination development and minimize the
negative impacts of tourism on the environment and local communities.
Issues of concern also emerge in the discourse surrounding TMS. Privacy and data security are
significant considerations in the digital era. Studies by Huang and Rust (2018) discuss the
challenges associated with the collection and utilization of tourist data by TMS. Balancing the
benefits of data-driven decision-making with the protection of tourists' privacy remains a critical
challenge for stakeholders in the tourism industry. Moreover, the inclusivity and accessibility of
TMS for various stakeholders, including small and medium-sized enterprises (SMEs) in the tourism
sector, have been subjects of interest. Wang, Xiang, and Fesenmaier (2014) highlight the
importance of user-friendly and cost-effective TMS solutions that cater to the diverse needs of
different tourism businesses, ensuring broader participation and benefits across the industry.
Certainly, let's expand further on the literature review of tourism management systems (TMS) to
delve deeper into various aspects and research perspectives.

8|Page
Evolution and Integration of Technology:
Buhalis and Law (2008) discuss the evolutionary journey of TMS, emphasizing the transition from
manual processes to digital systems. The integration of Information and Communication
Technologies (ICTs) such as cloud computing, big data analytics, artificial intelligence, and the
Internet of Things (IoT) has revolutionized tourism management. These technologies facilitate
seamless communication, data storage, and analysis, enabling stakeholders to make informed
decisions in real-time.
Destination Management and Marketing:
Gretzel and Jamal (2009) emphasize the transformative impact of TMS on Destination
Management Organizations (DMOs). TMS enables DMOs to gather, process, and utilize vast
amounts of data for effective destination marketing. Dynamic pricing models, targeted advertising,
and personalized recommendations based on data analytics significantly enhance destination
competitiveness.
Moreover, the role of social media platforms and user-generated content cannot be overlooked.
Research by Leung, Law, and Van Hoof (2013) highlights the influence of social media in shaping
travelers' perceptions and decision-making processes. TMS that integrate social media monitoring
and engagement tools enable destinations and businesses to interact with tourists, build brand
loyalty, and address customer concerns promptly.
Tourist Behaviour and Decision-Making Processes:
Xiang, Magnini, and Fesenmaier (2015) delve into how TMS influence tourists' behavior. The
accessibility of information through TMS platforms like online reviews, social media, and mobile
apps significantly impacts tourists' preferences and decision-making. Personalized
recommendations and interactive platforms contribute to a more engaging and satisfying travel
experience.
Sustainability and TMS:
TMS play a crucial role in promoting sustainable tourism practices. Pappas and Fragkaki (2018)
highlight the potential of TMS in enabling efficient resource management, waste reduction
strategies, and the facilitation of eco-friendly initiatives. This aspect is essential in minimizing the
negative impact of tourism on the environment and local communities.

Challenges and Concerns:


Despite the advantages, challenges persist in the implementation of TMS. Data privacy and security
remain paramount. Huang and Rust (2018) address concerns regarding the collection and utilization
of tourist data. Striking a balance between utilizing data for decision-making and safeguarding
tourists' privacy is a challenge for stakeholders in the tourism industry.
Another concern revolves around the digital divide and inclusivity. While TMS offer numerous
benefits, Wang, Xiang, and Fesenmaier (2014) highlight the importance of ensuring accessibility
and affordability of TMS solutions for small and medium-sized enterprises (SMEs) in the tourism
sector. Addressing this issue ensures broader participation and benefits across the industry.

9|Page
Future Directions and Conclusion:
The future of TMS involves further advancements in technology integration, especially in areas
like AI-driven personalization, blockchain for secure transactions, and augmented reality for
enhanced experiences. Ongoing research aims to address challenges, including data privacy,
equitable access, and sustainability, to harness the full potential of TMS in the ever-evolving
tourism landscape.
Certainly, let's further explore the literature surrounding tourism management systems (TMS) by
delving into specific areas and emerging trends:

Technology Integration and Innovation:


Recent studies by Li, Wang, and Jia (2021) highlight the growing trend of integrating emerging
technologies like virtual reality (VR) and augmented reality (AR) into TMS. VR and AR
applications offer immersive experiences for tourists, allowing them to virtually explore
destinations, accommodations, and attractions, thereby influencing their travel decisions.
Additionally, the integration of chatbots and natural language processing (NLP) technology in TMS
has gained attention. Chatbots serve as virtual assistants, providing real-time customer support,
personalized recommendations, and handling bookings, thus enhancing user experiences. Research
by Chen, Wei, and Liu (2020) emphasizes the effectiveness of chatbots in improving customer
satisfaction and operational efficiency in the tourism industry.

Data Analytics and Predictive Modeling:


Advancements in data analytics have significantly impacted TMS. Research by Morrison, Rice,
and Schuckert (2019) focuses on predictive analytics within TMS. Predictive modeling techniques
allow for forecasting tourist behavior, demand patterns, and market trends. This proactive approach
assists stakeholders in making informed decisions and adapting strategies accordingly.
Moreover, the utilization of geospatial analysis and location-based services (LBS) in TMS has
garnered interest. By leveraging GPS and location data, TMS provide personalized
recommendations, navigation assistance, and context-aware information to enhance tourists'
experiences, as discussed by Cui, Li, and Yang (2018).

Smart Tourism and Sustainable Development:


The concept of smart tourism has emerged, emphasizing the integration of smart technologies in
destination management. Research by Liang, Zhu, and Sun (2020) discusses the implementation of
smart tourism ecosystems that use interconnected technologies to optimize resource utilization,
enhance visitor experiences, and promote sustainable practices within destinations.
Furthermore, the role of TMS in supporting community-based tourism and fostering local
community involvement is a growing area of interest. Studies by Jamal and Stronza (2018)
highlight how TMS can empower local communities by providing them with tools and platforms
to participate in tourism activities, preserving cultural heritage, and benefiting economically.

10 | P a g e
Adaptation and Resilience:
Recent events such as the COVID-19 pandemic have underscored the need for TMS to adapt and
enhance resilience in the face of disruptions. Research by Hall, Timothy, and Duval (2021) explores
how TMS have adapted during crises, enabling virtual experiences, implementing contactless
services, and facilitating transparent communication to ensure traveler safety and satisfaction.

Ethical Considerations and Responsible Tourism:


Ethical considerations in TMS are gaining attention, especially concerning the responsible use of
data and the ethical implications of technological interventions in tourism. Researchers like Sigala
and Christou (2019) delve into the importance of aligning TMS developments with ethical
principles to ensure responsible tourism practices and minimize negative impacts on local cultures
and environments.
In summary, the evolving landscape of TMS continues to witness advancements in technology
integration, data analytics, sustainability, resilience, and ethical considerations. These emerging
trends reflect the ongoing efforts to leverage technology for enhancing tourism experiences,
supporting sustainable development, and addressing contemporary challenges within the industry.
In conclusion, the literature review reflects the pivotal role of TMS in reshaping the tourism
industry. From enhancing destination management and influencing tourist behaviour to fostering
sustainability and addressing challenges like data privacy, TMS have become indispensable tools
for stakeholders navigating the dynamic tourism ecosystem. Continued research and development
are crucial to harness the full potential of TMS and address emerging challenges in the industry.
A literature review on tourism management systems would encompass various aspects of
technology, management, and their application within the tourism industry. Here’s an outline to
guide your literature review:
1.Data analysis in terms of coding, organizing, filtering, categorizing, relating and related abstract
concepts. The software allows making comparisons among different concepts simultaneously,
which simplifies qualitative data analysis and improves the accuracy of research findings. Critical
strategies, including method triangulation, conformability audit and member checks are applied to
ensure trustworthiness of research findings.

2.Information search (traveler’s perspectives), and market segmentation by


information/booking channel. Perspective the reasons why travellers make use of different sources
of information are investigated, whereas using another perspective, the observable outcome of that
behaviors is raised.

3.Although, there is many things that we learn and know about the places in detail very well. It
helps to know about the ancient things & their cultures in detail. Grand Tour, education, higher
education, travel & tourism is the main topics for learn & discuss about it.

4.Tour and travel information is obtained mainly through communication media like newspaper,
magazines etc. Today's mobile devices are becoming more intelligent, which provides information
in mobile itself. Mobile Technology is now set to improve tourism in various fields.

11 | P a g e
Overview of Tourism Management Systems:
- Definition and scope of tourism management systems.
- Evolution and historical development of these systems.
- Key components and functionalities within these systems.

Role of Technology in Tourism Management:


• Integration of technology in managing reservations, bookings, and customer interactions.
• Impact of technology on enhancing efficiency, customer experience, and overall operations in
the tourism industry.

Benefits and Challenges of Tourism Management Systems


• Advantages of using these systems for service providers, travelers, and the industry as a whole.
• Challenges faced in implementing and maintaining effective tourism management systems,
including technological limitations and adoption barriers.
Customer-Centric Approaches:
• The importance of personalized experiences and customer relationship management within
tourism systems.
• How these systems facilitate customization, feedback collection, and service personalization.

Sustainability and Innovation:


• How tourism management systems contribute to sustainable practices within the industry.
• Role of innovation and emerging technologies (such as AI, IoT, blockchain) in advancing
tourism management systems.

Case Studies and Practical Applications:


• Examination of real-world applications and success stories of tourism management systems in
various regions or within specific businesses.
• Analysis of the impact and effectiveness of these systems in different tourism sectors (e.g.,
hospitality, transportation, attractions).

Future Trends and Directions:


• Predictions and insights into the future of tourism management systems.
• Emerging trends, challenges, and potential advancements in technology and management
practices for the tourism industry.

12 | P a g e
Conclusion and Recommendations:
• Summary of key findings from the literature.
• Recommendations for further research or areas where improvements or innovations could be
applied.

Ensure to explore a wide range of academic papers, industry reports, case studies, and relevant
sources to provide a comprehensive understanding of the topic. Integrating diverse viewpoints
and sources will strengthen the review and provide a holistic view of tourism management
systems.

13 | P a g e
3. Objective of the Project

Tourism Management System (TMS) refers to a comprehensive framework, often technological,


designed to streamline and enhance the various facets of the tourism industry. It integrates
information technology to efficiently manage and optimize operations within the tourism sector.

The objectives of a Tourism Management System (TMS) revolve around optimizing operations,
enhancing customer satisfaction, fostering industry growth, and promoting sustainable practices
within the tourism sector.

TMS aims to streamline and automate various processes within the tourism industry. This includes
reservations, inventory management, itinerary planning, and financial transactions. By automating
these tasks, TMS reduces operational costs, minimizes errors, and increases the speed of service
delivery.

One of the primary objectives is to enhance the overall travel experience for tourists. TMS achieves
this by providing user-friendly interfaces for bookings, personalized recommendations, real-time
assistance, and seamless communication. This improves customer satisfaction and encourages
repeat business and positive word-of-mouth recommendations.

TMS collects and analyzes data related to bookings, customer preferences, market trends, and
operational efficiency. The objective is to derive insights that guide strategic decision-making. This
includes setting pricing strategies, optimizing service offerings, and identifying growth
opportunities based on comprehensive data analysis.

Facilitating collaboration among various stakeholders in the tourism ecosystem is a key objective.
TMS platforms enable better communication and connectivity between hotels, tour operators,
transportation services, and local authorities. This collaboration enhances the creation of
comprehensive travel packages, improves coordination, and fosters partnerships to offer diverse
and integrated travel experiences.

TMS plays a role in promoting sustainable tourism practices. The objective here is to minimize the
environmental impact of tourism activities. It includes promoting eco-friendly accommodations,
supporting local communities, and encouraging responsible tourism behavior among travelers.

Another objective of TMS is to adapt to technological advancements and continuously innovate.


This involves staying updated with new technologies to improve functionalities, security, and the
overall user experience.the objectives of a Tourism Management System revolve around efficiency,
customer satisfaction, data-driven decision-making, collaboration, sustainability, and adaptation to
technological advancements, all aimed at fostering growth and sustainability within the tourism
industry.
14 | P a g e
4. Purpose of the Project
The purpose of a Tourism Management System (TMS) is multifaceted, aimed at enhancing
operational efficiency, customer experience, and the overall sustainability of the tourism industry.
Tourism Management System is an application will help in maintaining the operations performed
related to sight-seeing and travelling. Most of the people in this world like to travel from one place
to another no matter whether it is a small or large distance. Some people like to travel by train,
flight, bus or by any other means of transport. The tours travel management system application is
designed for the travel agency in which there is an option of doing the railway or air ticket
reservation in order to reach the intended destination. The tours & travel management system
application is one of the applications that will help the customers to book the air ticket or the railway
tickets through this application of the travel agency. Booking of tickets will be done with a great
ease and without any difficulty. This will be one of the interesting projects that one can work on
and implement in real time world. The user interface must be simple and easy to understand.

Efficient Operations: TMS streamlines various processes within the tourism sector, from
booking accommodations and transportation to managing itineraries and payments. By automating
these tasks, it reduces manual errors, saves time, and allows businesses to handle a larger volume
of transactions effectively.
Enhanced Customer Experience: TMS platforms often offer user-friendly interfaces for
travelers to research destinations, book services, and customize their trips. This enhances the
customer experience by providing convenience, personalization, and access to a wide array of
options. Additionally, TMS enables prompt responses to customer inquiries, improving satisfaction
and fostering loyalty.
Resource Optimization: Through data analytics and insights, TMS helps businesses optimize
their resources. By analyzing booking trends, customer preferences, and market demands,
businesses can make informed decisions regarding pricing strategies, resource allocation, and
service enhancements.
Sustainability and Growth: TMS contributes to the sustainability of the tourism industry by
promoting responsible practices. It enables businesses to monitor and manage their environmental
impact, promoting eco-friendly options and sustainable tourism initiatives. Moreover, by
facilitating better coordination among stakeholders, TMS supports the growth and development of
the industry as a whole.
Collaboration and Connectivity: TMS fosters collaboration among different entities in the
tourism ecosystem, such as hotels, tour operators, transportation services, and local authorities.
This connectivity enables smoother coordination, partnerships, and the creation of comprehensive
travel packages, benefiting both businesses and tourists. In essence, the purpose of a Tourism
Management System is to create a seamless and efficient environment for all stakeholders involved,
ultimately improving the quality of travel experiences, promoting sustainability, and fostering the
growth of the tourism industry.

15 | P a g e
5. System Analysis and Feasibility Study
A System Analysis and Feasibility Study for a Tourism Management System involves assessing the
needs, requirements, and viability of implementing such a system within the tourism industry.
Here's an outline of steps you might take:
Sure, a System Analysis and Feasibility Study for a Tourism Management System begins with an
extensive overview of the proposed system:

System Overview:
1. Purpose:
The primary goal is to create an efficient, user-friendly platform to streamline and enhance various
aspects of tourism management, including bookings, reservations, payments, and customer
interactions.

2. Functionalities:
• Booking Management: Allow users to search, compare, and book various travel services such
as flights, accommodations, tours, and activities.

• User Profiles: Enable users to create profiles, manage preferences, view booking history, and
receive personalized recommendations.

• Reviews and Ratings: Allow users to provide feedback and ratings for services availed,
enhancing transparency and trust.

• Integration with Service Providers: Interface with hotels, airlines, tour operators, etc., to fetch
real-time availability and pricing information.

• Itinerary Planning: Offer tools for users to plan and organize their travel itineraries.

3.User Roles:
• Tourists/Travelers: End-users who utilize the platform to plan and book their trips.

• Service Providers: Hotels, airlines, tour operators, etc., who provide services listed on the
platform.

• Administrators: Oversee the system, manage user accounts, content, and monitor system
performance.

4. Key Components:
• Frontend Interface: User-friendly web providing an intuitive interface for users to interact with
the system.

• Backend Infrastructure: Server-side logic, databases, APIs, and integrations handling data
processing, storage, and communication between various system components.
16 | P a g e
• Database: Stores user profiles, bookings, payment details, service provider information, and
other relevant data.

• Search and Recommendation Engine: Utilize algorithms to suggest personalized travel options
based on user preferences and behavior.

5. System Interactions:
• User-System Interaction: Users interact with the system through the frontend interface,
browsing options, making bookings, and providing feedback.

• System-Service Provider Interaction: The system communicates with external service


providers to fetch real-time information about services, availability, and pricing.

• System-Database Interaction: Data flows between the frontend, backend, and database layers
for user authentication, booking management, and data retrieval.

6. Scalability and Expansion:


•Designed to accommodate a growing user base and evolving needs of the tourism industry.
•Consideration for potential integration with emerging technologies like AI for better
recommendation systems or blockchain for secure transactions and identity verification.

7. Security Measures:
• Implementation of robust security protocols to safeguard user data, including encryption, secure
authentication methods, and regular security audits.

An in-depth overview like this provides a clear understanding of the system's objectives,
functionalities, components, and interactions, laying the foundation for a detailed analysis and
feasibility study.

System Analysis:
1. Identify Stakeholders: Understand the key players - tourists, travel agencies, hotels,
transportation providers, etc.
2. Gather Requirements: Conduct interviews, surveys, and workshops to gather requirements
from stakeholders.
3. Define System Scope: Outline what the system will cover - reservations, bookings, payments,
reviews, etc.
4. Use Case Scenarios: Create scenarios to understand how different users will interact with the
system.
5. Data Modelling: Design a database schema to store necessary information - user profiles,
bookings, locations, etc.
6. Technology Requirements: Identify the platforms, languages, and frameworks suitable for
developing the system.
7. Risk Analysis: Identify potential risks and challenges in implementing the system.

17 | P a g e
Feasibility Study:
1. Technical Feasibility: Evaluate if the technology required for the system is available, reliable,
and within budget.
2. Economic Feasibility: Conduct a cost-benefit analysis to determine if the system's benefits
outweigh its costs.
3. Operational Feasibility: Assess if the system aligns with the operational processes of the
tourism industry.
4. Legal and Regulatory Compliance: Ensure the system complies with data protection laws,
industry standards, etc.
5. Schedule Feasibility: Determine if the system can be developed and implemented within a
reasonable timeframe.

Recommendations:
1. System Architecture: Propose the system's architecture, including hardware and software
components.
2. Budget and Resource Allocation: Provide estimates for development, maintenance, and
required resources.
3. Implementation Plan: Outline the steps needed for system development, testing, and
deployment.
4. Risk Mitigation Strategies: Suggest ways to manage and mitigate potential risks identified in
the analysis.
5. Feasibility Report: Compile findings and recommendations into a detailed report for
stakeholders.

Database Design:
Designing a database for a tourism management system involves considering various entities,
relationships, and functionalities that the system will support.
• Database Schema: Design a relational database schema to efficiently store and retrieve data
related to users, products, orders, and inventory.
• Normalization: Apply normalization techniques to minimize data redundancy and improve
data integrity.
• Indexing: Implement indexing for faster query performance, especially in tables with large
datasets.

User Experience (UX):


• Responsive Design: Ensure the website is accessible and user-friendly across various
devices and screen sizes.
• Intuitive Navigation: Design intuitive navigation menus and user interfaces for a seamless
browsing experience.
• Feedback Mechanisms: Implement feedback messages, notifications, and alerts to keep
users informed of their actions and the status of their orders.

18 | P a g e
Security Measures:
• Secure Sockets Layer (SSL): Implement SSL to encrypt data transmitted between the user's
browser and the server, ensuring secure transactions.
• Data Validation: Apply input validation and sanitization techniques to prevent security
vulnerabilities such as SQL injection and cross-site scripting (XSS).
• User Authorization: Enforce role-based access control to restrict access to sensitive
functionalities within the system.

Integration and External Services:


• Email Notifications: Implement email notifications for order confirmations, status updates,
and password reset functionalities.
• Third-Party APIs: Explore integration possibilities with external services for features like
location-based services or social media login.

Testing Strategy:
• Unit Testing: Conduct unit testing for individual components to ensure they function as
intended.
• Integration Testing: Verify the seamless integration of different modules and components.
• User Acceptance Testing (UAT): Engage users in UAT to gather feedback and identify any
usability or functionality issues.

19 | P a g e
Cost Estimation
Cost estimation in a feasibility study for a tourism management system involves identifying various
expenses associated with developing, implementing, and maintaining the system. Here is a
breakdown of potential costs:

1. System Development and Implementation Costs:

This includes expenses related to designing, developing, and implementing the Tourism Management
System. It involves the cost of software development, programming, testing, and any necessary
customization to meet the specific needs of the tourism business.

2. Infrastructure Costs:

Consider the hardware and network infrastructure required to support the Tourism Management
System. This involves servers, storage, networking equipment, and other IT infrastructure
components. Additionally, cloud service costs should be factored in if the system is hosted in the
cloud.

3. Integration Costs:

Assess the cost of integrating the Tourism Management System with existing systems such as
booking platforms, payment gateways, CRM systems, and other relevant applications. Integration
can be complex and may require third-party tools or custom development.

4. Training and Change Management:

Training costs are essential to ensure that staff members are proficient in using the new system. This
includes training sessions, materials, and potentially hiring external trainers. Change management
costs are associated with activities that help employees adapt to the changes introduced by the new
system.

5. Maintenance and Support:

Estimate ongoing maintenance and support costs. This includes expenses for regular updates, bug
fixes, and technical support services. Consider whether these services will be provided by an in-
house team or an external vendor.

6. License and Subscription Fees:

If the Tourism Management System relies on third-party software or services, calculate the associated
license or subscription fees. This could include fees for the core system, database software,
middleware, or any other components that require periodic payments

20 | P a g e
Estimated
Estimated
Effort Hourly Rate
Component Description Cost
(Person (INR)
(INR)
Month)
Define project
scope,
Project
requirements, and 1 20 4000
Planning
plan development
phases
Design user
UI/UX Design Interfaces and user 2 50 25000
experience
Implement the
Frontend
client-side of the 3 100 50000
Development
application
Develop server
Backend Side logic,
3 110 65000
Development database, and
application
Implement
Security Security measures
1 30 8000
Implementation such as
encryption
Ensure the
application
Testing and QA functions 1 30 8500
correctly
and is bug-free
Application to
Deployment
production and
and 1 40 11600
optimize
Optimization
preformation
Total 12 380 172100

21 | P a g e
6. Software and Hardware Requirements

❖ Hardware Requirement Specification:

Client Machine Server Machine

HDD 500 HDD 500

Pentium 4 or Dual Core or


Processer Processer
Newer Newer
Processor processor
Memory 1GB Memory 2GB

❖ Software Requirement Specification:

Client Machine Server Machine

Any Standard Software Apache


Browser
browser

Client Side
Database
Markup / HTML, JavaScript,
Management My SQL- 4.1
Scripting PHP
System Software
language

22 | P a g e
6.1. Technology Used

6.1.1.Backend Technology
PHP:
PHP started out as a small open-source project that evolved as more and more people found out
how useful it was. Rasmus Lerdorf unleashed the first version of PHP way back in 1994. PHP is a
recursive acronym for “PHP: hypertext Pre-processor”. PHP is a server-side scripting language that
is embedded in HTML. It is used to manage dynamic content, databases, session tracking even
build entire e-commerce. It is integrated with a number of popular databases, including MySQL,
PostgreSQL, Oracle, sysbase, Infomix and Microsoft SQL server. PHP supports a large number of
major protocols such as POP3, IMAP and LDAP. PHP$ added support for Java and distributed
object architecture (COM and CORBA), making n-tier development a possibility for the first time.
• PHP is forgiving: PHP language tries to be as forgiving as possible.
• PHP syntax is C-Like.

Common uses of PHP:


• PHP performs system function, i.e., from files on a system it can create, open, read, write
and close them.
• PHP can handle forms, i.e., gather data from files, save data to a file, through email you can
send data, return data to the user.
• You add, delete, and modify elements within your database through PHP.
• Access cookies variables and set cookies.
• Using PHP, you can restrict users to access some pages of your website.
• It can encrypt data.

Characteristics of PHP:
1. Versatility: PHP is versatile, used for server-side scripting, command-line scripting, and writing
desktop applications. It’s primarily utilized for web development to create dynamic web pages.

2. Open Source: It's open-source, meaning it’s free to use, distribute, and modify, with a large
community contributing to its development and improvement.

3. Cross-Platform: PHP is compatible with various operating systems like Windows, Linux,
macOS, etc., making it highly flexible for developers.

4. Integration: It easily integrates with various databases, such as MySQL, PostgreSQL,


MongoDB, and more, allowing seamless interaction with data.

5. Easy to Learn: PHP has a shallow learning curve, making it accessible for beginners. Its syntax
is similar to C, Java, and Perl, which can aid developers transitioning from other languages.

6. Scalability: While it was initially designed for small-scale applications, PHP has evolved to
support large-scale projects, thanks to frameworks like Laravel, Symfony, and CodeIgniter.

23 | P a g e
7. Support: A vast community and extensive documentation provide ample resources for
developers. There are numerous tutorials, forums, and online resources available for
troubleshooting and learning.

8. Speed: PHP can be fast when optimized properly. With PHP 7 and later versions, significant
performance improvements have been introduced, making it faster compared to its predecessors.

9. Security: While historically criticized for security vulnerabilities, PHP has improved its security
features significantly with each new release. Best practices and frameworks like Symfony help
developers build more secure applications.

10. Dynamic Typing: PHP is dynamically typed, meaning variable types are determined at
runtime. While this flexibility can be advantageous, it requires careful attention to avoid unexpected
behavior.

PHP remains a popular choice for web development due to its flexibility, ease of use, and extensive
community support.

24 | P a g e
6.1.2. Frontend Technology
HTML (Hypertext Markup Language):
• Purpose: HTML is the standard markup language used to create the structure of web pages.
It defines the elements and their relationships, such as headings, paragraphs, lists, links,
images, forms, and more.
• Role: HTML provides the basic building blocks for web content, allowing browsers to interpret
and display information.

CSS (Cascading Style Sheets):


• Purpose: CSS is used for styling and layout of web pages. It allows developers to control the
visual presentation of HTML elements, defining aspects like colors, fonts, spacing, and
positioning.
• Role: CSS enhances the visual appeal and user experience of web pages by providing a way
to customize the presentation of HTML content.

JavaScript:
• Purpose: JavaScript is a versatile programming language that adds interactivity and dynamic
behavior to web pages. It allows developers to manipulate the DOM (Document Object
Model), handle events, and create responsive and interactive user interfaces.
• Role: JavaScript enables client-side scripting, making it possible to create interactive features,
validate forms, fetch data from servers asynchronously (AJAX), and more.

These three technologies work together to create a complete frontend for web development. HTML
provides the structure, CSS styles the structure, and JavaScript adds dynamic behavior to the styled
structure. Modern web development often involves additional libraries and frameworks built on top
of these core technologies to streamline development and enhance functionality.

25 | P a g e
7. System Design
System design is a crucial phase in the software development life cycle (SDLC) that involves the
creation of a detailed technical plan for the construction of a software system. The goal of system
design is to transform the requirements specified in the system requirements specification into a
complete and detailed set of specifications that can be used for coding and implementation. Here
are key aspects of system design:

Architectural Design:
Define the overall system architecture, including the high-level structure of the system, major
components or modules, and their interactions. Identify design patterns and architectural styles that
best suit the requirements. Consider scalability, performance, and maintainability factors during
architectural decisions.
Data Design:
Design the database schema and define the structure of data storage. Normalize the database to
minimize redundancy and ensure data integrity. Specify data access methods and indexing
strategies for efficient retrieval.
User Interface Design:
Create wire frames and prototypes to visualize the user interface. Define the layout, navigation, and
interaction patterns. Ensure a user-friendly and intuitive design aligned with user requirements.
Input and Output Design:
Design the input forms and methods for collecting data from users. Define the output formats and
reports that the system will generate. Consider error handling and validation mechanisms for both
input and output.
Process Design:
Specify the algorithms and logic for each module or component of the system. Define control
structures, decision points, and loops within the processes. Consider concurrency, parallelism, and
error-handling mechanisms.
Security Design:
Identify security requirements and design measures to safeguard the system. Implement
authentication and authorization mechanisms. Encrypt sensitive data and ensure secure
communication channels
Software and Hardware Design:

Choose appropriate programming languages, frameworks, and libraries for software


development. Design the system's hardware infrastructure, considering server configurations,
networking, and dependencies. Consider the deployment environment, whether on-premises
or in the cloud.

26 | P a g e
Error Handling and Recovery Design:

Develop strategies for detecting and handling errors gracefully. Define recovery mechanisms
to ensure the system can resume normal operation after encountering errors.

Testing Strategy:
Define the testing approach, including unit testing, integration testing, and system testing.
Identify testing tools and methodologies. Create test cases and scenarios based on the design
specifications.

Documentation:
Generate detailed design documents that provide insights into the system's architecture, data
structures, algorithms, and other technical aspects. Document APIs, interfaces, and
dependencies for future reference.

Prototyping:
Develop prototypes or proof-of-concept implementations for critical components to validate
the feasibility of the design.

Scalability and Performance Design:


Consider scalability requirements and design the system to handle growing data and user
loads. Optimize algorithms and database queries for performance. Maintainability and

Extensibility:
Design the system with future enhancements and modifications in mind. Use modular and
decoupled architectures to facilitate easy maintenance and updates. Implementation

Planning:

Develop a detailed plan for the implementation phase, including timelines, resource
allocation, and milestones.

27 | P a g e
7.1 Software Development Model
Agile Model
The meaning of Agile is swift or versatile. “Agile process model" refers to a software
development approach based on iterative development. Agile methods break tasks into
smaller iterations, or parts do not directly involve long term planning. The project scope and
requirements are laid down at the beginning of the development process. Plans regarding the
number of iterations, the duration and the scope of each iteration are clearly defined in
advance.

Each iteration is considered as a short time "frame" in the Agile process model, which
typically lasts from one to four weeks. The division of the entire project into smaller parts
helps to minimize the project risk and to reduce the overall project delivery time
requirements. Each iteration involves a team working through a full software development
life cycle including planning, requirements analysis, design, coding, and testing before a
working product is demonstrated to the client.

Phases of Agile Model:


Following are the phases in the Agile model are as follows:
1. Requirements gathering
2. Design the requirements
3. Construction/ iteration
4. Testing/ Quality assurance
5. Deployment
6. Feedback

Advantage (Pros) of Agile Method:

• Frequent Delivery
• Face-to-Face Communication with clients.
• Efficient design and fulfils the business requirement.
• Anytime changes are acceptable.
• It reduces total development time.

Disadvantages (Cons) of Agile Model:

• Due to the shortage of formal documents, it creates confusion and crucial decisions taken
throughout various phases can be misinterpreted at any time by different team members.
• Due to the lack of proper documentation, once the project completes and the developers
allotted to another project, maintenance of the finished project can become a difficulty.

28 | P a g e
7.2 Data Flow Diagram
A data flow diagram (DFD) maps out the flow of information for any process or system. It
uses defined symbols like rectangles, circles and arrows, plus short text labels, to show data
inputs, outputs, storage points and the routes between each destination. Data flowcharts can
range from simple, even hand-drawn process overviews, to in-depth, multi-level DFDs that
dig progressively deeper into how the data is handled. They can be used to analyze an
existing system or model a new one. Like all the best diagrams and charts, a DFD can often
visually “say” things that would be hard to explain in words, and they work for both
technical and nontechnical audiences, from developer to CEO. That’s why DFDs remain so
popular after all these years. While they work well for data flow software and systems, they
are less applicable nowadays to visualizing interactive, real-time or database-oriented
software or systems.

Components of DFD

The Data Flow Diagram has 4 components:

• Process: Input to output transformation in a system takes place because of process


function. The symbols of a process are rectangular with rounded corners, oval, rectangle or a
circle. The process is named a short sentence, in one word or a phrase to express its essence

• Data Flow: Data flow describes the information transferring between different parts of
the systems. The arrow symbol is the symbol of data flow. A relatable name should be given
to the flow to determine the information which is being moved. Data flow also represents
material along with information that is being moved. Material shifts are modelled in systems
that are not merely informative. A given flow should only transfer a single type of
information. The direction of flow is represented by the arrow which can also be bi-
directional.

• Warehouse: The data is stored in the warehouse for later use. Two horizontal lines
represent the symbol of the store. The warehouse is simply not restricted to being a data file
rather it can be anything like a folder with documents, an optical disc, a filing cabinet. The
data warehouse can be viewed independent of its implementation. When the data flow from
the warehouse it is considered as data reading and when data flows to the warehouse it is
called data entry or data updating.

• Terminator: The Terminator is an external entity that stands outside of the system and
communicates with the system. It can be, for example, organizations like banks, groups of
people like customers or different departments of the same organization, which is not a part
of the model system and is an external entity. Modelled systems also communicate with
terminator.

29 | P a g e
7.2.1 Context Level DFD

Add Tour
Search
Packages TOURISM USER /
ADMIN / Booking Select
MANAGEMEN CUSTOMER
ADMINISTRATOR List Tour
Customer T SYSTEM Booking
Confirmation
List
Cancel
Booking

Figure 1.: Context Level DFD

30 | P a g e
7.2.2 1-Level DFD

Tour
Travel
Package
Agencies
Route

Confirmation

Customer List
USER / ADMIN /
ADMINISTRATOR
CUSTOMER
Tour
Booking
Reservation

Cancel
Booking Tour
Confirmation
Reservation Customer Details

Figure 2.: 1-Level DFD

31 | P a g e
7.2.3 2-Level DFD

Tour Package DB Travel Agencies DB


age
R/W
R/W

Travel
Tour
Agencies
Package

Route

Confirmation

Customer List
Temp Booking DB

R/W
USER / ADMIN /
ADMINISTRATOR
CUSTOMER
Tour
Booking
Reservatio
n

Cancel
Booking
Customer Details Tour
Reservatio
Confirmatio
n n

R/W
R/W R/W

Tour Booking DB
Cancel Booking DB

Figure 3.: 2-Level DFD

32 | P a g e
7.3 Entity Relationship Diagram

Admin Agents

Figure 4.: E-R Diagram

33 | P a g e
7.4 Normalization
Normalization is a crucial database design technique used to minimize redundancy and dependency
within a database schema. In the context of a Tourism Management System, normalization ensures
efficient data storage, retrieval, and maintenance. Here's an overview of normalization steps
tailored for such a system.

Understanding the Scenario


In a Tourism Management System, various entities like tourists, destinations, bookings, reviews,
and tour operators interrelate. Normalization aims to organize these entities into tables while
minimizing redundancy and maintaining data integrity.

First Normal Form (1NF)


1NF requires eliminating repeating groups and ensuring each column holds atomic values. For
instance:
Tourists Table: Contains unique TouristID, Name, Email, and Address columns.
Destinations Table: Includes DestinationID, Name, Description, and Location columns.
Bookings Table: Comprises BookingID, TouristID, DestinationID, Date, and Status columns.

Second Normal Form (2NF)


2NF aims to remove partial dependencies within tables. For example:
Bookings Table: To achieve 2NF, split it into BookingDetails and BookingStatus tables.
Booking Details: Contains BookingID, TouristID, DestinationID, Date.
Booking Status: Holds BookingID and Status.

Third Normal Form (3NF)


3NF ensures there are no transitive dependencies. For instance:
Tourists Table: Split the table further to remove transitive dependencies.
Tourist Personal Details: Includes TouristID, Name, Email, Address.
Tourist Preferences: Contains TouristID, Preferences, Interests.

Further Normalization
Beyond 3NF, further normalization can involve:
Reviews Table: Split into ReviewDetails and ReviewRating tables to avoid storing non-atomic
values.
Review Details: Holds ReviewID, TouristID, DestinationID, ReviewText.
Review Rating: Contains ReviewID, Rating.

Benefits of Normalization:

Reduced Redundancy: Normalization ensures that data isn't duplicated across tables, minimizing
storage requirements.
Improved Data Integrity: By breaking down tables into smaller, focused entities, data integrity is
maintained, and inconsistencies are minimized.

34 | P a g e
Enhanced Query Performance: Optimized database structure facilitates faster query execution
and data retrieval.

Considerations and Trade-offs


While Normalization offers numerous benefits, it's essential to strike a balance:
Query Complexity: Highly normalized schemas may require complex joins for simple queries,
affecting performance.
Application Complexity: Excessive normalization might complicate application logic and data
retrieval procedures.
Denormalization: In some cases, strategic denormalization might be necessary to optimize
specific queries without sacrificing performance.

Boyce And Codd Normal Form (BCNF)


Boyce and Codd Normal Form (BCNF) is a higher version of the third normal form. This
form deals with certain type of anomaly that is not handled by 3nf. A 3nf table which does
not have multiple overlapping seller keys is said to be in BCNF. For a table to be in BCNF,
following conditions must be satisfied:
• R must be in 3rd Normal Form.
• For each functional dependency (X->Y), x should be a super key.

Conclusion
Normalization is a fundamental process in designing a Tourism Management System's database.
By adhering to normalization principles, such as 1NF, 2NF, and 3NF, the database structure
becomes well-organized, leading to reduced redundancy, enhanced data integrity, and efficient data
retrieval.

However, the process of normalization should be balanced with the system's specific requirements
and performance considerations to create an optimized database schema that best serves the
application's needs.

This condensed overview of normalization for a Tourism Management System aims to emphasize
the importance of structured database design while considering the system's complexities and
optimizations.

35 | P a g e
7.5 Database Tables
Tourism Management System Database:

Agents Database:

User Database:

36 | P a g e
Package Database:

Booking Database:

Customer Support:

37 | P a g e
8. Coding and Implementation
Home Page Screenshots:

38 | P a g e
Source Code For Home Page:
<?php
session_start();
error_reporting(0);
include('includes/config.php');
?>
<!DOCTYPE HTML>
<html>
<head>
<title>TMS | Tour Junction</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="applijewelleryion/x-javascript"> addEventListener("load", function() {
setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } <
/script>
<link href="css/bootstrap.css" rel='stylesheet' type='text/css' />
<link href="css/style.css" rel='stylesheet' type='text/css' />
<link href='//fonts.googleapis.com/css?family=Open+Sans:400,700,600' rel='stylesheet'
type='text/css'>
<link href='//fonts.googleapis.com/css?family=Roboto+Condensed:400,700,300' rel='
stylesheet' type='text/css'>
<link href='//fonts.googleapis.com/css?family=Oswald' rel='stylesheet' type='text/css'>
<link href="css/font-awesome.css" rel="stylesheet">
<!-- Custom Theme files -->
<script src="js/jquery-1.12.0.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<!--animate-->
<link href="css/animate.css" rel="stylesheet" type="text/css" media="all">
<script src="js/wow.min.js"></script>
<script>
new WOW().init();
</script>
<!--//end-animate-->
</head>
<body>
<?php include('includes/header.php');?>
<div class="banner">
<!--//New Add SlideShow-->
<div class="container">
<h1 class="wow zoomIn animated animated" data-wow-delay=".5s" style="visibility:
visible; animation-delay: 0.5s; animation-name: zoomIn;">Let's make travel Dreams Come
true!</h1>
</div>

39 | P a g e
</div>
<!--- rupes ---->
<div class="container">
<div class="rupes">
<div class="col-md-4 rupes-left wow fadeInDown animated animated" data-wow-delay="
.5s" style="visibility: visible; animation-delay: 0.5s; animation-name: fadeInDown;">
<div class="rup-left">
<a href="offers.html"><i class="fa fa-money" style="font-size: 4rem;"></i>
</a>
</div>
<div class="rup-rgt">
<h3>UP TO RS. 1500 OFF</h3>
<h4><a href="offers.html">TRAVEL SMART</a></h4>
</div>
<div class="clearfix"></div>
</div>
<div class="col-md-4 rupes-left wow fadeInDown animated animated" data-wow-delay="
.5s" style="visibility: visible; animation-delay: 0.5s; animation-name: fadeInDown;">
<div class="rup-left">
<a href="offers.html"><i class="fa fa-h-square"></i></a>
</div>
<div class="rup-rgt">
<h3>UP TO 70% OFF</h3>
<h4><a href="offers.html">ON HOTELS ACROSS WORLD</a></h4>
</div>
<div class="clearfix"></div>
</div>
<div class="col-md-4 rupes-left wow fadeInDown animated animated" data-wow-delay="
.5s" style="visibility: visible; animation-delay: 0.5s; animation-name: fadeInDown;">
<div class="rup-left">
<a href="offers.html"><i class="fa fa-mobile"></i></a>
</div>
<div class="rup-rgt">
<h3>FLAT Rs. 2000 OFF</h3>
<h4><a href="offers.html">US APP OFFER</a></h4>
</div>
<div class="clearfix"></div>
</div>
</div>
</div>
<!--- /rupes ---->

<!---holiday---->
<div class="container">

40 | P a g e
<div class="holiday">
<h3>Package List</h3>
<?php $sql = "SELECT * from tbltourpackages order by rand() limit 4";
$query = $dbh->prepare($sql);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=1;
if($query->rowCount() > 0)
{
foreach($results as $result)
{ ?>
<div class="rom-btm">
<div class="col-md-3 room-left wow fadeInLeft animated" data-wow-delay=" .5s">
<img src="admin/pacakgeimages/<?php echo htmlentities($result->
PackageImage);?>" class="img-responsive" alt="">
</div>
<div class="col-md-6 room-midle wow fadeInUp animated" data-wow-delay=" .5s">
<h4>Package Name: <?php echo htmlentities($result->PackageName);?>< /h4>

<h6>Package Type : <?php echo htmlentities($result->PackageType);?>< /h6>


<p><b>Package Location :</b> <?php echo htmlentities($result->PackageLocation);?></p>
<p><b>Features</b> <?php echo htmlentities($result->PackageFetures);?>
</p>
</div>
<div class="col-md-3 room-right wow fadeInRight animated" data-wow-delay=".5s”>
<h5>RS <?php echo htmlentities($result->PackagePrice);?></h5>
<a href="package-details.php?pkgid=<?php echo htmlentities($result->PackageId);?>"
class="view">Details</a>
</div>
<div class="clearfix"></div>
</div>
<?php }} ?>
<div><a href="package-list.php" class="view">View More Packages</a></div>
</div>
<div class="clearfix"></div>
</div>
<!--- routes ---->
<div class="routes">
<div class="container">
<div class="col-md-4 routes-left wow fadeInRight animated" data-wow-delay=".5s">
<div class="rou-left">
<a href="#"><i class="glyphicon glyphicon-list-alt"></i></a>
</div>
<div class="rou-rgt wow fadeInDown animated" data-wow-delay=".5s">

41 | P a g e
<h3>80000</h3>
<p>Enquiries</p>
</div>
<div class="clearfix"></div>
</div>
<div class="col-md-4 routes-left">
<div class="rou-left">
<a href="#"><i class="fa fa-user"></i></a>
</div>
<div class="rou-rgt">
<h3>1900</h3>
<p>Regestered users</p>
</div>
<div class="clearfix"></div>
</div>
<div class="col-md-4 routes-left wow fadeInRight animated" data-wow-delay=".5s">
<div class="rou-left">
<a href="#"><i class="fa fa-ticket"></i></a>
</div>
<div class="rou-rgt">
<h3>7,00,00,000+</h3>
<p>Booking</p>
</div>
<div class="clearfix"></div>
</div>
<div class="clearfix"></div>
</div>
</div>
<?php include('includes/footer.php');?>
<!-- signup -->
<?php include('includes/signup.php');?>
<!-- //signu -->
<!-- signin -->
<?php include('includes/signin.php');?>
<!-- //signin -->
<!-- write us -->
<?php include('includes/write-us.php');?>
<!-- //write us -->
</body>
</html>

42 | P a g e
Sign In & Sign Up Screenshots

Source Code for User Sign in Or Sign-Up Form:

For Sign in Form:


<?php
session_start();
if(isset($_POST['signin']))
{
$email=$_POST['email'];
$password=md5($_POST['password']);
$sql ="SELECT EmailId,Password FROM tblusers WHERE EmailId=:email and
Password=:password";
$query= $dbh -> prepare($sql);
$query-> bindParam(':email', $email, PDO::PARAM_STR);
$query-> bindParam(':password', $password, PDO::PARAM_STR);
$query-> execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
if($query->rowCount() > 0)
{
$_SESSION['login']=$_POST['email'];
echo "<script type='text/javascript'> document.location = 'package-list.php'; </script>";
} else{

43 | P a g e
echo "<script>alert('Invalid Details');</script>";
}
}
?>

<div class="modal fade" id="myModal4" tabindex="-1" role="dialog" aria-labelledby="


myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content modal-info">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-
label="Close"><span aria-hidden="true">×</span></button>
</div>
<div class="modal-body modal-spa">
<div class="login-grids">
<div class="login">
<div class="login-left">
<ul>
<li><a class="fb" href="#"><i>
</i> Facebook</a></li>
<li><a class="goog" href="#"><i>
</i> Google</a></li>
</ul>
</div>
<div class="login-right">
<form method="post">
<h3>Sign in with your account </h3>
<input type="text" name="email" id="email" placeholder="Enter your Email" required="">
<input type="password" name="password" id="password" placeholder="Password"
value=""required="">
<h4><a href="forgot-password.php">Forgot password</a></h4>
<input type="submit" name="signin" value=" SIGNIN">
</form>
</div>
<div class="clearfix"></div>
</div>
<p>By logging in you agree to our <a href="page.php?type=
terms">Terms and Conditions</a> and <a href="page.php?type=privacy">Privacy Policy</a></p>
</div>
</div>
</div>
</div>
</div>

44 | P a g e
For Sign Up Form:
<?php
error_reporting(0);
if(isset($_POST['submit']))
{
$fname=$_POST['fname'];
$mnumber=$_POST['mobilenumber'];
$email=$_POST['email'];
$password=md5($_POST['password']);
$sql="INSERT INTO tblusers(FullName,MobileNumber,EmailId,Password)
VALUES(:fname,:mnumber,
:email,:password)";

$query = $dbh->prepare($sql);
$query->bindParam(':fname',$fname,PDO::PARAM_STR);
$query->bindParam(':mnumber',$mnumber,PDO::PARAM_STR);
$query->bindParam(':email',$email,PDO::PARAM_STR);
$query->bindParam(':password',$password,PDO::PARAM_STR);
$query->execute();
$lastInsertId = $dbh->lastInsertId();
if($lastInsertId)
{
$_SESSION['msg']="You are Successfully registered. Now you can login ";
header('location:thankyou.php');
}
else
{
$_SESSION['msg']="Something went wrong. Please try again.";
header('location:thankyou.php');
}
}
?>
<!--Javascript for check email availabilty-->
<script>
function checkAvailability() {
$("#loaderIcon").show();
jQuery.ajax({
url: "check_availability.php",
data:'emailid='+$("#email").val(),
type: "POST",
success:function(data){
$("#user-availability-status").html(data);
$("#loaderIcon").hide();
},

45 | P a g e
error:function (){}
});
}
</script>
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="
myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-
label="Close"><span aria-hidden="true">&times;</span></button>
</div>
<section>
<div class="modal-body modal-spa">
<div class="login-grids">
<div class="login">
<div class="login-left">
<ul>
<li><a class="fb" href="#"><i>
</i> Facebook</a></li>
<li><a class="goog" href="#"><i>
</i> Google</a></li>
</ul>
</div>
<div class="login-right">
<form name="signup" method="post">
<h3>Create your account </h3>
<input type="text" value="" placeholder="Full Name" name="fname"
autocomplete="off" required="">
<input type="text" value="" placeholder="Mobile number" maxlength="10"
name="mobilenumber" autocomplete="off" required="">
<input type="text" value="" placeholder="Email id" name="email" id="email" onBlur="
checkAvailability()" autocomplete="off" required="">
<span id="user-availability-status" style="font-size:12px;"></span>
<input type="password" value="" placeholder="Password" name="password" required="">
<input type="submit" name="submit" id="
submit" value="CREATE ACCOUNT">
</form>
</div>
<div class="clearfix"></div>
</div>
<p>By logging in you agree to our <a href="
page.php?type=terms">Terms and Conditions</a> and <a
href="page.php?type=privacy">Privacy

46 | P a g e
Policy</a></p>

</div>
</div>
</section>
</div>
</div>
</div>

For Change Password:

<?php
session_start();
error_reporting(0);
include('includes/config.php');
if(strlen($_SESSION['login'])==0)
{
header('location:index.php');
}
else{
if(isset($_POST['submit5']))
{
$password=md5($_POST['password']);
$newpassword=md5($_POST['newpassword']);
$email=$_SESSION['login'];
$sql ="SELECT Password FROM tblusers WHERE EmailId=:email and Password=:password";
$query= $dbh -> prepare($sql);
$query-> bindParam(':email', $email, PDO::PARAM_STR);
$query-> bindParam(':password', $password, PDO::PARAM_STR);
$query-> execute();
$results = $query -> fetchAll(PDO::FETCH_OBJ);
if($query -> rowCount() > 0)
{
$con="update tblusers set Password=:newpassword where EmailId=:email";
$chngpwd1 = $dbh->prepare($con);
$chngpwd1-> bindParam(':email', $email, PDO::PARAM_STR);
$chngpwd1-> bindParam(':newpassword', $newpassword, PDO::PARAM_STR);
$chngpwd1->execute();
$msg="Your Password succesfully changed";
}
else {
$error="Your current password is wrong";
}
}

47 | P a g e
?>
<!DOCTYPE HTML>

<html>
<head>
<title>TMS | Tour Junction</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="Tourism Management System In PHP" />
<script type="applijewelleryion/x-javascript"> addEventListener("load", function() {
setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } <
/script>
<link href="css/bootstrap.css" rel='stylesheet' type='text/css' />
<link href="css/style.css" rel='stylesheet' type='text/css' />
<link href='//fonts.googleapis.com/css?family=Open+Sans:400,700,600' rel='stylesheet'
type='text/css'>
<link href='//fonts.googleapis.com/css?family=Roboto+Condensed:400,700,300' rel='
stylesheet' type='text/css'>
<link href='//fonts.googleapis.com/css?family=Oswald' rel='stylesheet' type='text/css'>
<link href="css/font-awesome.css" rel="stylesheet">
<!-- Custom Theme files -->
<script src="js/jquery-1.12.0.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<!--animate-->
<link href="css/animate.css" rel="stylesheet" type="text/css" media="all">
<script src="js/wow.min.js"></script>
<script>
new WOW().init();
</script>
<script type="text/javascript">
function valid()
{
if(document.chngpwd.newpassword.value!= document.chngpwd.confirmpassword.value)
{
alert("New Password and Confirm Password Field do not match !!");
document.chngpwd.confirmpassword.focus();
return false;
}
return true;
}
</script>
<style>
.errorWrap {

48 | P a g e
padding: 10px;
margin: 0 0 20px 0;
background: #fff;
border-left: 4px solid #dd3d36;

-webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);


box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
.succWrap{
padding: 10px;
margin: 0 0 20px 0;
background: #fff;
border-left: 4px solid #5cb85c;
-webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
</style>
</head>
<body>
<!-- top-header -->
<div class="top-header">
<?php include('includes/header.php');?>
<div class="banner-1 ">
<div class="container">
<h1 class="wow zoomIn animated animated" data-wow-delay=".5s" style="visibility:
visible; animation-delay: 0.5s; animation-name: zoomIn;">TMS | Tour JunctionS</h1>
</div>
</div>
<!--- /banner-1 ---->
<!--- privacy ---->
<div class="privacy">
<div class="container">
<h3 class="wow fadeInDown animated animated" data-wow-delay=".5s" style="
visibility: visible; animation-delay: 0.5s; animation-name: fadeInDown;">Change Password<
/h3>
<form name="chngpwd" method="post" onSubmit="return valid();">
<?php if($error){?><div class="errorWrap"><strong>ERROR</strong>:<?php echo
htmlentities($error); ?> </div><?php }
else if($msg){?><div class="succWrap"><strong>SUCCESS</strong>:<?php echo
htmlentities($msg); ?> </div><?php }?>
<p style="width: 350px;">
<b>Current Password</b> <input type="password" name="password" class="form-
control" id="exampleInputPassword1" placeholder="Current Password" required="">

49 | P a g e
</p>
<p style="width: 350px;">
<b>New Password</b>
<input type="password" class="form-control" name="newpassword" id="newpassword"
placeholder="New Password" required="">
</p>

<p style="width: 350px;">


<b>Confirm Password</b>
<input type="password" class="form-control" name="confirmpassword" id="
confirmpassword" placeholder="Confrim Password" required="">
</p>
<p style="width: 350px;">
<button type="submit" name="submit5" class="btn-primary btn">Change</button>
</p>
</form>
</div>
</div>
<!--- /privacy ---->
<!--- footer-top ---->
<!--- /footer-top ---->
<?php include('includes/footer.php');?>
<!-- signup -->
<?php include('includes/signup.php');?>
<!-- //signu -->
<!-- signin -->
<?php include('includes/signin.php');?>
<!-- //signin -->
<!-- write us -->
<?php include('includes/write-us.php');?>
</body>
</html>
<?php } ?>

For Password Forgetting:


<?php
session_start();
error_reporting(0);
include('includes/config.php');
if(isset($_POST['submit50']))
{
$email=$_POST['email'];
$mobile=$_POST['mobile'];

50 | P a g e
$newpassword=md5($_POST['newpassword']);
$sql ="SELECT EmailId FROM tblusers WHERE EmailId=:email and MobileNumber=:mobile";
$query= $dbh -> prepare($sql);
$query-> bindParam(':email', $email, PDO::PARAM_STR);
$query-> bindParam(':mobile', $mobile, PDO::PARAM_STR);
$query-> execute();
$results = $query -> fetchAll(PDO::FETCH_OBJ);
if($query -> rowCount() > 0)

{
$con="update tblusers set Password=:newpassword where EmailId=:email and MobileNumber=
:mobile";
$chngpwd1 = $dbh->prepare($con);
$chngpwd1-> bindParam(':email', $email, PDO::PARAM_STR);
$chngpwd1-> bindParam(':mobile', $mobile, PDO::PARAM_STR);
$chngpwd1-> bindParam(':newpassword', $newpassword, PDO::PARAM_STR);
$chngpwd1->execute();
$msg="Your Password succesfully changed";
}
else {
$error="Email id or Mobile no is invalid";
}
}
?>
<!DOCTYPE HTML>
<html>
<head>
<title>TMS | Tour Junction</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="Tourism Management System In PHP" />
<script type="applijewelleryion/x-javascript"> addEventListener("load", function() {
setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } <
/script>
<link href="css/bootstrap.css" rel='stylesheet' type='text/css' />
<link href="css/style.css" rel='stylesheet' type='text/css' />
<link href='//fonts.googleapis.com/css?family=Open+Sans:400,700,600' rel='stylesheet'
type='text/css'>
<link href='//fonts.googleapis.com/css?family=Roboto+Condensed:400,700,300' rel='
stylesheet' type='text/css'>
<link href='//fonts.googleapis.com/css?family=Oswald' rel='stylesheet' type='text/css'>
<link href="css/font-awesome.css" rel="stylesheet">
<!-- Custom Theme files -->

51 | P a g e
<script src="js/jquery-1.12.0.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<!--animate-->
<link href="css/animate.css" rel="stylesheet" type="text/css" media="all">
<script src="js/wow.min.js"></script>
<script>
new WOW().init();
</script>
<script type="text/javascript">
function valid()

{
if(document.chngpwd.newpassword.value!= document.chngpwd.confirmpassword.value)
{
alert("New Password and Confirm Password Field do not match !!");
document.chngpwd.confirmpassword.focus();
return false;
}
return true;
}
</script>
<style>
.errorWrap {
padding: 10px;
margin: 0 0 20px 0;
background: #fff;
border-left: 4px solid #dd3d36;
-webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
.succWrap{
padding: 10px;
margin: 0 0 20px 0;
background: #fff;
border-left: 4px solid #5cb85c;
-webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
</style>
</head>
<body>
<!-- top-header -->
<div class="top-header">
<?php include('includes/header.php');?>

52 | P a g e
<div class="banner-1 ">
<div class="container">
<h1 class="wow zoomIn animated animated" data-wow-delay=".5s" style="visibility:
visible; animation-delay: 0.5s; animation-name: zoomIn;">TMS | Tour Junction</h1>
</div>
</div>
<!--- /banner-1 ---->
<!--- privacy ---->
<div class="privacy">
<div class="container">
<h3 class="wow fadeInDown animated animated" data-wow-delay=".5s" style="

visibility: visible; animation-delay: 0.5s; animation-name: fadeInDown;">Recover Password<


/h3>
<form name="chngpwd" method="post" onSubmit="return valid();">
<?php if($error){?><div class="errorWrap"><strong>ERROR</strong>:<?php echo
htmlentities($error); ?> </div><?php }
else if($msg){?><div class="succWrap"><strong>SUCCESS</strong>:<?php echo
htmlentities($msg); ?> </div><?php }?>
<p style="width: 350px;">
<b>Email id</b> <input type="email" name="email" class="form-control" id="
email" placeholder="Reg Email id" required="">
</p>
<p style="width: 350px;">
<b>Mobile No</b> <input type="text" name="mobile" class="form-control" id="
mobile" placeholder="Reg Mobile no" required="">
</p>
<p style="width: 350px;">
<b>New Password</b>
<input type="password" class="form-control" name="newpassword" id="newpassword"
placeholder="New Password" required="">
</p>
<p style="width: 350px;">
<b>Confirm Password</b>
<input type="password" class="form-control" name="confirmpassword" id="
confirmpassword" placeholder="Confrim Password" required="">
</p>
<p style="width: 350px;">
<button type="submit" name="submit50" class="btn-primary btn">Change</button>
</p>
</form>
</div>
</div>

53 | P a g e
<!--- /privacy ---->
<!--- footer-top ---->
<!--- /footer-top ---->
<?php include('includes/footer.php');?>
<!-- signup -->
<?php include('includes/signup.php');?>
<!-- //signu -->
<!-- signin -->
<?php include('includes/signin.php');?>
<!-- //signin -->
<!-- write us -->
<?php include('includes/write-us.php');?>
</body>

</html>

For (Profile Details) User Sign in Form:


<?php
session_start();
error_reporting(0);
include('includes/config.php');
if(strlen($_SESSION['login'])==0)
{
header('location:index.php');
}
else{
if(isset($_POST['submit6']))
{
$name=$_POST['name'];
$mobileno=$_POST['mobileno'];
$email=$_SESSION['login'];
$sql="update tblusers set FullName=:name,MobileNumber=:mobileno where EmailId=:email";
$query = $dbh->prepare($sql);
$query->bindParam(':name',$name,PDO::PARAM_STR);
$query->bindParam(':mobileno',$mobileno,PDO::PARAM_STR);
$query->bindParam(':email',$email,PDO::PARAM_STR);
$query->execute();
$msg="Profile Updated Successfully";
}
?>
<!DOCTYPE HTML>
<html>
<head>
<title>TMS | Tour Junction</title>

54 | P a g e
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="Tourism Management System In PHP" />
<script type="applijewelleryion/x-javascript"> addEventListener("load", function() {
setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } <
/script>
<link href="css/bootstrap.css" rel='stylesheet' type='text/css' />
<link href="css/style.css" rel='stylesheet' type='text/css' />
<link href='//fonts.googleapis.com/css?family=Open+Sans:400,700,600' rel='stylesheet'
type='text/css'>
<link href='//fonts.googleapis.com/css?family=Roboto+Condensed:400,700,300' rel='
stylesheet' type='text/css'>
<link href='//fonts.googleapis.com/css?family=Oswald' rel='stylesheet' type='text/css'>
<link href="css/font-awesome.css" rel="stylesheet">

<!-- Custom Theme files -->


<script src="js/jquery-1.12.0.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<!--animate-->
<link href="css/animate.css" rel="stylesheet" type="text/css" media="all">
<script src="js/wow.min.js"></script>
<script>
new WOW().init();
</script>
<style>
.errorWrap {
padding: 10px;
margin: 0 0 20px 0;
background: #fff;
border-left: 4px solid #dd3d36;
-webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
.succWrap{
padding: 10px;
margin: 0 0 20px 0;
background: #fff;
border-left: 4px solid #5cb85c;
-webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
</style>
</head>

55 | P a g e
<body>
<!-- top-header -->
<div class="top-header">
<?php include('includes/header.php');?>
<div class="banner-1 ">
<div class="container">
<h1 class="wow zoomIn animated animated" data-wow-delay=".5s" style="visibility:
visible; animation-delay: 0.5s; animation-name: zoomIn;">TMS | Tour Junction</h1>
</div>
</div>
<!--- /banner-1 ---->
<!--- privacy ---->
<div class="privacy">
<div class="container">
<h3 class="wow fadeInDown animated animated" data-wow-delay=".5s" style="
visibility: visible; animation-delay: 0.5s; animation-name: fadeInDown;">Change Password<

/h3>
<form name="chngpwd" method="post">
<?php if($error){?><div class="errorWrap"><strong>ERROR</strong>:<?php echo
htmlentities($error); ?> </div><?php }
else if($msg){?><div class="succWrap"><strong>SUCCESS</strong>:<?php echo
htmlentities($msg); ?> </div><?php }?>
<?php
$useremail=$_SESSION['login'];
$sql = "SELECT * from tblusers where EmailId=:useremail";
$query = $dbh -> prepare($sql);
$query -> bindParam(':useremail',$useremail, PDO::PARAM_STR);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=1;
if($query->rowCount() > 0)
{
foreach($results as $result)
{ ?>
<p style="width: 350px;">
<b>Name</b> <input type="text" name="name" value="<?php echo
htmlentities($result->FullName);?>" class="form-control" id="name" required="">
</p>
<p style="width: 350px;">
<b>Mobile Number</b>
<input type="text" class="form-control" name="mobileno" maxlength="10" value="<?php echo
htmlentities($result->MobileNumber);?>" id="mobileno" required="">

56 | P a g e
</p>
<p style="width: 350px;">

<b>Email Id</b>
<input type="email" class="form-control" name="email" value="<?php echo
htmlentities($result->EmailId);?>" id="email" readonly>
</p>
<p style="width: 350px;">
<b>Last Updation Date : </b>
<?php echo htmlentities($result->UpdationDate);?>
</p>
<p style="width: 350px;">
<b>Reg Date :</b>
<?php echo htmlentities($result->RegDate);?>
</p>
<?php }} ?>
<p style="width: 350px;">
<button type="submit" name="submit6" class="btn-primary btn">Updtae</button>
</p>

</form>
</div>
</div>
<!--- /privacy ---->
<!--- footer-top ---->
<!--- /footer-top ---->
<?php include('includes/footer.php');?>
<!-- signup -->
<?php include('includes/signup.php');?>
<!-- //signu -->
<!-- signin -->
<?php include('includes/signin.php');?>
<!-- //signin -->
<!-- write us -->
<?php include('includes/write-us.php');?>
</body>
</html>
<?php } ?>

57 | P a g e
For Log Out:
<?php
session_start();
$_SESSION = array();
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 60*60,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
unset($_SESSION['login']);
session_destroy(); // destroy session
header("location:index.php");
?>

58 | P a g e
About/Privacy Policy/Terms of Use/Contact Us Page Screenshots:

Source Code For About/Privacy Policy/Terms of Use/Contact Us:


<?php
session_start();
error_reporting(0);
include('includes/config.php');
if(isset($_POST['submit1']))
{
$fname=$_POST['fname'];
$email=$_POST['email'];
$mobile=$_POST['mobileno'];
$subject=$_POST['subject'];
$description=$_POST['description'];
$sql="INSERT INTO tblenquiry(FullName,EmailId,MobileNumber,Subject,Description)
VALUES(:fname,:email,:mobile,:subject,:description)";
$query = $dbh->prepare($sql);
$query->bindParam(':fname',$fname,PDO::PARAM_STR);
$query->bindParam(':email',$email,PDO::PARAM_STR);
$query->bindParam(':mobile',$mobile,PDO::PARAM_STR);
$query->bindParam(':subject',$subject,PDO::PARAM_STR);
$query->bindParam(':description',$description,PDO::PARAM_STR);
$query->execute();
$lastInsertId = $dbh->lastInsertId();
if($lastInsertId)
59 | P a g e
{
$msg="Enquiry Successfully submited";
}
else
{
$error="Something went wrong. Please try again";
}
}
?>
<!DOCTYPE HTML>
<html>
<head>
<title>TMS | Tour Junction</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="Tourism Management System In PHP" />
<script type="applijewelleryion/x-javascript"> addEventListener("load", function() {
setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } <
/script>
<link href="css/bootstrap.css" rel='stylesheet' type='text/css' />
<link href="css/style.css" rel='stylesheet' type='text/css' />
<link href='//fonts.googleapis.com/css?family=Open+Sans:400,700,600' rel='stylesheet'
type='text/css'>
<link href='//fonts.googleapis.com/css?family=Roboto+Condensed:400,700,300' rel='
stylesheet' type='text/css'>
<link href='//fonts.googleapis.com/css?family=Oswald' rel='stylesheet' type='text/css'>
<link href="css/font-awesome.css" rel="stylesheet">
<!-- Custom Theme files -->
<script src="js/jquery-1.12.0.min.js"></script>
<script src="js/bootstrap.min.js"></script>

<!--animate-->
<link href="css/animate.css" rel="stylesheet" type="text/css" media="all">
<script src="js/wow.min.js"></script>
<script>
new WOW().init();
</script>
<style>
.errorWrap {
padding: 10px;
margin: 0 0 20px 0;
background: #fff;
border-left: 4px solid #dd3d36;

60 | P a g e
-webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
.succWrap{
padding: 10px;
margin: 0 0 20px 0;
background: #fff;
border-left: 4px solid #5cb85c;
-webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
</style>
</head>
<body>
<!-- top-header -->
<div class="top-header">
<?php include('includes/header.php');?>
<div class="banner-1 ">
<div class="container">
<h1 class="wow zoomIn animated animated" data-wow-delay=".5s" style="visibility:
visible; animation-delay: 0.5s; animation-name: zoomIn;">TMS-Tour Junction</h1>
</div>
</div>
<!--- /banner-1 ---->
<!--- privacy ---->
<div class="privacy">
<div class="container">
<?php
$pagetype=$_GET['type'];
$sql = "SELECT type,detail from tblpages where type=:pagetype";
$query = $dbh -> prepare($sql);
$query->bindParam(':pagetype',$pagetype,PDO::PARAM_STR);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=1;
if($query->rowCount() > 0)
{
foreach($results as $result)
{
?>
<h3 class="wow fadeInDown animated animated" data-wow-delay=".5s" style="
visibility: visible; animation-delay: 0.5s; animation-name: fadeInDown;"><?php echo
$_GET['type'] ?></h3>
<p>

61 | P a g e
<?php echo $result->detail; ?>
</p>
<?php } }?>
</div>
</div>
<!--- /privacy ---->
<!--- footer-top ---->
<!--- /footer-top ---->
<?php include('includes/footer.php');?>
<!-- signup -->
<?php include('includes/signup.php');?>
<!-- //signu -->
<!-- signin -->
<?php include('includes/signin.php');?>
<!-- //signin -->
<!-- write us -->
<?php include('includes/write-us.php');?>
</body>
</html>

62 | P a g e
Admin Control Page For About/Privacy Policy/Terms of Use/Contact Us
Screenshot:

Source Code for Admin Control Page For About/Privacy Policy/Terms of


Use/Contact Us:

<?php
session_start();
error_reporting(0);
include('includes/config.php');
if(strlen($_SESSION['alogin'])==0)
{
header('location:index.php');
}
else{
if($_POST['submit']=="Update")
{
$pagetype=$_GET['type'];
$pagedetails=$_POST['pgedetails'];
$sql = "UPDATE tblpages SET detail=:pagedetails WHERE type=:pagetype";
$query = $dbh->prepare($sql);
$query -> bindParam(':pagetype',$pagetype, PDO::PARAM_STR);
$query-> bindParam(':pagedetails',$pagedetails, PDO::PARAM_STR);
$query -> execute();
$msg="Page data updated successfully";
}

63 | P a g e
?>
<!DOCTYPE HTML>
<html>
<head>
<title>TMS | Admin Package Creation</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="Pooled Responsive web template, Bootstrap Web Templates,
Flat Web Templates, Android Compatible web template,
Smartphone Compatible web template, free webdesigns for Nokia, Samsung, LG, SonyEricsson,
Motorola web design" />
<script type="application/x-javascript"> addEventListener("load", function() {
setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } <
/script>
<link href="css/bootstrap.min.css" rel='stylesheet' type='text/css' />
<link href="css/style.css" rel='stylesheet' type='text/css' />
<link rel="stylesheet" href="css/morris.css" type="text/css"/>
<link href="css/font-awesome.css" rel="stylesheet">
<script src="js/jquery-2.1.4.min.js"></script>
<link href='//fonts.googleapis.com/css?family=Roboto:700,500,300,100italic,100,400' rel='
stylesheet' type='text/css'/>
<link href='//fonts.googleapis.com/css?family=Montserrat:400,700' rel='stylesheet' type='
text/css'>
<link rel="stylesheet" href="css/icon-font.min.css" type='text/css' />
<style>
.errorWrap {
padding: 10px;
margin: 0 0 20px 0;
background: #fff;
border-left: 4px solid #dd3d36;
-webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
.succWrap{
padding: 10px;
margin: 0 0 20px 0;
background: #fff;
border-left: 4px solid #5cb85c;
-webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
</style>
<script type="text/JavaScript">
<!--

64 | P a g e
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_validateForm() { //v4.0
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n'
;
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+'
and '+max+'.\n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
} if (errors) alert('The following error(s) occurred:\n'+errors);
document.MM_returnValue = (errors == '');
}
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
//-->
</script>
<script type="text/javascript" src="nicEdit.js"></script>
<script type="text/javascript">
bkLib.onDomLoaded(function() { nicEditors.allTextAreas() });
</script>
</head>
<body>
<div class="page-container">
<!--/content-inner-->
<div class="left-content">
<div class="mother-grid-inner">
<!--header start here-->
<?php include('includes/header.php');?>
<div class="clearfix"> </div>
</div>

65 | P a g e
<!--heder end here-->
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="dashboard.php">Home</a><i class="fa
fa-angle-right"></i>Update Page Data </li>
</ol>
<!--grid-->
<div class="grid-form">
<!---->
<div class="grid-form1">
<h3>Update Page Data</h3>
<?php if($error){?><div class="errorWrap"><strong>ERROR</strong>:<?php
echo htmlentities($error); ?> </div><?php }
else if($msg){?><div class="succWrap"><strong>SUCCESS</strong>:<?php echo
htmlentities($msg); ?> </div><?php }?>
<div class="tab-content">
<div class="tab-pane active" id="horizontal-form">
<form class="form-horizontal" name="package" method="post"
enctype="multipart/form-data">
<div class="form-group">
<label for="focusedinput" class="col-sm-2 control- label">Select page</label>
<div class="col-sm-8">
<select name="menu1" onChange="MM_jumpMenu('parent' ,this,0)">
<option value="" selected="selected" class="form-control">***Select One***</option>
<option value="" selected="selected" class="form-control">***Select
<option value="manage-pages.php?type=terms">terms and condition</option>
<option value="manage-pages.php?type=privacy">privacy and policy</option>
<option value="manage-pages.php?type=aboutus">aboutus</option>
<option value="manage-pages.php?type=contact">Contact us</option>
</select>
</div>
</div>
<div class="form-group">
<label for="focusedinput" class="col-sm-2 control- label">Selected Page</label>
<div class="col-sm-8">
<?php switch($_GET['type'])
{
case "terms" :
echo "Terms and Conditions";
break;
case "privacy" :
echo "Privacy And Policy";
break;

66 | P a g e
case "aboutus" :
echo "About US";
break;
case "software" :
echo "Offers";
break;
case "aspnet" :
echo "Vission And MISSION";
break;
case "objectives" :
echo "Objectives";
break;
case "disclaimer" :
echo "Disclaimer";
break;
case "vbnet" :
echo "Partner With Us";
break;
case "candc" :
echo "Super Brand";
break;
case "contact" :
echo "Contact Us";
break;
default:
echo "";
break;
}
?>
</div>
</div>
<div class="form-group">
<label for="focusedinput" class="col-sm-2 control-label">Package Details</label>
<div class="col-sm-8">
<textarea class="form-control" rows="5" cols="50"name="pgedetails" id="pgedetails"
placeholder="Package Details" required>
<?php
$pagetype=$_GET['type'];
$sql = "SELECT detail from tblpages where type=:pagetype";
$query = $dbh -> prepare($sql);
$query->bindParam(':pagetype',$pagetype,PDO::PARAM_STR);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=1;

67 | P a g e
if($query->rowCount() > 0)
{
foreach($results as $result)
{
echo htmlentities($result->detail);
}}
?>
</textarea>
</div>
</div>
<div class="row">
<div class="col-sm-8 col-sm-offset-2">
<button type="submit" name="submit" value="Update" id="submit" class="btn-
primary btn">Update</button>
</div>
</div>
<div class="panel-footer">
</div>
</form>
</div>
</div>
<!--//grid-->
<!-- script-for sticky-nav -->
<script>
$(document).ready(function() {
var navoffeset=$(".header-main").offset().top;
$(window).scroll(function(){
var scrollpos=$(window).scrollTop();
if(scrollpos >=navoffeset){
$(".header-main").addClass("fixed");
}else{
$(".header-main").removeClass("fixed");
}
});
});
</script>
<!-- /script-for sticky-nav -->
<!--inner block start here-->
<div class="inner-block">
</div>
<!--inner block end here-->
<!--copy rights start here-->
<?php include('includes/footer.php');?>
<!--COPY rights end here-->

68 | P a g e
</div>
</div>
<!--//content-inner-->
<!--/sidebar-menu-->
<?php include('includes/sidebarmenu.php');?>
<div class="clearfix"></div>
</div>
<script>
var toggle = true;
$(".sidebar-icon").click(function() {
if (toggle)
{
$(".page-container").addClass("sidebar-collapsed")
.removeClass("sidebar-collapsed-back");
$("#menu span").css({"position":"absolute"});
}
else
{
$(".page-container").removeClass("sidebar-collapsed")
.addClass("sidebar-collapsed-back");
setTimeout(function() {
$("#menu span").css({"position":"relative"});
}, 400);
}
toggle = !toggle;
});
</script>
<!--js -->
<script src="js/jquery.nicescroll.js"></script>
<script src="js/scripts.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="js/bootstrap.min.js"></script>
<!-- /Bootstrap Core JavaScript -->
</body>
</html>
<?php } ?>

69 | P a g e
Package Page Screenshots:

70 | P a g e
Source Code For Package List:
<?php
session_start();
error_reporting(0);
include('includes/config.php');
?>
<!DOCTYPE HTML>
<html>
<head>
<title>TMS | Package List</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="applijewelleryion/x-javascript"> addEventListener("load", function() {
setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } <
/script>
<link href="css/bootstrap.css" rel='stylesheet' type='text/css' />
<link href="css/style.css" rel='stylesheet' type='text/css' />
<link href='//fonts.googleapis.com/css?family=Open+Sans:400,700,600' rel='stylesheet' type=
'text/css'>
<link href='//fonts.googleapis.com/css?family=Roboto+Condensed:400,700,300' rel='
stylesheet' type='text/css'>
<link href='//fonts.googleapis.com/css?family=Oswald' rel='stylesheet' type='text/css'>
<link href="css/font-awesome.css" rel="stylesheet">
<!-- Custom Theme files -->
<script src="js/jquery-1.12.0.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<!--animate-->
<link href="css/animate.css" rel="stylesheet" type="text/css" media="all">
<script src="js/wow.min.js"></script>
<script>
new WOW().init();
</script>
<!--//end-animate-->
</head>
<body>
<?php include('includes/header.php');?>
<!--- banner ---->
<div class="banner-3">
<div class="container">
<h1 class="wow zoomIn animated animated" data-wow-delay=".5s" style="visibility:
visible; animation-delay: 0.5s; animation-name: zoomIn;"> TMS - Package List</h1>
</div>
</div>

71 | P a g e
<!--- /banner ---->
<!--- rooms ---->
<div class="rooms">
<div class="container">
<div class="room-bottom">
<h3>Package List</h3>
<?php $sql = "SELECT * from tbltourpackages";
$query = $dbh->prepare($sql);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=1;
if($query->rowCount() > 0)
{ foreach($results as $result)
{ ?>
<div class="rom-btm">
<div class="col-md-3 room-left wow fadeInLeft animated" data-wow-delay="
.5s">
<img src="admin/pacakgeimages/<?php echo htmlentities($result->
PackageImage);?>" class="img-responsive" alt="">
</div>
<div class="col-md-6 room-midle wow fadeInUp animated" data-wow-delay=".5s">
<h4>Package Name: <?php echo htmlentities($result->PackageName);?></h4>
<h6>Package Type : <?php echo htmlentities($result->PackageType);?></h6>
<p><b>Package Location :</b> <?php echo htmlentities($result-> PackageLocation);?></p>
<p><b>Features</b> <?php echo htmlentities($result->PackageFetures);?></p>
</div>
<div class="col-md-3 room-right wow fadeInRight animated" data-wow-delay=".5s”>
<h5>&#8377 <?php echo htmlentities($result->PackagePrice);?></h5>
<a href="package-details.php?pkgid=<?php echo htmlentities($result-> PackageId);?>"
class="view">Details</a>
</div>
<div class="clearfix"></div>
</div>
<?php }} ?>
</div>
</div>
</div>
<!--- /rooms ---->
<!--- /footer-top ---->
<?php include('includes/footer.php');?>
<!-- signup -->
<?php include('includes/signup.php');?>
<!-- //signu -->
<!-- signin -->

72 | P a g e
<?php include('includes/signin.php');?>
<!-- //signin -->
<!-- write us -->
<?php include('includes/write-us.php');?>
<!-- //write us -->
</body>
</html>

73 | P a g e
Package Details Screenshots:

Source Code for Package Details:


<?php
session_start();
error_reporting(0);
include('includes/config.php');
if(isset($_POST['submit2']))
{
$pid=intval($_GET['pkgid']);
$useremail=$_SESSION['login'];
$fromdate=$_POST['fromdate'];
$todate=$_POST['todate'];
$comment=$_POST['comment'];
$status=0;
$sql="INSERT INTO tblbooking(PackageId,UserEmail,FromDate,ToDate,Comment,status)
VALUES(:pid,:useremail,:fromdate,:todate,:comment,:status)";
$query = $dbh->prepare($sql);
$query->bindParam(':pid',$pid,PDO::PARAM_STR);
$query->bindParam(':useremail',$useremail,PDO::PARAM_STR);
$query->bindParam(':fromdate',$fromdate,PDO::PARAM_STR);
$query->bindParam(':todate',$todate,PDO::PARAM_STR);
$query->bindParam(':comment',$comment,PDO::PARAM_STR);
$query->bindParam(':status',$status,PDO::PARAM_STR);
$query->execute();

74 | P a g e
$lastInsertId = $dbh->lastInsertId();
if($lastInsertId)
{
$msg="Booked Successfully";
}
else
{
$error="Something went wrong. Please try again";
}
}
?>
<!DOCTYPE HTML>
<html>
<head>
<title>TMS | Package Details</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="applijewelleryion/x-javascript"> addEventListener("load", function() {
setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } <
/script>
<link href="css/bootstrap.css" rel='stylesheet' type='text/css' />
<link href="css/style.css" rel='stylesheet' type='text/css' />
<link href='//fonts.googleapis.com/css?family=Open+Sans:400,700,600' rel='stylesheet'
type='text/css'>
<link href='//fonts.googleapis.com/css?family=Roboto+Condensed:400,700,300' rel='
stylesheet' type='text/css'>
<link href='//fonts.googleapis.com/css?family=Oswald' rel='stylesheet' type='text/css'>
<link href="css/font-awesome.css" rel="stylesheet">
<!-- Custom Theme files -->
<script src="js/jquery-1.12.0.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<!--animate-->
<link href="css/animate.css" rel="stylesheet" type="text/css" media="all">
<script src="js/wow.min.js"></script>
<link rel="stylesheet" href="css/jquery-ui.css" />
<script>
new WOW().init();
</script>
<script src="js/jquery-ui.js"></script>
<script>
$(function() {
$( "#datepicker,#datepicker1" ).datepicker();
});
</script>

75 | P a g e
<style>
.errorWrap {
padding: 10px;
margin: 0 0 20px 0;
background: #fff;
border-left: 4px solid #dd3d36;
-webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
.succWrap{
padding: 10px;
margin: 0 0 20px 0;
background: #fff;
border-left: 4px solid #5cb85c;
-webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
</style>
</head>
<body>
<!-- top-header -->
<?php include('includes/header.php');?>
<div class="banner-3">
<div class="container">
<h1 class="wow zoomIn animated animated" data-wow-delay=".5s" style="visibility:
visible; animation-delay: 0.5s; animation-name: zoomIn;"> TMS -Package Details</h1>
</div>
</div>
<!--- /banner ---->
<!--- selectroom ---->
<div class="selectroom">
<div class="container">
<?php if($error){?><div class="errorWrap"><strong>ERROR</strong>:<?php echo
htmlentities($error); ?> </div><?php }
else if($msg){?><div class="succWrap"><strong>SUCCESS</strong>:<?php echo
htmlentities($msg); ?> </div><?php }?>
<?php
$pid=intval($_GET['pkgid']);
$sql = "SELECT * from tbltourpackages where PackageId=:pid";
$query = $dbh->prepare($sql);
$query -> bindParam(':pid', $pid, PDO::PARAM_STR);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=1;

76 | P a g e
if($query->rowCount() > 0)
{
foreach($results as $result)
{ ?>
<form name="book" method="post">
<div class="selectroom_top">
package-details.php
<div class="col-md-4 selectroom_left wow fadeInLeft animated" data-wow-delay="05s”>
<img src="admin/pacakgeimages/<?php echo htmlentities($result->
PackageImage);?>" class="img-responsive" alt="">
</div>
<div class="col-md-8 selectroom_right wow fadeInRight animated" data-wow-
delay=".5s">
<h2><?php echo htmlentities($result->PackageName);?></h2>
<p class="dow">#PKG-<?php echo htmlentities($result->PackageId);?></p>
<p><b>Package Type :</b> <?php echo htmlentities($result->PackageType);?></p>
<p><b>Package Location :</b> <?php echo htmlentities($result->
PackageLocation);?></p>
<p><b>Features</b> <?php echo htmlentities($result->PackageFetures);?>
</p>
<div class="ban-bottom">
<div class="bnr-right">
<label class="inputLabel">From</label>
<input class="date" id="datepicker" type="text" placeholder="dd-mm-yyyy"
name="fromdate" required="">
</div>
<div class="bnr-right">
<label class="inputLabel">To</label>
<input class="date" id="datepicker1" type="text" placeholder="dd-mm-yyyy"
name="todate" required="">
</div>
</div>
<div class="clearfix"></div>
<!--<div class="grand">
<p>Grand Total</p>
<h3>&#8377 </h3>
</div>-->
</div>
<h3>Package Details</h3>
<p style="padding-top: 1%"><?php echo htmlentities($result->
PackageDetails);?> </p>
<div class="clearfix"></div>
</div>
<div class="selectroom_top">

77 | P a g e
<h2>Travels</h2>
<div class="selectroom-info animated wow fadeInUp animated" data-wow-duration=
"1200ms" data-wow-delay="500ms" style="visibility: visible; animation-duration: 1200ms;
animation-delay: 500ms; animation-name: fadeInUp; margin-top: -70px">
<ul>
<li class="spe">
<label class="inputLabel">Comment</label>
<input class="special" type="text" name="comment" required="">
</li>
<?php if($_SESSION['login'])
{?>
<li class="spe" align="center">
<button type="submit" name="submit2" class="btn-primary btn">Book< /button>
</li>
<?php } else {?>
<li class="sigi" align="center" style="margin-top: 1%">
<a href="#" data-toggle="modal" data-target="#myModal4" class=
"btn-primary btn" > Book</a></li>
<?php } ?>
<div class="clearfix"></div>
</ul>
</div>
</div>
</form>
<?php }} ?>
</div>
</div>
<!--- /selectroom ---->
<<!--- /footer-top ---->
<?php include('includes/footer.php');?>
<!-- signup -->
<?php include('includes/signup.php');?>
<!-- //signu -->
<!-- signin -->
<?php include('includes/signin.php');?>
<!-- //signin -->
<!-- write us -->
<?php include('includes/write-us.php');?>
</body>
</html>

78 | P a g e
Enquiry Form page Screenshots:

Source Code For Enquiry Form:


<?php
session_start();
error_reporting(0);
include('includes/config.php');
if(isset($_POST['submit1']))
{
$fname=$_POST['fname'];
$email=$_POST['email'];
$mobile=$_POST['mobileno'];
$subject=$_POST['subject'];
$description=$_POST['description'];
$sql="INSERT INTO tblenquiry(FullName,EmailId,MobileNumber,Subject,Description)
VALUES(:fname,:email,:mobile,:subject,:description)";
$query = $dbh->prepare($sql);
$query->bindParam(':fname',$fname,PDO::PARAM_STR);

$query->bindParam(':email',$email,PDO::PARAM_STR);
$query->bindParam(':mobile',$mobile,PDO::PARAM_STR);
$query->bindParam(':subject',$subject,PDO::PARAM_STR);
$query->bindParam(':description',$description,PDO::PARAM_STR);
79 | P a g e
$query->execute();
$lastInsertId = $dbh->lastInsertId();
if($lastInsertId)
{
$msg="Enquiry Successfully submited";
}
else
{
$error="Something went wrong. Please try again";
}
}
?>
<!DOCTYPE HTML>
<html>
<head>
<title>TMS | Tour Junction</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="Tourism Management System In PHP" />
<script type="applijewelleryion/x-javascript"> addEventListener("load", function() {
setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } <
/script>
<link href="css/bootstrap.css" rel='stylesheet' type='text/css' />
<link href="css/style.css" rel='stylesheet' type='text/css' />
<link href='//fonts.googleapis.com/css?family=Open+Sans:400,700,600' rel='stylesheet'
type='text/css'>
<link href='//fonts.googleapis.com/css?family=Roboto+Condensed:400,700,300' rel='
stylesheet' type='text/css'>
<link href='//fonts.googleapis.com/css?family=Oswald' rel='stylesheet' type='text/css'>
<link href="css/font-awesome.css" rel="stylesheet">

<!-- Custom Theme files -->


<script src="js/jquery-1.12.0.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<!--animate-->
<link href="css/animate.css" rel="stylesheet" type="text/css" media="all">
<script src="js/wow.min.js"></script>
<script> new WOW().init(); </script>
<style>
.errorWrap {
padding: 10px;
margin: 0 0 20px 0;
background: #fff;

80 | P a g e
border-left: 4px solid #dd3d36;
-webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
.succWrap{
padding: 10px;
margin: 0 0 20px 0;
background: #fff;
border-left: 4px solid #5cb85c;
-webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
</style>
</head>
<body>
<!-- top-header -->
<div class="top-header">
<?php include('includes/header.php');?>
<div class="banner-1 ">
<div class="container">
<h1 class="wow zoomIn animated animated" data-wow-delay=".5s" style="visibility:
visible; animation-delay: 0.5s; animation-name: zoomIn;">TMS | Tour Junction</h1>
</div>
</div>
<!--- /banner-1 ---->
<!--- privacy ---->
<div class="privacy">
<div class="container">
<h3 class="wow fadeInDown animated animated" data-wow-delay=".5s" style="
visibility: visible; animation-delay: 0.5s; animation-name: fadeInDown;">Enquiry Form
Password</h3>
<form name="enquiry" method="post">
<?php if($error){?><div class="errorWrap"><strong>ERROR</strong>:<?php echo
htmlentities($error); ?> </div><?php }
else if($msg){?><div class="succWrap"><strong>SUCCESS</strong>:<?php echo
htmlentities($msg); ?> </div><?php }?>
<p style="width: 350px;">
<b>Full name</b> <input type="text" name="fname" class="form-control" id="
fname" placeholder="Full Name" required="">
</p>
<p style="width: 350px;">
<b>Email</b> <input type="email" name="email" class="form-control" id="email"

81 | P a g e
placeholder="Valid Email id" required="">
</p>
<p style="width: 350px;">
<b>Mobile No</b> <input type="text" name="mobileno" class="form-control" id="mobileno"
maxlength="10" placeholder="10 Digit mobile No" required="">
</p>
<p style="width: 350px;">
<b>Subject</b> <input type="text" name="subject" class="form-control" id="subject"
placeholder="Subject" required="">
</p>
<p style="width: 350px;">
<b>Description</b> <textarea name="description" class="form-control" rows="6" cols="50"
id="description" placeholder="Description" required=""></textarea>
</p>
<p style="width: 350px;">
<button type="submit" name="submit1" class="btn-primary btn">Submit</button>
</p>
</form>
</div>
</div>
<!--- /privacy ---->
<!--- footer-top ---->
<!--- /footer-top ---->
<?php include('includes/footer.php');?>
<!-- signup -->
<?php include('includes/signup.php');?>
<!-- //signu -->
<!-- signin -->
<?php include('includes/signin.php');?>
<!-- //signin -->
<!-- write us -->
<?php include('includes/write-us.php');?>
</body.>
</html>

82 | P a g e
Admin Login Page Screenshots:

Source Code for Admin Login Page:


<?php
session_start();
include('includes/config.php');
if(isset($_POST['login']))
{
$uname=$_POST['username'];
$password=md5($_POST['password']);
$sql ="SELECT UserName,Password FROM admin WHERE UserName=:uname and
Password=:password";
$query= $dbh -> prepare($sql);
$query-> bindParam(':uname', $uname, PDO::PARAM_STR);
$query-> bindParam(':password', $password, PDO::PARAM_STR);
$query-> execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
if($query->rowCount() > 0)
{
$_SESSION['alogin']=$_POST['username'];
echo "<script type='text/javascript'> document.location = 'dashboard.php'; </script>";
} else{
echo "<script>alert('Invalid Details');</script>";
}
}
?>
<!DOCTYPE HTML>

83 | P a g e
<html>
<head>
<title>TMS | Admin Sign in</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="application/x-javascript"> addEventListener("load", function() {
setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } <
/script>
<!-- Bootstrap Core CSS -->
<link href="css/bootstrap.min.css" rel='stylesheet' type='text/css' />
<!-- Custom CSS -->
<link href="css/style.css" rel='stylesheet' type='text/css' />
<link rel="stylesheet" href="css/morris.css" type="text/css"/>
<!-- Graph CSS -->
<link href="css/font-awesome.css" rel="stylesheet">
<link rel="stylesheet" href="css/jquery-ui.css">
<!-- jQuery -->
<script src="js/jquery-2.1.4.min.js"></script>
<!-- //jQuery -->
<link href='//fonts.googleapis.com/css?family=Roboto:700,500,300,100italic,100,400' rel='
stylesheet' type='text/css'/>
<link href='//fonts.googleapis.com/css?family=Montserrat:400,700' rel='stylesheet' type='
text/css'>
<!-- lined-icons -->
<link rel="stylesheet" href="css/icon-font.min.css" type='text/css' />
<!-- //lined-icons -->
</head>
<body>
<div class="main-wthree">
<div class="container">
<div class="sin-w3-agile">
<h2>Sign In</h2>
<form method="post">
<div class="username">
<span class="username">Username:</span>
<input type="text" name="username" class="name" placeholder="" required="">
<div class="clearfix"></div>
</div>
<div class="password-agileits">
<span class="username">Password:</span>
<input type="password" name="password" class="password" placeholder="" required="">
<div class="clearfix"></div>
</div>
<div class="login-w3">

84 | P a g e
<input type="submit" class="login" name="login" value="Sign In">
</div>
<div class="clearfix"></div>
</form>
<div class="back">
<a href="../index.php">Back to home</a>
</div>
</div>
</div>
</div>
</body>
</html>

Admin Log Out Form:


<?php
session_start();
$_SESSION = array();
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 60*60,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
unset($_SESSION['alogin']);
session_destroy(); // destroy session
header("location:index.php");
?>

85 | P a g e
Admin Dashboard Screenshot:

Source Code for Admin Dashboard:


<?php
session_start();
include('includes/config.php');
if(strlen($_SESSION['alogin'])==0)
{
header('location:index.php');
}
else{
?>
<!DOCTYPE HTML>
<html>
<head>
<title>TMS | Admin Dashboard</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="application/x-javascript"> addEventListener("load", function() {
setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); }
</script>

86 | P a g e
<!-- Bootstrap Core CSS -->
<link href="css/bootstrap.min.css" rel='stylesheet' type='text/css' />
<!-- Custom CSS -->
<link href="css/style.css" rel='stylesheet' type='text/css' />
<link rel="stylesheet" href="css/morris.css" type="text/css"/>
<!-- Graph CSS -->
<link href="css/font-awesome.css" rel="stylesheet">
<!-- jQuery -->
<script src="js/jquery-2.1.4.min.js"></script>
<!-- //jQuery -->
<link href='//fonts.googleapis.com/css?family=Roboto:700,500,300,100italic,100,400' rel='
stylesheet' type='text/css'/>
<link href='//fonts.googleapis.com/css?family=Montserrat:400,700' rel='stylesheet' type='
text/css'>
<!-- lined-icons -->
<link rel="stylesheet" href="css/icon-font.min.css" type='text/css' />
<!-- //lined-icons -->
</head>
<body>
<div class="page-container">
<!--/content-inner-->
<div class="left-content">
<div class="mother-grid-inner">
<!--header start here-->
<?php include('includes/header.php');?>
<!--header end here-->
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="../index.php">Home</a> <i class="fa
fa-angle-right"></i></li>
</ol>
<!--four-grids here-->
<div class="four-grids">
87 | P a g e
<div class="col-md-3 four-grid">
<div class="four-agileits">
<div class="icon">
<i class="glyphicon glyphicon-user" aria-hidden="true"></i>
</div>
<div class="four-text">
<h3>User</h3>
<?php $sql = "SELECT id from tblusers";
$query = $dbh -> prepare($sql);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=$query->rowCount();
<h4> <?php echo htmlentities($cnt);?> </h4>
</div>
</div>
</div>
<div class="col-md-3 four-grid">
<div class="four-agileinfo">
<div class="icon">
<i class="glyphicon glyphicon-list-alt" aria-hidden="true" ></i>
</div>
<div class="four-text">
<h3>Bookings</h3>
<?php $sql1 = "SELECT BookingId from tblbooking";
$query2= $dbh -> prepare($sql2);
$query2->execute();
$results2=$query2->fetchAll(PDO::FETCH_OBJ);
$cnt2=$query2->rowCount();
?>
<h4><?php echo htmlentities($cnt2);?></h4>
</div>
</div>
88 | P a g e
</div>
<div class="col-md-3 four-grid">
<div class="four-wthree">
<div class="icon">
<i class="glyphicon glyphicon-briefcase" aria-hidden=" true"></i>
</div>
<div class="four-text">
<h3>Toatal packages</h3>
<?php $sql3 = "SELECT
PackageId from tbltourpackages";
$query3= $dbh -> prepare($sql3);
$query3->execute();
$results3=$query3->fetchAll(PDO::FETCH_OBJ);
$cnt3=$query3->rowCount();
?>
<h4><?php echo htmlentities($cnt3);?></h4>
</div>
</div>
</div>
<div class="clearfix"></div>
</div>
<div class="four-grids">
<div class="col-md-3 four-grid">
<div class="four-w3ls">
<div class="icon">
<i class="glyphicon glyphicon-folder-open" aria-hidden="
true"></i>
</div>
<div class="four-text">
<h3>Issues Riaised</h3>
<?php $sql5 = "SELECT id from tblissues";
$query5= $dbh -> prepare($sql5);
89 | P a g e
$query5->execute();
$results5=$query5->fetchAll(PDO::FETCH_OBJ);
$cnt5=$query5->rowCount();
?>
<h4><?php echo htmlentities($cnt5);?></h4>
</div>
</div>
</div>
<div class="clearfix"></div>
</div>
<!--//four-grids here-->
<div class="inner-block">
</div>
<!--inner block end here-->
<!--copy rights start here-->
<?php include('includes/footer.php');?>
</div>
</div>
<!--/sidebar-menu-->
<?php include('includes/sidebarmenu.php');?>
<div class="clearfix"></div>
</div>
<script>
var toggle = true;
$(".sidebar-icon").click(function() {
if (toggle)
{
$(".page-container").addClass("sidebar-collapsed")
.removeClass("sidebar-collapsed-back");
$("#menu span").css({"position":"absolute"});
}
else
90 | P a g e
{
$(".page-container").removeClass("sidebar-collapsed")
.addClass("sidebar-collapsed-back");
setTimeout(function() {
$("#menu span").css({"position":"relative"});
}, 400);
}
toggle = !toggle;
});
</script>
<!--js -->
<script src="js/jquery.nicescroll.js"></script>
<script src="js/scripts.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="js/bootstrap.min.js"></script>
<!-- /Bootstrap Core JavaScript -->
<!-- morris JavaScript -->
<script src="js/raphael-min.js"></script>
<script src="js/morris.js"></script>
<script>
$(document).ready(function() {
//BOX BUTTON SHOW AND CLOSE
jQuery('.small-graph-box').hover(function() {
jQuery(this).find('.box-button').fadeIn('fast');
}, function() {
jQuery(this).find('.box-button').fadeOut('fast');
});
jQuery('.small-graph-box .box-close').click(function() {
jQuery(this).closest('.small-graph-box').fadeOut(200);
return false;
});
//CHARTS
91 | P a g e
function gd(year, day, month) {
return new Date(year, month - 1, day).getTime();
}
graphArea2 = Morris.Area({
element: 'hero-area',
padding: 10,
behaveLikeLine: true,
gridEnabled: false,
gridLineColor: '#dddddd',
axes: true,
resize: true,
smooth:true,
pointSize: 0,
lineWidth: 0,
fillOpacity:0.85,
data: [
{period: '2014 Q1', iphone: 2668, ipad: null, itouch: 2649},
{period: '2014 Q2', iphone: 15780, ipad: 13799, itouch: 12051},
{period: '2014 Q3', iphone: 12920, ipad: 10975, itouch: 9910},
{period: '2014 Q4', iphone: 8770, ipad: 6600, itouch: 6695},
{period: '2015 Q1', iphone: 10820, ipad: 10924, itouch: 12300},
{period: '2015 Q2', iphone: 9680, ipad: 9010, itouch: 7891},
{period: '2015 Q3', iphone: 4830, ipad: 3805, itouch: 1598},
{period: '2015 Q4', iphone: 15083, ipad: 8977, itouch: 5185},
{period: '2016 Q1', iphone: 10697, ipad: 4470, itouch: 2038},
{period: '2016 Q2', iphone: 8442, ipad: 5723, itouch: 1801}
],
lineColors:['#ff4a43','#a2d200','#22beef'],
xkey: 'period',
redraw: true,
ykeys: ['iphone', 'ipad', 'itouch'],
labels: ['All Visitors', 'Returning Visitors', 'Unique Visitors'],
92 | P a g e
pointSize: 2,
hideHover: 'auto',
resize: true
});
});
</script>
</body>
</html>
<?php } ?>

93 | P a g e
Create Tour Package Screenshot:

Source Dode for Create Package:


<?php
session_start();
error_reporting(0);
include('includes/config.php');
if(strlen($_SESSION['alogin'])==0)
{
header('location:index.php');
}
else{
if(isset($_POST['submit']))
{
$pname=$_POST['packagename'];

94 | P a g e
$ptype=$_POST['packagetype'];
$plocation=$_POST['packagelocation'];
$pprice=$_POST['packageprice'];
$pfeatures=$_POST['packagefeatures'];
$pdetails=$_POST['packagedetails'];
$pimage=$_FILES["packageimage"]["name"];
move_uploaded_file($_FILES["packageimage"]["tmp_name"],"pacakgeimages/".$_FILES["
packageimage"]["name"]);
$sql="INSERT INTO
TblTourPackages(PackageName,PackageType,PackageLocation,PackagePrice,
PackageFetures,PackageDetails,PackageImage) VALUES(:pname,:ptype,:plocation,:pprice,
:pfeatures,:pdetails,:pimage)";
$query = $dbh->prepare($sql);
$query->bindParam(':pname',$pname,PDO::PARAM_STR);
$query->bindParam(':ptype',$ptype,PDO::PARAM_STR);
$query->bindParam(':plocation',$plocation,PDO::PARAM_STR);
$query->bindParam(':pprice',$pprice,PDO::PARAM_STR);
$query->bindParam(':pfeatures',$pfeatures,PDO::PARAM_STR);
$query->bindParam(':pdetails',$pdetails,PDO::PARAM_STR);
$query->bindParam(':pimage',$pimage,PDO::PARAM_STR);
$query->execute();
$lastInsertId = $dbh->lastInsertId();
if($lastInsertId)
{
$msg="Package Created Successfully";
}
else
{
$error="Something went wrong. Please try again";

95 | P a g e
}
}
?>
<!DOCTYPE HTML>
<html>
<head>
<title>TMS | Admin Package Creation</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="Pooled Responsive web template, Bootstrap Web
Templates,
Flat Web Templates, Android Compatible web template,
Smartphone Compatible web template, free webdesigns for Nokia, Samsung, LG, SonyEricsson,
Motorola web design" />
<script type="application/x-javascript"> addEventListener("load", function() {
setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } <
/script>
<link href="css/bootstrap.min.css" rel='stylesheet' type='text/css' />
<link href="css/style.css" rel='stylesheet' type='text/css' />
<link rel="stylesheet" href="css/morris.css" type="text/css"/>
<link href="css/font-awesome.css" rel="stylesheet">
<script src="js/jquery-2.1.4.min.js"></script>
<link href='//fonts.googleapis.com/css?family=Roboto:700,500,300,100italic,100,400' rel='
stylesheet' type='text/css'/>
<link href='//fonts.googleapis.com/css?family=Montserrat:400,700' rel='stylesheet' type='
text/css'>
<link rel="stylesheet" href="css/icon-font.min.css" type='text/css' />
<style>
.errorWrap {

96 | P a g e
padding: 10px;
argin: 0 0 20px 0;
background: #fff;
border-left: 4px solid #dd3d36;
-webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
.succWrap{
padding: 10px;
margin: 0 0 20px 0;
background: #fff;
border-left: 4px solid #5cb85c;
-webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
</head>
<body>
</style>
<div class="page-container">
<!--/content-inner-->
<div class="left-content">
<div class="mother-grid-inner">
<!--header start here-->
<?php include('includes/header.php');?>
<div class="clearfix"> </div>
</div>
<!--heder end here-->
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="index.html">Home</a><i class="fa fa-

97 | P a g e
angle-right"></i>Update Package </li>
</ol>
<!--grid-->
<div class="grid-form">
<!---->
<div class="grid-form1">
<h3>Create Package</h3>
<?php if($error){?><div class="errorWrap"><strong>ERROR</strong>:<?php
echo htmlentities($error); ?> </div><?php }
else if($msg){?><div class="succWrap"><strong>SUCCESS</strong>:<?php echo
htmlentities($msg); ?> </div><?php }?>
<div class="tab-content">
<div class="tab-pane active" id="horizontal-form">
<form class="form-horizontal" name="package" method="post"
enctype="multipart/form-data">
<div class="form-group">
<label for="focusedinput" class="col-sm-2 control- label">Package Name</label>
<div class="col-sm-8">
packagename" id="packagename" placeholder="Create Package" required>
</div>
</div>
<div class="form-group">
label">Package Type</label>
<label for="focusedinput" class="col-sm-2 control-
<div class="col-sm-8">
<input type="text" class="form-control1" name="
packagetype" id="packagetype" placeholder=" Package Type eg- Family Package / Couple
Package" required>
</div>

98 | P a g e
</div>
<div class="form-group">
<label for="focusedinput" class="col-sm-2 control-label">Package Location</label>
<div class="col-sm-8">
<div class="col-sm-8">
<input type="text" class="form-control1" name="packagelocation" id="packagelocation"
placeholder=" Package Location" required>
</div>
</div></div>
</div>
<div class="form-group">
<label for="focusedinput" class="col-sm-2 control-label">Package Price in RS</label>
<div class="col-sm-8">
<input type="text" class="form-control1" name="packageprice" id="packageprice"
placeholder=" Package Price is RS" required>
</div>
</div>
<div class="form-group">
<label for="focusedinput" class="col-sm-2 control-label">Package Features</label>
<div class="col-sm-8">
<input type="text" class="form-control1" name="packagefeatures" id="packagefeatures"
placeholder="Package Features Eg-free Pickup-drop
facility" required>
</div>
</div>
<div class="form-group">
<label for="focusedinput" class="col-sm-2 control-label">Package Details</label>
<div class="col-sm-8">
<textarea class="form-control" rows="5" cols="50"name="packagedetails" id="packagedetails"
placeholder="Package Details" required></textarea>

99 | P a g e
</div>
</div>
<div class="form-group">
<label for="focusedinput" class="col-sm-2 control- label">Package Image</label>
<div class="col-sm-8">
<input type="file" name="packageimage" id=" packageimage" required>
</div>
</div>
<div class="row">
<div class="col-sm-8 col-sm-offset-2">
<button type="submit" name="submit" class="btn-primary btn">Create< /button>
<button type="reset" class="btn-inverse btn">Reset</button>
</div>
</div>
</div>
</form>
<div class="panel-footer">
</div>
</form>
</div>
</div>
<!--//grid-->
<!-- script-for sticky-nav -->
<script>
$(document).ready(function() {
var navoffeset=$(".header-main").offset().top;
$(window).scroll(function(){
var scrollpos=$(window).scrollTop();
if(scrollpos >=navoffeset){

100 | P a g e
$(".header-main").addClass("fixed");
}else{
$(".header-main").removeClass("fixed");
}
});
});
</script>
<!-- /script-for sticky-nav -->
<!--inner block start here-->
<div class="inner-block">
</div>
<!--inner block end here-->
<!--copy rights start here-->
<?php include('includes/footer.php');?>
<!--COPY rights end here-->
</div>
</div>
<!--//content-inner-->
<!--/sidebar-menu-->
<?php include('includes/sidebarmenu.php');?>
<div class="clearfix"></div>
</div>
<script>
var toggle = true;
$(".sidebar-icon").click(function() {
if (toggle)
{
$(".page-container").addClass("sidebar-collapsed")
.removeClass("sidebar-collapsed-back");

101 | P a g e
$("#menu span").css({"position":"absolute"});
}
else
{
$(".page-container").removeClass("sidebar-collapsed")
.addClass("sidebar-collapsed-back");
setTimeout(function() {
$("#menu span").css({"position":"relative"});
}, 400);
}
toggle = !toggle;
});
</script>
<!--js -->
<script src="js/jquery.nicescroll.js"></script>
<script src="js/scripts.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="js/bootstrap.min.js"></script>
<!-- /Bootstrap Core JavaScript -->
</body>
</html>
<?php } ?>

102 | P a g e
Manage Package Screenshot:

Source Code for Manage Package:


<?php
session_start();
error_reporting(0);
include('includes/config.php');
if(strlen($_SESSION['alogin'])==0)
{
header('location:index.php');
}
else{
?>
<!DOCTYPE HTML>
<html>
103 | P a g e
<head>
<title>TMS | admin manage packages</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="application/x-javascript"> addEventListener("load", function() {
setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } <
/script>
<!-- Bootstrap Core CSS -->
<link href="css/bootstrap.min.css" rel='stylesheet' type='text/css' />
<!-- Custom CSS -->
<link href="css/style.css" rel='stylesheet' type='text/css' />
<link rel="stylesheet" href="css/morris.css" type="text/css"/>
<!-- Graph CSS -->
<link href="css/font-awesome.css" rel="stylesheet">
<!-- jQuery -->
<script src="js/jquery-2.1.4.min.js"></script>
<!-- //jQuery -->
<!-- tables -->
<link rel="stylesheet" type="text/css" href="css/table-style.css" />
<link rel="stylesheet" type="text/css" href="css/basictable.css" />
<script type="text/javascript" src="js/jquery.basictable.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#table').basictable();
$('#table-breakpoint').basictable({ breakpoint: 768});
$('#table-swap-axis').basictable({ swapAxis: true});
$('#table-force-off').basictable({ forceResponsive: false});
$('#table-no-resize').basictable({ noResize: true});
$('#table-two-axis').basictable();
$('#table-max-height').basictable({tableWrapper: true });
});
</script>
104 | P a g e
<!-- //tables -->
<link href='//fonts.googleapis.com/css?family=Roboto:700,500,300,100italic,100,400' rel='
stylesheet' type='text/css'/>
<link href='//fonts.googleapis.com/css?family=Montserrat:400,700' rel='stylesheet' type='
text/css'>
<!-- lined-icons -->
<link rel="stylesheet" href="css/icon-font.min.css" type='text/css' />
<!-- //lined-icons -->
</head>
<body>
<div class="page-container">
<!--/content-inner-->
<div class="left-content">
<div class="mother-grid-inner">
<!--header start here-->
<?php include('includes/header.php');?>
<div class="clearfix"> </div>
</div>
<!--heder end here-->
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="dashboard.php">Home</a><i class="fa
fa-angle-right"></i>Manage Packages</li>
</ol>
<div class="agile-grids">
<!-- tables -->
<div class="agile-tables">
<div class="w3l-table-info">
<h2>Manage Packages</h2>
<table id="table">
<thead>
<tr>
<th>#</th>
105 | P a g e
<th >Name</th>
<th>Type</th>
<th>Location</th>
<th>Price</th>
<th>Creation Date</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php $sql = "SELECT * from TblTourPackages";
$query = $dbh -> prepare($sql);
//$query -> bindParam(':city', $city, PDO::PARAM_STR);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=1;
if($query->rowCount() > 0)
{
foreach($results as $result)
<tr>
<td><?php echo htmlentities($cnt);?></td>
<td><?php echo htmlentities($result->PackageName);?></td>
<td><?php echo htmlentities($result->PackageType);?></td>
<td><?php echo htmlentities($result->PackageLocation);?></td>
<td>RS<?php echo htmlentities($result->PackagePrice);?></td>
<td><?php echo htmlentities($result->Creationdate);?></td>
<td><a href="update-package.php?pid=<?php echo
htmlentities($result->PackageId);?>"><button type="button" class="btn btn-primary btn-
block">View Details</button></a></td>
</tr>
<?php $cnt=$cnt+1;} }?>
</tbody>
</table>
106 | P a g e
</div>
</table>
</div>
<!-- script-for sticky-nav -->
<script>
$(document).ready(function() {
var navoffeset=$(".header-main").offset().top;
$(window).scroll(function(){
var scrollpos=$(window).scrollTop();
if(scrollpos >=navoffeset){
$(".header-main").addClass("fixed");
}else{
$(".header-main").removeClass("fixed");
}
});
});
</script>
<!-- /script-for sticky-nav -->
<!--inner block start here-->
<div class="inner-block">
</div>
<!--inner block end here-->
<!--copy rights start here-->
<?php include('includes/footer.php');?>
<!--COPY rights end here-->
</div>
</div>
<!--//content-inner-->
<!--/sidebar-menu-->
<?php include('includes/sidebarmenu.php');?>
<div class="clearfix"></div>
</div>
107 | P a g e
<script>
var toggle = true;
$(".sidebar-icon").click(function() {
if (toggle)
{
$(".page-container").addClass("sidebar-collapsed")
.removeClass("sidebar-collapsed-back");
$("#menu span").css({"position":"absolute"});
}
else
{
$(".page-container").removeClass("sidebar-collapsed")
.addClass("sidebar-collapsed-back");
setTimeout(function() {
$("#menu span").css({"position":"relative"});
}, 400);
toggle = !toggle;
});
</script>
<!--js -->
<script src="js/jquery.nicescroll.js"></script>
<script src="js/scripts.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="js/bootstrap.min.js"></script>
<!-- /Bootstrap Core JavaScript -->
</body>
</html>
<?php } ?>

108 | P a g e
Update Package Screenshot:

Source Code for update Package:


<?php
session_start();
error_reporting(0);
include('includes/config.php');
if(strlen($_SESSION['alogin'])==0)
{
header('location:index.php');
}
else{
$pid=intval($_GET['pid']);
if(isset($_POST['submit']))
{

109 | P a g e
$pname=$_POST['packagename'];
$ptype=$_POST['packagetype'];
$plocation=$_POST['packagelocation'];
$pprice=$_POST['packageprice'];
$pfeatures=$_POST['packagefeatures'];
$pdetails=$_POST['packagedetails'];
$pimage=$_FILES["packageimage"]["name"];
$sql="update TblTourPackages set
PackageName=:pname,PackageType=:ptype,PackageLocation=
:plocation,PackagePrice=:pprice,PackageFetures=:pfeatures,PackageDetails=:pdetails where
PackageId=:pid";
$query = $dbh->prepare($sql);
$query->bindParam(':pname',$pname,PDO::PARAM_STR);
$query->bindParam(':ptype',$ptype,PDO::PARAM_STR);
$query->bindParam(':plocation',$plocation,PDO::PARAM_STR);
$query->bindParam(':pprice',$pprice,PDO::PARAM_STR);
$query->bindParam(':pfeatures',$pfeatures,PDO::PARAM_STR);
$query->bindParam(':pdetails',$pdetails,PDO::PARAM_STR);
$query->bindParam(':pid',$pid,PDO::PARAM_STR);
$query->execute();
$msg="Package Updated Successfully";
}
?>
<!DOCTYPE HTML>
<html>
<head>
<title>TMS | Admin Package Creation</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="Pooled Responsive web template, Bootstrap Web
Templates,

110 | P a g e
Flat Web Templates, Android Compatible web template,
Smartphone Compatible web template, free webdesigns for Nokia, Samsung, LG, SonyEricsson,
Motorola web design" />
<script type="application/x-javascript"> addEventListener("load", function() {
setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } <
/script>
<link href="css/bootstrap.min.css" rel='stylesheet' type='text/css' />
<link href="css/style.css" rel='stylesheet' type='text/css' />
<link rel="stylesheet" href="css/morris.css" type="text/css"/>
<link href="css/font-awesome.css" rel="stylesheet">
<script src="js/jquery-2.1.4.min.js"></script>
<link href='//fonts.googleapis.com/css?family=Roboto:700,500,300,100italic,100,400' rel='
stylesheet' type='text/css'/>
<link href='//fonts.googleapis.com/css?family=Montserrat:400,700' rel='stylesheet' type='
text/css'>
<link rel="stylesheet" href="css/icon-font.min.css" type='text/css' />
<style>
.errorWrap {
padding: 10px;
margin: 0 0 20px 0;
background: #fff;
border-left: 4px solid #dd3d36;
-webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
.succWrap{
padding: 10px;
margin: 0 0 20px 0;
background: #fff;
border-left: 4px solid #5cb85c;

111 | P a g e
-webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
</style>
</head>
<body>
<div class="page-container">
<!--/content-inner-->
<div class="left-content">
<div class="mother-grid-inner">
<!--header start here-->
<?php include('includes/header.php');?>
<div class="clearfix"> </div>
</div>
<!--heder end here-->
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="dashboard.php">Home</a><i class="fa
fa-angle-right"></i>Update Tour Package </li>
</ol>
<!--grid-->
<div class="grid-form">
<!---->
<div class="grid-form1">
<h3>Update Package</h3>
<?php if($error){?><div class="errorWrap"><strong>ERROR</strong>:<?php
echo htmlentities($error); ?> </div><?php }
else if($msg){?><div class="succWrap"><strong>SUCCESS</strong>:<?php echo
htmlentities($msg); ?> </div><?php }?>
<div class="tab-content">
<div class="tab-pane active" id="horizontal-form">

112 | P a g e
<?php
$pid=intval($_GET['pid']);
$sql = "SELECT * from TblTourPackages where PackageId=:pid";
$query = $dbh -> prepare($sql);
$query -> bindParam(':pid', $pid, PDO::PARAM_STR);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=1;
if($query->rowCount() > 0)
{
foreach($results as $result)
{ ?>
<form class="form-horizontal" name="package" method="post"
enctype="multipart/form-data">
<div class="form-group">
<label for="focusedinput" class="col-sm-2 control- label">Package Name</label>
<div class="col-sm-8">
<input type="text" class="form-control1" name=" packagename" id="packagename"
placeholder="Create Package" value="<?php echo
htmlentities($result->PackageName);?>" required>
</div>
</div>
<div class="form-group">
<label for="focusedinput" class="col-sm-2 control-label">Package Type</label>
<div class="col-sm-8">
<input type="text" class="form-control1" name="packagetype" id="packagetype"
placeholder=" Package Type eg- Family Package / Couple
Package" value="<?php echo htmlentities($result->PackageType);?>" required>
</div>
</div>
<div class="form-group">

113 | P a g e
<label for="focusedinput" class="col-sm-2 control-label">Package Location</label>
<div class="col-sm-8">
<input type="text" class="form-control1" name="packagelocation" id="packagelocation"
placeholder=" Package Location" value="<?php echo htmlentities($result-
>PackageLocation);?>" required>
</div>
</div>
<div class="form-group">
<label for="focusedinput" class="col-sm-2 control-label">Package Price in RS</label>
<div class="col-sm-8">
<input type="text" class="form-control1" name="packageprice" id="packageprice"
placeholder=" Package Price is RS" value="<?php echo htmlentities($result->PackagePrice);?>"
required>
</div>
</div>
<div class="form-group">
<label for="focusedinput" class="col-sm-2 control-label">Package Features</label>
<div class="col-sm-8">
<input type="text" class="form-control1" name="packagefeatures" id="packagefeatures"
placeholder="Package Features Eg-free Pickup-drop facility" value="<?php echo
htmlentities($result->PackageFetures);?>" required>
</div>
</div>
<div class="form-group">
<label for="focusedinput" class="col-sm-2 control-label">Package Details</label>
<div class="col-sm-8">
<textarea class="form-control" rows="5" cols="50"name="packagedetails" id="packagedetails"
placeholder="Package Details" required><?php echo htmlentities($result-
>PackageDetails);?></textarea>
</div>
</div>
<div class="form-group">
<label for="focusedinput" class="col-sm-2 control-label">Package Image</label>

114 | P a g e
<div class="col-sm-8">
<img src="pacakgeimages/<?php echo htmlentities($result->PackageImage);?>"
width="200">&
nbsp;&nbsp;&nbsp;<a href="change-image.php?imgid=<?php echo htmlentities($result->
PackageId);?>">Change Image</a>
</div>
</div>
<div class="form-group">
<label for="focusedinput" class="col-sm-2 control-label">Last Updation Date</label>
<div class="col-sm-8">
<?php echo htmlentities($result->UpdationDate);?>
</div>
</div>
<?php }} ?>
<div class="row">
<div class="col-sm-8 col-sm-offset-2">
<button type="submit" name="submit" class="btn-primary btn">Update</button>
</div>
</div>
</div>
</form>
<div class="panel-footer">
</div>
</form>
</div>
</div>
<!--//grid-->
<!-- script-for sticky-nav -->
<script>
$(document).ready(function() {
var navoffeset=$(".header-main").offset().top;
115 | P a g e
$(window).scroll(function(){
var scrollpos=$(window).scrollTop();
if(scrollpos >=navoffeset){
$(".header-main").addClass("fixed");
}else{
$(".header-main").removeClass("fixed");
}
});
});
</script>
<!-- /script-for sticky-nav -->
<!--inner block start here-->
<div class="inner-block">
</div>
<!--inner block end here-->
<!--copy rights start here-->
<?php include('includes/footer.php');?>
<!--COPY rights end here-->
</div>
</div>
<!--//content-inner-->
<!--/sidebar-menu-->
<?php include('includes/sidebarmenu.php');?>
<div class="clearfix"></div>
</div>
<script>
var toggle = true;
$(".sidebar-icon").click(function() {
if (toggle)
{

116 | P a g e
$(".page-container").addClass("sidebar-collapsed")
.removeClass("sidebar-collapsed-back");
$("#menu span").css({"position":"absolute"});
}
else
{
$(".page-container").removeClass("sidebar-collapsed")
.addClass("sidebar-collapsed-back");
setTimeout(function() {
$("#menu span").css({"position":"relative"});
}, 400);
}
toggle = !toggle;
});
</script>
<!--js -->
<script src="js/jquery.nicescroll.js"></script>
<script src="js/scripts.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="js/bootstrap.min.js"></script>
<!-- /Bootstrap Core JavaScript -->
</body>
</html>
<?php } ?>

117 | P a g e
Agents Details Form Screenshot:

Source Code for Agents Details:


<?php
session_start();
error_reporting(0);
include('includes/config.php');
if(strlen($_SESSION['alogin'])==0)
{
header('location:index.php');
}
else{
if(isset($_POST['submit']))
{
$aname=$_POST['agentsname'];
$aphone=$_POST['agentsphone'];
$aemail=$_POST['agentsemail'];

118 | P a g e
$aaddress=$_POST['agentsaddress'];
$adoc=$_POST['agentsdoc'];
$aimage=$_FILES["agentsdocimage"]["name"];
move_uploaded_file($_FILES["DocumentImage"]["tmp_name"],"DocumentImages/".$_FILES["
DocumentImage"]["name"]);
$sql="INSERT INTO Tblagents(AgentsName,AgentsPhone,AgentsEmail,AgentsAddress,
AgentsDocuments,DocumentImage)
VALUES(:aname,:aphone,:aemail,:aaddress,:adoc,:aimage)";
$query = $dbh->prepare($sql);
$query->bindParam(':aname',$aname,PDO::PARAM_STR);
$query->bindParam(':aphone',$aphone,PDO::PARAM_STR);
$query->bindParam(':aemail',$aemail,PDO::PARAM_STR);
$query->bindParam(':aaddress',$aaddress,PDO::PARAM_STR);
$query->bindParam(':adoc',$adoc,PDO::PARAM_STR);
$query->bindParam(':aimage',$aimage,PDO::PARAM_STR);
$query->execute();
$lastInsertId = $dbh->lastInsertId();
if($lastInsertId)
{
$msg="Agents Details Save Successfully";
}
else
{
$error="Something went wrong. Please try again";
}
}
?>
<!DOCTYPE HTML>
<html>
<head>
<title>TMS | Admin Agents Details</title>
119 | P a g e
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="Pooled Responsive web template, Bootstrap Web
Templates,
Flat Web Templates, Android Compatible web template,
Smartphone Compatible web template, free webdesigns for Nokia, Samsung, LG, SonyEricsson,
Motorola web design" />
<script type="application/x-javascript"> addEventListener("load", function() {
setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } <
/script>
<link href="css/bootstrap.min.css" rel='stylesheet' type='text/css' />
<link href="css/style.css" rel='stylesheet' type='text/css' />
<link rel="stylesheet" href="css/morris.css" type="text/css"/>
<link href="css/font-awesome.css" rel="stylesheet">
<script src="js/jquery-2.1.4.min.js"></script>
<link href='//fonts.googleapis.com/css?family=Roboto:700,500,300,100italic,100,400' rel='
stylesheet' type='text/css'/>
<link href='//fonts.googleapis.com/css?family=Montserrat:400,700' rel='stylesheet' type='
text/css'>
<link rel="stylesheet" href="css/icon-font.min.css" type='text/css' />
<style>
.errorWrap {
padding: 10px;
margin: 0 0 20px 0;
background: #fff;
border-left: 4px solid #dd3d36;
-webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
.succWrap{
padding: 10px;
120 | P a g e
margin: 0 0 20px 0;
background: #fff;
border-left: 4px solid #5cb85c;
-webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
</style>
</head>
<body>
<div class="page-container">
<!--/content-inner-->
<div class="left-content">
<div class="mother-grid-inner">
<!--header start here-->
<?php include('includes/header.php');?>
<div class="clearfix"> </div>
</div>
<!--heder end here-->
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="index.html">Home</a><i class="fa fa-
angle-right"></i>Update Details </li>
</ol>
<!--grid-->
<div class="grid-form">
<!---->
<div class="grid-form1">
<h3>Add Agents</h3>
<?php if($error){?><div class="errorWrap"><strong>ERROR</strong>:<?php
echo htmlentities($error); ?> </div><?php }
else if($msg){?><div class="succWrap"><strong>SUCCESS</strong>:<?php echo

121 | P a g e
htmlentities($msg); ?> </div><?php }?>
<div class="tab-content">
<div class="tab-pane active" id="horizontal-form">
<form class="form-horizontal" name="Details" method="post"
enctype="multipart/form-data">
<div class="form-group">
<label for="focusedinput" class="col-sm-2 control- label">Agents Name</label>
<div class="col-sm-8">
<input type="text" class="form-control1" name="agentsname" id="agentsname"
placeholder="Agents Name" required>
</div>
</div>
<div class="form-group">
<label for="focusedinput" class="col-sm-2 control- label">Phone Number</label>
<div class="col-sm-8">
<input type="int" class="form-control1" name=" agentsphone" id="+917032165498"
placeholder="Enter your 10 Digits Mobile Number" required>
</div>
</div>
<div class="form-group">
<label for="focusedinput" class="col-sm-2 control-label">Agents Email</label>
<div class="col-sm-8">
<input type="int" class="form-control1" name=" agentsemail" id="Email" placeholder="Email
or Gmail" required>
</div>
</div>
<div class="form-group">
<label for="focusedinput" class="col-sm-2 control- label">Agents Address</label>
<div class="col-sm-8">
<textarea class="form-control" rows="5" cols="50"
name="agentsaddress" id="Adress" placeholder="Enter Agents Full Address" required>

122 | P a g e
</textarea>
</div>
<div class="form-group">
<label for="focusedinput" class="col-sm-2 control- label">Agents Photo ID No.</label>
<div class="col-sm-8">
<input type="text" class="form-control1" name="agentsdoc" id="Docdetails"
placeholder="Enter Photo Id No.(Addhar,Passport,Driving
Licence)" required>
</div>
</div>
<div class="form-group">
<label for="focusedinput" class="col-sm-2 control- label">Upload Documents</label>
<div class="col-sm-8">
<input type="file" name="agentsdocimage" id=" DocPhotoId" required>
</div>
</div>
<div class="row">
<div class="col-sm-8 col-sm-offset-2">
<button type="submit" name="submit" class="btn-primary btn">Create</button>
<button type="reset" class="btn-inverse btn">Reset</button>
</div>
</div>
</div>
</form>
<div class="panel-footer">
</div>
</form>
</div>
</div>
<!--//grid-->
<!-- script-for sticky-nav -->
123 | P a g e
<script>
$(document).ready(function() {
var navoffeset=$(".header-main").offset().top;
$(window).scroll(function(){
var scrollpos=$(window).scrollTop();
if(scrollpos >=navoffeset){
$(".header-main").addClass("fixed");
}else{
$(".header-main").removeClass("fixed");
}
});
});
</script>
<!-- /script-for sticky-nav -->
<!--inner block start here-->
<div class="inner-block">
</div>
<!--inner block end here-->
<!--copy rights start here-->
<?php include('includes/footer.php');?>
<!--COPY rights end here-->
</div>
</div>
<!--//content-inner-->
<!--/sidebar-menu-->
<?php include('includes/sidebarmenu.php');?>
<div class="clearfix"></div>
</div>
<script>
var toggle = true;

124 | P a g e
$(".sidebar-icon").click(function() {
if (toggle)
{
$(".page-container").addClass("sidebar-collapsed")
.removeClass("sidebar-collapsed-back");
$("#menu span").css({"position":"absolute"});
}
else
$(".page-container").removeClass("sidebar-collapsed")
.addClass("sidebar-collapsed-back");
setTimeout(function() {
$("#menu span").css({"position":"relative"});
}, 400);
}
toggle = !toggle;
});
</script>
<!--js -->
<script src="js/jquery.nicescroll.js"></script>
<script src="js/scripts.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="js/bootstrap.min.js"></script>
<!-- /Bootstrap Core JavaScript -->
</body>
</html>
<?php } ?>

125 | P a g e
Manage Agents Details Screenshot:

Source Code Manage Agents Details:


<?php
session_start();
error_reporting(0);
include('includes/config.php');
if(strlen($_SESSION['alogin'])==0)
{
header('location:index.php');
}
else{
?>
<!DOCTYPE HTML>
<html>
<head>
<title>TMS | admin manage Agents</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="application/x-javascript"> addEventListener("load", function() {

126 | P a g e
setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } <
/script>
<!-- Bootstrap Core CSS -->
<link href="css/bootstrap.min.css" rel='stylesheet' type='text/css' />
<!-- Custom CSS -->
<link href="css/style.css" rel='stylesheet' type='text/css' />
<link rel="stylesheet" href="css/morris.css" type="text/css"/>
<!-- Graph CSS -->
<link href="css/font-awesome.css" rel="stylesheet">
<!-- jQuery -->
<script src="js/jquery-2.1.4.min.js"></script>
<!-- //jQuery -->
<!-- tables -->
<link rel="stylesheet" type="text/css" href="css/table-style.css" />
<link rel="stylesheet" type="text/css" href="css/basictable.css" />
<script type="text/javascript" src="js/jquery.basictable.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#table').basictable();
$('#table-breakpoint').basictable({
breakpoint: 768
});
$('#table-swap-axis').basictable({
swapAxis: true
});
$('#table-force-off').basictable({
forceResponsive: false
});
$('#table-no-resize').basictable({

127 | P a g e
noResize: true
});
$('#table-two-axis').basictable();
$('#table-max-height').basictable({
tableWrapper: true });
});
</script>
<!-- //tables -->
<link href='//fonts.googleapis.com/css?family=Roboto:700,500,300,100italic,100,400' rel='
stylesheet' type='text/css'/>
<link href='//fonts.googleapis.com/css?family=Montserrat:400,700' rel='stylesheet' type='
text/css'>
<!-- lined-icons -->
<link rel="stylesheet" href="css/icon-font.min.css" type='text/css' />
<!-- //lined-icons -->
</head>
<body>
<div class="page-container">
<!--/content-inner-->
<div class="left-content">
<div class="mother-grid-inner">
<!--header start here-->
<?php include('includes/header.php');?>
<div class="clearfix"> </div>
</div>
<!--heder end here-->
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="dashboard.php">Home</a><i class="fa
fa-angle-right"></i>Manage Agents</li>

128 | P a g e
</ol>
<div class="agile-grids">
<!-- tables -->
<div class="agile-tables">
<div class="w3l-table-info">
<h2>Manage Agents</h2>
<table id="table">
<thead>
<tr>
<th>Sl.No</th>
<th >Name</th>
<th>Phone</th>
<th>Email</th>
<th>Address</th>
<th>UpdationDate</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php $sql = "SELECT * from Tblagents";
$query = $dbh -> prepare($sql);
//$query -> bindParam(':city', $city, PDO::PARAM_STR);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=1;
if($query->rowCount() > 0)
{
foreach($results as $result)
?>

129 | P a g e
<tr>
<td><?php echo htmlentities($cnt);?></td>
<td><?php echo htmlentities($result->AgentsName);?></td>
<td><?php echo htmlentities($result->AgentsPhone);?></td>
<td><?php echo htmlentities($result->AgentsEmail);?></td>
<td><?php echo htmlentities($result->AgentsAddress);?></td>
<td><?php echo htmlentities($result->UpdationDate);?></td>
<td><a href="update-agents.php?aid=<?php echo
htmlentities($result->AgentsId);?>"><button type="button" class="btn btn-primary btn-
block">Edit Details</button></a></td>
</tr>
<?php $cnt=$cnt+1;} }?>
</tbody>
</table>
</div>
</table>
</div>
<!-- script-for sticky-nav -->
<script>
$(document).ready(function() {
var navoffeset=$(".header-main").offset().top;
$(window).scroll(function(){
var scrollpos=$(window).scrollTop();
if(scrollpos >=navoffeset){
$(".header-main").addClass("fixed");
}else{
$(".header-main").removeClass("fixed");
}
});

130 | P a g e
});
</script>
<!-- /script-for sticky-nav -->
<!--inner block start here-->
<div class="inner-block">
</div>
<!--inner block end here-->
<!--copy rights start here-->
<?php include('includes/footer.php');?>
<!--COPY rights end here-->
</div>
</div>
<!--//content-inner-->
<!--/sidebar-menu-->
<?php include('includes/sidebarmenu.php');?>
<div class="clearfix"></div>
</div>
<script>
var toggle = true;
$(".sidebar-icon").click(function() {
if (toggle)
{
$(".page-container").addClass("sidebar-collapsed")
.removeClass("sidebar-collapsed-back");
$("#menu span").css({"position":"absolute"});
}
else
{
$(".page-container").removeClass("sidebar-collapsed")

131 | P a g e
.addClass("sidebar-collapsed-back");
setTimeout(function() {
$("#menu span").css({"position":"relative"});
}, 400);
toggle = !toggle;
});
</script>
<!--js -->
<script src="js/jquery.nicescroll.js"></script>
<script src="js/scripts.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="js/bootstrap.min.js"></script>
<!-- /Bootstrap Core JavaScript -->
</body>
</html>
<?php } ?>

132 | P a g e
Update Agents Details Screenshot:

Source Code for Update Agents Deatails:


<?php
session_start();
error_reporting(0);
include('includes/config.php');
if(strlen($_SESSION['alogin'])==0)
{
header('location:index.php');
}
else{
$aid=intval($_GET['aid']);
if(isset($_POST['submit']))
{
$aname=$_POST['agentsname'];

133 | P a g e
$aphone=$_POST['agentsphone'];
$aemail=$_POST['agentsemail'];
$aaddress=$_POST['agentsaddress'];
$adoc=$_POST['agentsdoc'];
$aimage=$_FILES["agentsdocimage"]["name"];
$sql="update Tblagents set AgentsName=:aname,AgentsPhone=:aphone,AgentsEmail=:aemail,
AgentsAddress=:aadress,AgentsDocuments=:adoc Where AgentsId=:aid";
$query = $dbh->prepare($sql);
$query->bindParam(':aname',$aname,PDO::PARAM_STR);
$query->bindParam(':aphone',$aphone,PDO::PARAM_STR);
$query->bindParam(':aemail',$aemail,PDO::PARAM_STR);
$query->bindParam(':aaddress',$aaddress,PDO::PARAM_STR);
$query->bindParam(':adoc',$adoc,PDO::PARAM_STR);
$query->bindParam(':aid',$aid,PDO::PARAM_STR);
$query->execute();
$msg="Updated Successfully";
}
?>
<!DOCTYPE HTML>
<html>
<head>
<title>TMS | Admin Agents Details</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="Pooled Responsive web template, Bootstrap Web
Templates,
Flat Web Templates, Android Compatible web template,
Smartphone Compatible web template, free webdesigns for Nokia, Samsung, LG, SonyEricsson,
Motorola web design" />
<script type="application/x-javascript"> addEventListener("load", function() {

134 | P a g e
setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); }
</script>
<link href="css/bootstrap.min.css" rel='stylesheet' type='text/css' />
<link href="css/style.css" rel='stylesheet' type='text/css' />
<link rel="stylesheet" href="css/morris.css" type="text/css"/>
<link href="css/font-awesome.css" rel="stylesheet">
<script src="js/jquery-2.1.4.min.js"></script>
<link href='//fonts.googleapis.com/css?family=Roboto:700,500,300,100italic,100,400' rel='
stylesheet' type='text/css'/>
<link href='//fonts.googleapis.com/css?family=Montserrat:400,700' rel='stylesheet' type='
text/css'>
<link rel="stylesheet" href="css/icon-font.min.css" type='text/css' />
<style>
.errorWrap {
padding: 10px;
margin: 0 0 20px 0;
background: #fff;
border-left: 4px solid #dd3d36;
-webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
.succWrap{
padding: 10px;
margin: 0 0 20px 0;
background: #fff;
border-left: 4px solid #5cb85c;
-webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
</style>
</head>
135 | P a g e
<body>
<div class=”page-container”>
<!--/content-inner→
<div class=”left-content”>
<div class=”mother-grid-inner”>
<!—header start here→
<?php include(‘includes/header.php’);?>
<div class=”clearfix”> </div>
</div>
<!—heder end here→
<ol class=”breadcrumb”>
<li class=”breadcrumb-item”><a href=”dashboard.php”>Home</a><I class=”fa
fa-angle-right”></i>Update Agents Details </li>
</ol>
<!—grid→
<div class=”grid-form”>
<!--→
<div class=”grid-form1”>
<h3>Update details</h3>
<?php if($error){?><div class=”errorWrap”><strong>ERROR</strong>:<?php
echo htmlentities($error); ?> </div><?php }
else if($msg){?><div class=”succWrap”><strong>SUCCESS</strong>:<?php echo
htmlentities($msg); ?> </div><?php }?>
<div class=”tab-content”>
<div class=”tab-pane active” id=”horizontal-form”>
<?php
$aid=intval($_GET[‘aid’]);
$sql = “SELECT * from Tblagents where AgentsId=:aid”;
$query = $dbh -> prepare($sql);
$query -> bindParam(‘:aid’, $aid, PDO::PARAM_STR);

136 | P a g e
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=1;
if($query->rowCount() > 0)
{
foreach($results as $result)
{ ?>
<form class="form-horizontal" name="Details" method="post"
enctype="multipart/form-data">
<div class="form-group">
<label for="focusedinput" class="col-sm-2 control- label>Agents Name</label>
<div class="col-sm-8">
<input type="text" class="form-control1" name=”agentsname" id="agentsname"
placeholder="Agents Name" value="<?php echo htmlentities($result->AgentsName);?>"
required>
</div>
</div>
<div class="form-group">
<label for="focusedinput" class="col-sm-2 control-Phone Number</label>
<div class="col-sm-8">
<input type="int" class="form-control1" name="agentsphone" id="+917032165498"
placeholder="Enter your 10 Digits Mobile Number" value="<? php echo htmlentities($result-
>AgentsPhone);?>" required>
</div>
</div>
<div class="form-group">
<label for="focusedinput" class="col-sm-2 control-label">Agents Email</label>
<div class="col-sm-8">
<input type="text" class="form-control1" name="agentsemail" id="Email" placeholder="Email
or Gmail" value="<?php echo htmlentities($result->AgentsEmail);?>" required>
</div>
</div>

137 | P a g e
<div class="form-group">
<label for="focusedinput" class="col-sm-2
<div class="col-sm-8">
<label for="focusedinput" class="col-sm-2 control-label">Agents Address</label>
<div class="col-sm-8">
<textarea class="form-control" rows="5" cols="50"
name="agentsaddress" id="Adress" placeholder="Enter Agents Full Address" value="<?php echo
htmlentities($result->AgentsAddress);?>"
required></textarea>
</div>
</div>
<div class="form-group">
<label for="focusedinput" class="col-sm-2 control- label">Agents Photo ID No.</label>
<div class="col-sm-8">
<div class="col-sm-8">
<input type="text" class="form-control1" name="
AgentsDocuments" id="Docdetails" placeholder="Enter Photo Id No.(Addhar,Passport,Driving
Licence)" value="<?php echo htmlentities($result->AgentsDocuments);?>" required>
</div>
</div>
<div class="form-group">
<label for="focusedinput" class="col-sm-2 control-label">Upload Documents</label>
<div class="col-sm-8">
<img src="DocumentImages/<?php echo htmlentities($result->DocumentImage);?>"
width="200">&
nbsp;&nbsp;&nbsp;
<a href="changeDoc-image.php?imgid=<?php echo htmlentities($result-
>AgentsId);?>">Change
Image</a>
</div>
</div>

138 | P a g e
<div class="form-group">
<label for="focusedinput" class="col-sm-2 control- label">Last Updation Date</label>
<div class="col-sm-8">
<?php echo htmlentities($result->UpdationDate);?>
</div>
</div>
<?php }} ?>
<div class="row">
<div class="col-sm-8 col-sm-offset-2">
<button type="submit" name="submit" class="btn-primary btn">Update<
/button>
</div>
</div>
</div>
</form>
<div class="panel-footer">
</div>
</form>
</div>
</div>
<!--//grid-->
<!-- script-for sticky-nav -->
<script>
$(document).ready(function() {
var navoffeset=$(".header-main").offset().top;
$(window).scroll(function(){
var scrollpos=$(window).scrollTop();
if(scrollpos >=navoffeset){
$(".header-main").addClass("fixed");
}else{

139 | P a g e
$(".header-main").removeClass("fixed");
}
});
});
</script>
<!-- /script-for sticky-nav -->
<!--inner block start here-->
<div class="inner-block">
</div>
<!--inner block end here-->
<!--copy rights start here-->
<?php include('includes/footer.php');?>
<!--COPY rights end here-->
</div>
</div>
<!--//content-inner-->
<!--/sidebar-menu-->
<?php include('includes/sidebarmenu.php');?>
<div class="clearfix"></div>
</div>
<script>
var toggle = true;
$(".sidebar-icon").click(function() {
if (toggle)
{
$(".page-container").addClass("sidebar-collapsed")
.removeClass("sidebar-collapsed-back");
$("#menu span").css({"position":"absolute"});
}
else

140 | P a g e
{
$(".page-container").removeClass("sidebar-collapsed")
.addClass("sidebar-collapsed-back");
setTimeout(function() {
$("#menu span").css({"position":"relative"});
}, 400);}
toggle = !toggle;
});
</script>
<!--js -->
<script src="js/jquery.nicescroll.js"></script>
<script src="js/scripts.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="js/bootstrap.min.js"></script>
<!-- /Bootstrap Core JavaScript -->
</body>
</html>
<?php } ?>

141 | P a g e
Manage Booking Details Screenshot:

Source Code for Manage Booking:


<?php
session_start();
error_reporting(0);
include('includes/config.php');
if(strlen($_SESSION['alogin'])==0)
{
header('location:index.php');
}
else{
// code for cancel
if(isset($_REQUEST['bkid']))
{
$bid=intval($_GET['bkid']);
$status=2;
$cancelby='a';
$sql = "UPDATE tblbooking SET status=:status,CancelledBy=:cancelby WHERE
BookingId=:bid";
$query = $dbh->prepare($sql);

142 | P a g e
$query -> bindParam(':status',$status, PDO::PARAM_STR);
$query -> bindParam(':cancelby',$cancelby , PDO::PARAM_STR);
$query-> bindParam(':bid',$bid, PDO::PARAM_STR);
$query -> execute();
$msg="Booking Cancelled successfully";
}
if(isset($_REQUEST['bckid']))
{
$bcid=intval($_GET['bckid']);
$status=1;
$cancelby='a';
$sql = "UPDATE tblbooking SET status=:status WHERE BookingId=:bcid";
$query = $dbh->prepare($sql);
$query -> bindParam(':status',$status, PDO::PARAM_STR);
$query-> bindParam(':bcid',$bcid, PDO::PARAM_STR);
$query -> execute();
$msg="Booking Confirm successfully";
}
?>
<!DOCTYPE HTML>
<html>
<head>
<title>TMS | Admin manage Bookings</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="application/x-javascript"> addEventListener("load", function() {
setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } <
/script>
<link href="css/bootstrap.min.css" rel='stylesheet' type='text/css' />
<link href="css/style.css" rel='stylesheet' type='text/css' />

143 | P a g e
<link rel="stylesheet" href="css/morris.css" type="text/css"/>
<link href="css/font-awesome.css" rel="stylesheet">
<script src="js/jquery-2.1.4.min.js"></script>
<link rel="stylesheet" type="text/css" href="css/table-style.css" />
<link rel="stylesheet" type="text/css" href="css/basictable.css" />
<script type="text/javascript" src="js/jquery.basictable.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#table').basictable();
$('#table-breakpoint').basictable({
breakpoint: 768
});
$('#table-swap-axis').basictable({
swapAxis: true
});
$('#table-force-off').basictable({
forceResponsive: false
});
$('#table-no-resize').basictable({
noResize: true
});
$('#table-two-axis').basictable();
$('#table-max-height').basictable({
tableWrapper: true
});
});
</script>
<link href='//fonts.googleapis.com/css?family=Roboto:700,500,300,100italic,100,400' rel='
stylesheet' type='text/css'/>
<link href='//fonts.googleapis.com/css?family=Montserrat:400,700' rel='stylesheet' type='

144 | P a g e
text/css'>
<link rel="stylesheet" href="css/icon-font.min.css" type='text/css' />
<style>
.errorWrap {
padding: 10px;
margin: 0 0 20px 0;
background: #fff;
border-left: 4px solid #dd3d36;
-webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
.succWrap{
padding: 10px;
margin: 0 0 20px 0;
background: #fff;
border-left: 4px solid #5cb85c;
-webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
</style>
</head>
<body>
<div class="page-container">
<!--/content-inner-->
<div class="left-content">
<div class="mother-grid-inner">
<!--header start here-->
<?php include('includes/header.php');?>
<div class="clearfix"> </div>
</div>

145 | P a g e
<!--heder end here-->
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="dashboard.php">Home</a><i class="fa
fa-angle-right"></i>Manage Bookings</li>
</ol>
<div class="agile-grids">
<!-- tables -->
<?php if($error){?><div class="errorWrap"><strong>ERROR</strong>:<?php
echo htmlentities($error); ?> </div><?php }
else if($msg){?><div class="succWrap"><strong>SUCCESS</strong>:<?php echo
htmlentities($msg); ?> </div><?php }?>
<div class="agile-tables">
<div class="w3l-table-info">
<h2>Manage Bookings</h2>
<table id="table">
<thead>
<tr>
<th>Booikn id</th>
<th>Name</th>
<th>Mobile No.</th>
<th>Email Id</th>
<th>RegDate </th>
<th>From /To </th>
<th>Comment </th>
<th>Status </th>
<th>Action </th>
</tr>
</thead>
<tbody>
<?php $sql = "SELECT tblbooking.BookingId as bookid,tblusers.FullName as fname,

146 | P a g e
tblusers.MobileNumber as mnumber,tblusers.EmailId as email,tbltourpackages.PackageName as
pckname,tblbooking.PackageId as pid,tblbooking.FromDate as fdate,tblbooking.ToDate as
tdate,tblbooking.Comment as comment,tblbooking.status as status,tblbooking.CancelledBy as
cancelby,tblbooking.UpdationDate as upddate from tblusers join tblbooking on
tblbooking.UserEmail=tblusers.EmailId join tbltourpackages on tbltourpackages.PackageId=
tblbooking.PackageId";
$query = $dbh -> prepare($sql);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=1;
if($query->rowCount() > 0)
{
foreach($results as $result)
{?>
<tr>
<td>#BK-<?php echo htmlentities($result->bookid);?></td>
<td><?php echo htmlentities($result->fname);?></td>
<td><?php echo htmlentities($result->mnumber);?></td>
<td><?php echo htmlentities($result->email);?></td>
<td><a href="update-package.php?pid=<?php echo
htmlentities($result->pid);?>"><?php echo htmlentities($result->pckname);?></a></td>
<td><?php echo htmlentities($result->fdate);?> To <?php echo
htmlentities($result->tdate);?></td>
<td><?php echo htmlentities($result->comment);?></td>
<td><?php if($result->status==0)
{
echo "Pending";
}
if($result->status==1)
{echo "Confirmed";

147 | P a g e
}
if($result->status==2 and $result->cancelby=='a')
{
echo "Canceled by you at " .$result->upddate;
}
if($result->status==2 and $result->cancelby=='u')
{
echo "Canceled by User at " .$result->upddate;
}
?></td>
<?php if($result->status==2)
{
?><td>Cancelled</td>
<?php } else {?>
<td><a href="manage-bookings.php?bkid=<?php echo htmlentities($result->bookid);?>"
onclick="return confirm('Do you really want to cancel booking')" >Cancel</a> / <a href="
manage-bookings.php?bckid=<?php echo htmlentities($result->bookid);?>" onclick="return
confirm('Do you really want to cancel booking')" >Confirm</a></td>
<?php }?>
</tr>
<?php $cnt=$cnt+1;} }?>
</tbody>
</table>
</div>
</table>
</div>
<!-- script-for sticky-nav -->
<script>
$(document).ready(function() {
var navoffeset=$(".header-main").offset().top;

148 | P a g e
$(window).scroll(function(){
var scrollpos=$(window).scrollTop();
if(scrollpos >=navoffeset){
$(".header-main").addClass("fixed");
}else{
$(".header-main").removeClass("fixed");
}
});
});
</script>
<!-- /script-for sticky-nav -->
<!--inner block start here-->
<div class="inner-block">
</div>
<!--inner block end here-->
<!--copy rights start here-->
<?php include('includes/footer.php');?>
<!--COPY rights end here-->
</div>
</div>
<!--//content-inner-->
<!--/sidebar-menu-->
<?php include('includes/sidebarmenu.php');?>
<div class="clearfix"></div>
</div>
<script>
var toggle = true;
$(".sidebar-icon").click(function() {
if (toggle)
{$(".page-container").addClass("sidebar-collapsed")

149 | P a g e
.removeClass("sidebar-collapsed-back");
$("#menu span").css({"position":"absolute"});
}
else
{
$(".page-container").removeClass("sidebar-collapsed")
.addClass("sidebar-collapsed-back");
setTimeout(function() {
$("#menu span").css({"position":"relative"});
}, 400);
}
toggle = !toggle;
});
</script>
<!--js -->
<script src="js/jquery.nicescroll.js"></script>
<script src="js/scripts.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="js/bootstrap.min.js"></script>
<!-- /Bootstrap Core JavaScript -->
</body>
</html>
<?php } ?>

150 | P a g e
Manage Issues Screenshot:

Source Code for Manage Issues:


<?php
session_start();
error_reporting(0);
include('includes/config.php');
if(strlen($_SESSION['alogin'])==0)
{
header('location:index.php');
}
else{
// code for cancel
if(isset($_REQUEST['eid']))
{
$eid=intval($_GET['eid']);
$status=1;
$sql = "UPDATE tblenquiry SET Status=:status WHERE id=:eid";
$query = $dbh->prepare($sql);
$query -> bindParam(':status',$status, PDO::PARAM_STR);
$query-> bindParam(':eid',$eid, PDO::PARAM_STR);
151 | P a g e
$query -> execute();
$msg="Enquiry successfully read";
}
?>
<!DOCTYPE HTML>
<html>
<head>
<title>TMS | Admin manage Issues</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="application/x-javascript"> addEventListener("load", function() {
setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } <
/script>
<link href="css/bootstrap.min.css" rel='stylesheet' type='text/css' />
<link href="css/style.css" rel='stylesheet' type='text/css' />
<link rel="stylesheet" href="css/morris.css" type="text/css"/>
<link href="css/font-awesome.css" rel="stylesheet">
<script src="js/jquery-2.1.4.min.js"></script>
<link rel="stylesheet" type="text/css" href="css/table-style.css" />
<link rel="stylesheet" type="text/css" href="css/basictable.css" />
<script type="text/javascript" src="js/jquery.basictable.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#table').basictable();
$('#table-breakpoint').basictable({
breakpoint: 768
});
$('#table-swap-axis').basictable({
swapAxis: true
});

152 | P a g e
$('#table-force-off').basictable({
forceResponsive: false
});
$('#table-no-resize').basictable({
noResize: true
});
$('#table-two-axis').basictable();
$('#table-max-height').basictable({
tableWrapper: true
});
});
</script>
<link href='//fonts.googleapis.com/css?family=Roboto:700,500,300,100italic,100,400' rel='
stylesheet' type='text/css'/>
<link href='//fonts.googleapis.com/css?family=Montserrat:400,700' rel='stylesheet' type='
text/css'>
<link rel="stylesheet" href="css/icon-font.min.css" type='text/css' />
<style>
.errorWrap {
padding: 10px;
margin: 0 0 20px 0;
background: #fff;
border-left: 4px solid #dd3d36;
-webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
.succWrap{
padding: 10px;
margin: 0 0 20px 0;
background: #fff;

153 | P a g e
border-left: 4px solid #5cb85c;
-webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
</style>
<script language="javascript" type="text/javascript">
var popUpWin=0;
function popUpWindow(URLStr, left, top, width, height)
{
if(popUpWin)
{
if(!popUpWin.closed) popUpWin.close();
}
popUpWin = open(URLStr,'popUpWin', 'toolbar=no,location=no,directories=no,status=no,
menubar=no,scrollbars=yes,resizable=no,copyhistory=yes,width='+600+',height='+600+',left='
+left+', top='+top+',screenX='+left+',screenY='+top+'');
}
</script>
</head>
<body>
<div class="page-container">
<!--/content-inner-->
<div class="left-content">
<div class="mother-grid-inner">
<!--header start here-->
<?php include('includes/header.php');?>
<div class="clearfix"> </div>
</div>
<!--heder end here-->
<ol class="breadcrumb">

154 | P a g e
<li class="breadcrumb-item"><a href="dashboard.php">Home</a><i class="fa
fa-angle-right"></i>Manage Issues</li>
</ol>
<div class="agile-grids">
<!-- tables -->
<?php if($error){?><div class="errorWrap"><strong>ERROR</strong>:<?php
echo htmlentities($error); ?> </div><?php }
else if($msg){?><div class="succWrap"><strong>SUCCESS</strong>:<?php echo
htmlentities($msg); ?> </div><?php }?>
<div class="agile-tables">
<div class="w3l-table-info">
<h2>Manage Issues</h2>
<table id="table">
<thead>
<tr>
<th>#</th>
<th>Name</th>
<th>Mobile No.</th>
<th>Email Id</th>
<th>Issues </th>
<th>Description </th>
<th>Posting date </th>
<th>Action </th>
</tr>
</thead>
<tbody>
<?php $sql = "SELECT tblissues.id as id,tblusers.FullName as fname,tblusers.MobileNumber
as mnumber,tblusers.EmailId as email,tblissues.Issue as issue,tblissues.Description as
Description,tblissues.PostingDate as PostingDate from tblissues join tblusers on
tblusers.EmailId=tblissues.UserEmail";

155 | P a g e
$query = $dbh -> prepare($sql);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
if($query->rowCount() > 0)
{
foreach($results as $result)
{ ?>
<tr>
<td width=”120”>#00<?php echo htmlentities($result->id);?></td>
<td width=”50”><?php echo htmlentities($result->fname);?></td>
<td width=”50”><?php echo htmlentities($result->mnumber);? ></td>
<td width=”50”><?php echo htmlentities($result->email);?></td>
<td width=”200”><?php echo htmlentities($result->issue);?></a> </td>
<td width=”400”><?php echo htmlentities($result->Description);? ></td>
<td width=”50”><?php echo htmlentities($result->PostingDate);?></td>
<td><a href=”javascript:void(0);” onClick=”popUpWindow(‘updateissue.php?iid=<?php echo
($result->id);?>’);”>View </a>
</td>
</tr>
<?php } }?>
</tbody>
</table>
</div>
</table>
</div>
<!—script-for sticky-nav →
<script>
$(document).ready(function() {
var navoffeset=$(“.header-main”).offset().top;
$(window).scroll(function(){

156 | P a g e
var scrollpos=$(window).scrollTop();
if(scrollpos >=navoffeset){
$(".header-main").addClass("fixed");
}else{
$(".header-main").removeClass("fixed");
}
});
});
</script>
<!-- /script-for sticky-nav -->
<!--inner block start here-->
<div class="inner-block">
</div>
<!--inner block end here-->
<!--copy rights start here-->
<?php include('includes/footer.php');?>
<!--COPY rights end here-->
</div>
</div>
<!--//content-inner-->
<!--/sidebar-menu-->
<?php include('includes/sidebarmenu.php');?>
<div class="clearfix"></div>
</div>
<script>
var toggle = true;
$(".sidebar-icon").click(function() {
if (toggle)
{
$(".page-container").addClass("sidebar-collapsed")

157 | P a g e
.removeClass("sidebar-collapsed-back");
$("#menu span").css({"position":"absolute"});
}
else
{
$(".page-container").removeClass("sidebar-collapsed")
.addClass("sidebar-collapsed-back");
setTimeout(function() {
$("#menu span").css({"position":"relative"});
}, 400);
}
toggle = !toggle;
});
</script>
<!--js -->
<script src="js/jquery.nicescroll.js"></script>
<script src="js/scripts.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="js/bootstrap.min.js"></script>
<!-- /Bootstrap Core JavaScript -->
</body>
</html>
<?php } ?>

158 | P a g e
9. Case Studies
The objective of our test plan is to find and report as many bugs as possible to improve the
integrity of our program. Although exhaustive testing is not possible, we will exercise a broad
range of tests to achieve our goal. We will be testing a Binary Search Tree Application utilizing a
pre-order traversal format. There will be eight key functions used to manage our application:
load, store, clear, search, insert, delete, list in ascending order, and list in descending order. Our
user interface to utilize these functions is designed to be user-friendly and provide easy
manipulation of the tree. The application will only be used as a demonstration tool, but we would
like to ensure that it can be run from a variety of platforms with little impact on Preformation or
usability.

Process Overview:

The following represents the overall flow of the testing process:

1. Identify the requirement to be tested. All test cases shall be derived using the current Program
Specification.
2. Identify which particular test will be used to test each model.
3. Identify the expected results for each test.
4. Document the test data, test cases, and test configuration used during the testing process. This
information shall be submitted via the Unit/System Test Report (STR).
5. Perform the test.
6. Successful unit testing is required before the unit is eligible for component integration/System
testing.
7. Unsuccessful testing requires a Bug Report Form to be generated. This document shall describe
the test case, the problem encountered, it's possible cause, and the sequence of events that led to
the problem. It shall be used as a basis for later technical analysis.
8. Test documents and reports shall be submitted. Any specification to be reviewed, preserved or
updated shall be handled immediately.

159 | P a g e
9.1 Testing Methodology

UNIT TESTING
Testing is done at the source code level for language specific programming errors such as bad
syntax, logic errors or to test particular functions or code modules. The unit test cases shall be
designed to test the validity of the program’s correctness.
Unit testing has the greatest effect in the quality of our code when it's an integral part of our
software development worth flows. In our project we used this testing by ensuring whether the
output is correct with respect to the output.

ALPHA TESTING
This is a form of internal acceptance testing performed mainly by the in-house software QA and
testing teams. Alpha testing is the last testing done by the test teams at the development site after
the acceptance testing and before releasing the software for beta test.
Alpha testing can also be done by the potential users or customers of the application. But still,
this is a form of in-house acceptance testing.

BETA TESTING
This is a testing stage followed by the internal full alpha test cycle. This is the final testing phase
where the companies release the software to few external user groups outside the company test
teams or employees. This initial software version is known as the beta version. Most companies
gather user feedback in this release.
In short, beta testing can be defined as— the testing carried out by real users in a real
environment.

WHITE BOX TESTING


In White box testing the UI is by passed, inputs and outputs are tested directly at the code
level and the results are compared against specifications. This form of testing ignores the
function of the program under test and will focus only on its code and the structure of that code.

160 | P a g e
9.2 Test Cases:
The Following outlines the types of testing that will be done for unit, integration, and system
testing. While it includes what will be tested, the specific use cases that determine how the testing
is done will be detailed in the Test Design Document. The test cases that will be used for designing
use cases in shown and onwards.

Tested By: Seo Kumar Harijan


Test Type Unit Testing
Test Case Number 1
Test Case Name Registration Testing

The admin should enter the user id and password so that admin
Test Case can be able to go for the further options. The test case will check
Description the application for the same since an admin can only login with
the correct user id, password.

Item(s) to be tested

1 Verification of the user id and password with the record in the database.

Specifications
Expected
Input Output/Result
1) Correct Admin id and password 1) Successful registration

2) Incorrect Id or Password 1. 2) Failure Message

161 | P a g e
Tested By: Seo Kumar Harijan
Test Type Integration Testing
Test Case Number 2
Test Case Name User Interface

Test Case Description Display all the details properly or not.

Item(s) to be tested

1 Check whether the details are shown or not.

Specifications
Expected
Input Output/Result

11) Check whether all the unit is coupled & perfect 1) All the units are coupled & perfect
or not

Tested By: Seo Kumar Harijan


Test Type Black Box Testing
Test Case
3
Number
Test Case Name Booking & Payment

Test Case
Description Users can book and pay properly or not.

Item(s) to be tested

1 Verification of the user can properly book and pay or not.

Specifications
Expected
Input Output/Result
1) Booking procedure is executed 1) Booking is properly executed
or not

2) Payment has been done properly and give


2) Payment is executed or not confirmation
162 | P a g e
Tested By: Seo Kumar Harijan
Test Type Unit Testing
Test Case Number 4
Test Case Name login Testing
Test Case The member should enter user id and password so that member
Description can able to go for the further options.

Item(s) to be tested

1 Verification of the user id and password with the record in the database.

Specifications
Expected
Input Output/Result
1) Correct Admin id and password 1) Successful login

2) Incorrect Id or Password 2) Failure Message

Tested By: Seo Kumar Harijan


Test Type White box testing
Test Case
5
Number
Test Case Name Coding Test
Test Case
Description All the code is executed or not
Item(s) to be tested

1 Verification all of the codes are executed or not.

Specifications
Expected
Input Output/Result
1) Verify all the codes are properly 1) All the codes are verified and properly worked.
working or not.

163 | P a g e
9.3. Validation
Validation in the context of a tourism management system involves confirming that the system
satisfies both the explicit and implicit needs of its stakeholders.
1. Requirement Validation: This involves ensuring that the system fulfills all the specified
requirements. Stakeholders might include travelers, administrators, and booking agents.
Validation confirms that the system meets their expectations in terms of functionalities, user
interfaces, reports, and performance.
2. User Experience Validation: It’s not just about whether the system works, but how well it
works for users. Validation includes assessing the ease of use, intuitiveness, and overall user
satisfaction. Gathering user feedback through surveys, usability tests, and user observation helps
refine the system to meet user needs.
3. Business Validation: The system should align with the business goals of the tourism
organization. This involves validating that the system contributes to increased bookings, efficient
management of resources (hotels, flights, activities), cost-effectiveness, and improved customer
satisfaction.
4. Data Integrity and Accuracy Validation: For a tourism management system, accurate and
up-to-date information is crucial. Validation ensures that the system correctly stores, processes,
and presents data related to bookings, availability, pricing, and customer details.
5. Security and Compliance Validation: The system must adhere to industry standards and
regulations, especially concerning sensitive information like personal details, payment data, and
travel records. Validation confirms that the system is secure against cyber threats and follows
necessary compliance measures (such as GDPR, PCI DSS).
6. Scalability and Performance Validation: As tourism systems encounter varying demands,
validation assesses the system’s ability to handle increased user loads during peak seasons
without compromising performance. It includes stress testing, load testing, and scalability
analysis.
7. Feedback Validation: Continuous feedback from users, administrators, and stakeholders helps
in validating whether the system improvements align with their needs. This feedback loop ensures
that updates and changes positively impact the system's functionality and user satisfaction.
8. Risk Validation: Identifying and mitigating potential risks within the system is crucial.
Validation involves assessing the system for vulnerabilities, dependencies, and any factors that
might lead to system failure or compromise.
9. Regulatory Validation: Confirming that the system complies with industry regulations, travel
standards, and legal requirements is essential. Validation ensures that the system remains updated
and adaptable to evolving regulations.

164 | P a g e
9.4 System Security Measures

Securing an online grocery store is crucial to protect sensitive customer information,


maintain the integrity of your system, and prevent unauthorized access. Here are some
security measures you can implement

SSL/TLS Encryption:
Use SSL/TLS certificates to encrypt data transmitted between the user's browser and your
server. This helps secure sensitive information such as login credentials and payment details.

Secure Passwords:
Enforce strong password policies for both customers and administrators. Encourage users to
create complex passwords and consider implementing multi-factor authentication (MFA) for
added security.

Data Validation and Sanitization:


Validate and sanitize user input on both the client and server sides to prevent common
vulnerabilities like SQL injection and Cross-Site Scripting (XSS) attacks. Laravel provides
built-in protection against SQL injection, but it's essential to validate and sanitize data in all
layers of your application.

Session Management:
Implement secure session management practices. Use secure, randomly generated session
IDs, and ensure that sessions are destroyed after logout or a period of inactivity.

Content Security Policy (CSP):


Implement CSP headers to mitigate against XSS attacks by controlling which resources can
be loaded and executed on your site.

File Upload Security:


If your system allows file uploads, validate file types, limit file sizes, and store files outside
the web root. This prevents attackers from uploading malicious files and executing them on
the server.

Firewalls:
Set up firewalls to filter and monitor incoming and outgoing traffic. Web Application
Firewalls (WAFs) can provide an additional layer of protection against common web
application attacks.

Regular Software Updates:


Keep all software, including the operating system, web server, and Laravel framework, up to
date. Regularly apply security patches to address vulnerabilities.

Secure Payment Processing:


If your online grocery store handles payments, use reputable and secure payment gateways.
Avoid storing sensitive payment information on your servers and comply with Payment Card
Industry Data Security Standard (PCI DSS) requirements.
165 | P a g e
Logging and Monitoring:
Implement logging mechanisms to track and monitor system activities. Regularly review
logs for any suspicious or unauthorized access. Set up alerts for unusual activities.

User Permissions:
Implement the principle of least privilege. Ensure that users, both customers and
administrators, have the minimum level of access required to perform their tasks.

Backups:
Regularly back up your data and ensure that the backup process is tested regularly. This is
crucial for recovering from data loss or a security incident.

Dependency Scanning:
Regularly scan third-party libraries and dependencies for known vulnerabilities. Keep them
updated to the latest secure versions.

Security Training:
Educate your development and operational teams about security best practices. Ensure that
they are aware of the latest security threats and mitigation techniques.

166 | P a g e
10. Maintenance

Software Maintenance refers to the process of modifying and updating a software system after it
has been delivered to the customer. This can include fixing bugs, adding new features, improving
performance, or updating the software to work with new hardware or software systems. The goal
of software maintenance is to keep the software system working correctly, efficiently, and securely,
and to ensure that it continues to meet the needs of the users. Software maintenance is a continuous
process that occurs throughout the entire life cycle of the software system. It is important to have a
well-defined maintenance process in place, which includes testing and validation, version control,
and communication with stakeholders.

Several Key Aspects of Software Maintenance


•Bug Fixing: The process of finding and fixing errors and problems in the software.
•Enhancements: The process of adding new features or improving existing features to meet the
evolving needs of the users.
•Performance Optimization: The process of improving the speed, efficiency, and reliability of
the software.
•Porting and Migration: The process of adapting the software to run on new hardware or
software platforms.
•Re-Engineering: The process of improving the design and architecture of the software to
make it more maintainable and scalable.
•Documentation: The process of creating, updating, and maintaining the documentation for
the software, including user manuals, technical specifications, and design documents.

167 | P a g e
11. Limitation and Future Scope
Tourism Management Systems has its limitations and ongoing areas of improvement, alongside
promising future prospects:

Limitations:

1. Data Security Concerns: Handling sensitive user data like personal information, payment
details, and travel itineraries requires robust security measures to prevent breaches and data theft.

2. Dependency on Connectivity: Tourism systems heavily rely on internet connectivity. In remote


areas or locations with poor connectivity, system functionality and user experience might be
compromised.

3. Dynamic Market Demands: Tourism is a highly dynamic industry with constantly changing
trends and traveler preferences. Adapting the system to cater to evolving demands requires
continuous updates and enhancements.

4. Integration Challenges: Integrating with third-party services (hotels, airlines, activity providers)
and maintaining seamless connections can be complex due to diverse systems and APIs.

5. User Adoption and Adaptation: Users, including travel agents and tourists, might resist using
new systems due to habits, training needs, or unfamiliarity. Overcoming this resistance and
ensuring smooth user adaptation can be a challenge.

Future Scope:

1. Personalization and AI Integration: Implementing AI-driven recommendations and


personalization algorithms can enhance user experience by offering tailored suggestions based on
preferences, past behavior, and real-time data.

2. Blockchain for Security: Utilizing blockchain technology for secure and transparent
transactions, identity verification, and data management could significantly enhance security and
trust within the system.

3. Enhanced Mobility: Integrating with mobile platforms, leveraging location-based services, and
providing seamless mobile experiences can attract and retain users who prefer on-the-go bookings
and travel management.

4. Sustainability Integration: Addressing eco-friendly travel options, promoting responsible


tourism, and incorporating sustainability measures within the system align with the growing trend
of environmentally conscious travel.

5. Predictive Analytics for Demand Forecasting: Using predictive analytics to forecast travel
demand, optimize pricing strategies, and manage resources more efficiently could improve overall
system performance.

2) AR/VR for Enhanced Experiences: Implementing augmented reality (AR) and virtual
reality (VR) technologies could revolutionize travel experiences by offering immersive previews
168 | P a g e
8. Voice and Natural Language Interfaces: Integrating voice assistants and natural language
processing capabilities can simplify interactions and enhance accessibility, allowing users to
perform tasks through voice commands or chatbots.

Continued innovation, adaptation to changing market needs, and advancements in technology will
likely shape the future of tourism management systems, aiming to provide more efficient, secure,
and personalized experiences for travelers and industry stakeholders.

169 | P a g e
12. Conclusion

Future Prospects:
The future prospects of the tourism management system are notably optimistic, driven by the
relentless evolution of technology and the dynamic nature of the global tourism landscape. With
the increasing reliance on digital platforms for travel planning, the system is poised to become an
integral part of the next generation of travel solutions. As advancements in artificial intelligence,
data analytics, and virtual reality continue to unfold, the system can adapt to offer increasingly
personalized and immersive experiences for users, shaping the way people plan and embark on
their journeys.

One key aspect of the future lies in the potential integration of emerging technologies like
blockchain, which could revolutionize transaction security and transparency within the tourism
sector. This could lead to more efficient and secure financial transactions, further enhancing the
trust users place in the system. As the tourism industry continues to rebound from global
challenges, the system's adaptability to incorporate these advancements positions it as a catalyst
for positive change, fostering innovation and setting new standards for user expectations.

The future also holds opportunities for the tourism management system to contribute to
sustainable and responsible tourism practices. By incorporating features that promote eco-friendly
travel choices, the system can align with the growing global consciousness towards
environmental conservation. This evolution is not only a response to market demands but also a
proactive step towards ensuring the long-term viability of the tourism industry, making the system
a key player in the promotion of ethical and sustainable travel.

As the world becomes more interconnected, the system's potential to facilitate cross-cultural
experiences and bridge language barriers becomes increasingly significant. Future versions of the
system may integrate advanced language processing capabilities and cultural insights, allowing
users to navigate diverse destinations with ease. The system's role in fostering a sense of global
unity through travel experiences could redefine the way individuals perceive and engage with
different cultures, contributing to a more interconnected and understanding world.

In conclusion, the future of the tourism management system is bright and dynamic. Its ability to
harness emerging technologies, support sustainable practices, and enhance user experiences
positions it as a key player in the future of travel. As the system continues to evolve, it is likely to
shape the way people plan, experience, and reflect upon their journeys, playing a pivotal role in
the ongoing transformation of the global tourism landscape. The future holds exciting possibilities
for the tourism management system to be at the forefront of innovation, meeting the diverse needs
of travellers in an ever-changing world.

1.Updated Features:

The continual evolution of the tourism management system hinges on its commitment to
integrating updated features that align with the ever-changing landscape of travel technology.
Real-time updates stand out as a cornerstone, providing users with the latest information on
destinations, accommodations, and travel-related services. This feature ensures that the system
remains relevant, offering users accurate and up-to-date recommendations. The ability to deliver

170 | P a g e
timely information is crucial in a fast-paced industry where trends and preferences can shift
rapidly.

User interfaces play a pivotal role in the user experience, and the tourism management system
must prioritize intuitive and user-friendly designs. A streamlined and visually appealing interface
enhances accessibility, catering to a diverse user base. As technology advances, the integration of
artificial intelligence becomes paramount. AI-driven personalization features, such as predictive
analytics and recommendation engines, elevate the user experience by tailoring suggestions based
on individual preferences. These features not only make the system more user-friendly but also
contribute to increased user satisfaction and engagement.

Mobile applications have become integral to the modern travel experience, and the tourism
management system must adapt to this trend. Mobile-friendly interfaces and dedicated
applications empower users to plan and manage their travels conveniently from their
smartphones. The system's responsiveness to different devices and screen sizes ensures a
seamless experience, reflecting the contemporary reliance on mobile technology for travel
planning and on-the-go decision-making.

Cybersecurity features are paramount to the updated functionality of the tourism management
system. With the increasing frequency and sophistication of cyber threats, robust security
measures such as encryption, secure payment gateways, and multi-factor authentication are
essential. Prioritizing the protection of user data and financial transactions builds trust among
users, assuring them that their sensitive information is safeguarded. Regular updates focused on
enhancing security protocols are imperative to address emerging cyber threats and ensure the
system's resilience in the digital landscape.

Regular updates to the system's database are essential to maintaining accuracy and relevance. The
inclusion of new destinations, travel options, and accommodations reflects the dynamic nature of
the travel industry. Additionally, features that facilitate social media integration enable users to
share their travel experiences seamlessly. The system's adaptability to include and showcase
emerging destinations and travel trends ensures that it remains a go-to resource for users seeking
the latest and most exciting travel opportunities. In conclusion, the tourism management system's
commitment to updated features is a cornerstone of its ongoing success, ensuring that it remains a
cutting-edge and indispensable tool for travelers in the digital age.

2.Software Aid in Working Condition:

The tourism management system serves as a reliable and indispensable aid in optimizing the
working conditions of tourism-related businesses. Automation of essential processes, such as
booking and resource management, minimizes errors and enhances overall operational efficiency.
This automation streamlines workflows, reducing manual intervention and allowing businesses to
focus on delivering exceptional services. The system's role as a digital assistant significantly
contributes to time and resource optimization, ensuring that businesses can operate smoothly in
the competitive landscape of the tourism industry.

The user-friendly interface of the tourism management system is a critical factor in its
effectiveness as a software aid. The system's intuitive design simplifies the learning curve for
industry professionals, enabling them to navigate and utilize its features with ease. The
accessibility of the system ensures that businesses, regardless of size or scale, can integrate it into
their operations seamlessly. This adaptability is vital in a diverse industry where businesses may
have varying needs and operational structures.
171 | P a g e
Ongoing technical support and maintenance are crucial to keeping the tourism management
system in optimal working condition. Regular updates, bug fixes, and improvements contribute to
the longevity and reliability of the software. Ensuring that the system aligns with the latest
technological standards and security protocols is imperative to safeguarding the integrity of user
data and maintaining the trust of both businesses and end-users. A well-maintained and supported
system reflects a commitment to excellence and customer satisfaction, solidifying its position as a
trusted tool for tourism businesses.

The system's adaptability to different types of tourism-related businesses, including travel


agencies, hotels, and tour operators, underscores its versatility as a software aid. Customization
features that allow businesses to tailor the system to their specific needs enhance its utility. This
adaptability ensures that the system is not a one-size-fits-all solution but can be tailored to suit the
unique requirements and workflows of different businesses within the tourism sector.

As businesses increasingly transition to digital solutions, the tourism management system's role
as a software aid becomes integral to success. Its ability to centralize and organize data, automate
processes, and provide comprehensive analytics supports informed decision-making. Ultimately,
the tourism management system's impact on the working conditions of tourism-related businesses
is substantial, offering a technologically advanced solution that contributes to increased
efficiency, reduced operational costs, and an overall enhanced ability to thrive in the competitive
tourism industry

3.Scope and Impact on Mankind:

The scope of the tourism management system extends far beyond individual travel experiences,
playing a pivotal role in shaping the broader impact on mankind. Its contribution to economic
growth within the tourism sector generates employment opportunities and stimulates local
economies. This economic impact fosters community development, supporting businesses and
enhancing the livelihoods of those in the tourism industry.

Furthermore, the system's encouragement of sustainable and responsible tourism practices aligns
with the global movement towards environmental conservation. By promoting eco-friendly travel
choices and raising awareness about the environmental impact of tourism, the system contributes
to a more sustainable and ethical approach to global exploration.

The positive impact on cultural exchange and understanding is another significant aspect. The
tourism management system facilitates journeys that transcend borders, fostering a sense of
global unity. As individuals immerse themselves in diverse cultures, the system becomes a
catalyst for breaking down stereotypes and promoting a more interconnected and harmonious
world.

In conclusion, the tourism management system's impact on mankind is multifaceted,


encompassing economic growth, environmental responsibility, and cultural understanding. Its role
extends beyond facilitating travel logistics, making it a key player in shaping a more responsible
and interconnected global society.

172 | P a g e
4.Integration of Counseling Sessions:

The integration of counseling sessions into the tourism management system represents a
significant advancement in enhancing the user experience. Virtual sessions with travel experts

provide users with personalized guidance, addressing concerns, and ensuring well-informed
decision-making. This personalized touch not only enhances user satisfaction but also establishes
the system as a trusted companion in the travel planning process.

As the travel industry becomes increasingly competitive, the integration of counseling sessions
addresses the growing demand for tailored and experiential travel. By combining technology with
human expertise, the system bridges the gap between digital convenience and the nuanced advice
that travel experts can provide. This fusion creates a holistic and supportive platform that
resonates with users seeking more than just transactional interactions.

The integration of counseling sessions also contributes to the system's differentiation in a


crowded market. In an era where personalization is key, offering users the opportunity to engage
with travel experts adds a layer of authenticity and reliability. This feature positions the tourism
management system as a comprehensive solution, catering not only to logistical needs but also to
the emotional and experiential aspects of travel.

In conclusion, the integration of counseling sessions elevates the tourism management system to a
new level of user engagement and satisfaction. By combining technological efficiency with
human touch, the system becomes a valuable ally for users navigating the complexities of travel,
ensuring a more enjoyable and fulfilling experience.

5.Integration of Questionnaires:
The integration of questionnaires into the tourism management system represents a strategic
initiative to cultivate a deeper understanding of user experiences and preferences. By
incorporating well-designed surveys, the system can capture nuanced feedback on various aspects
of the travel planning process. This comprehensive approach enables the collection of valuable
insights into user satisfaction, pain points, and emerging trends, forming the foundation for data-
driven improvements.

Through the systematic use of questionnaires, the tourism management system creates a dynamic
feedback loop. Regularly soliciting user input fosters a continuous improvement mindset,
ensuring that the system remains agile and responsive to evolving user expectations. The iterative
nature of this process enables developers to refine features, address user concerns, and stay ahead
of industry shifts, ultimately enhancing the system's overall effectiveness and relevance.

The analysis of questionnaire data plays a pivotal role in shaping the system's evolution. By
employing advanced analytics, developers can extract meaningful patterns and trends from user
responses. This data-driven approach provides actionable insights that guide decision-making,
allowing the system to adapt to changing market dynamics and user preferences. From identifying
popular travel destinations to refining user interfaces, the integration of questionnaires serves as a
compass for strategic development.

173 | P a g e
Bibliography
1. Buhalis, D., & Law, R. (2008). Progress in information technology and tourism management: 20
years on and 10 years after the Internet—The state of eTourism research. Tourism Management,
29(4), 609-623.

2. Gretzel, U., Sigala, M., Xiang, Z., & Koo, C. (2015). Smart tourism: foundations and
developments. Electronic Markets, 25(3), 179-188.

3. Law, R., & Hsu, C. (2006). Customer Relationship Management in Hospitality: An Application
of Data Mining. In Information and Communication Technologies in Tourism 2006 (pp. 392-403).
Springer.

4. Sigala, M. (2015). Collaborative commerce in tourism: implications for research and industry.
Current Issues in Tourism, 18(5), 405-421.

5. Xiang, Z., Du, Q., Ma, Y., & Fan, W. (2017). A comparative analysis of major online review
platforms: Implications for social media analytics in hospitality and tourism. Tourism Management,
58, 51-65.

6. Buhalis, D., & Amaranggana, A. (2014). Smart tourism destinations enhancing tourism
experience through personalisation of services. In Information and communication technologies in
tourism 2014 (pp. 377-389). Springer.

7. Neuhofer, B., Buhalis, D., & Ladkin, A. (2015). Technology as a catalyst of change: Enablers
and barriers of the tourist experience and their consequences. The Routledge Handbook of
Transport Economics, 253.

8. Sigala, M. (2012). The application of e‐CRM in the hotel industry. Managing Service Quality:
An International Journal.

9. Werthner, H., & Ricci, F. (2004). E-commerce and tourism. Communications of the ACM,
47(12), 101-105.

10. Sharda, R., Delen, D., & Turban, E. (2014). Business intelligence: a managerial perspective on
analytics. Pearson UK.

11. Neuhofer, B., Buhalis, D., & Ladkin, A. (2019). Technology as a Catalyst of Change: Enablers
and Barriers of Tourist Experiences and Co-Creation. In Progress in Tourism Management (Vol.
70, pp. 1-18). Elsevier.

12. Huang, Y. C., Backman, K. F., Backman, S. J., & Chang, L. L. (2016). Exploring the Impacts
of Web 2.0 Applications on Knowledge Sharing: A Delphi Study. Journal of Hospitality and
Tourism Technology, 7(1), 4-19.

13. Neidhardt, J., Neuhofer, B., & Buhalis, D. (2019). Technology as a catalyst of change: enablers
and barriers of tourist experiences and co-creation. Journal of Destination Marketing &
Management, 12, 19-29.

14. Sigala, M. (2018). Tourism and COVID-19: Impacts and implications for advancing and
resetting industry and research. Journal of Business Research, 117, 312-321.
15. Xiang, Z., Du, Q., & Ma, Y. (2017). A comparative analysis of major online review platforms:
Implications for social media analytics in hospitality and tourism. Tourism Management, 58, 51-
65.

16. Neuhofer, B., Buhalis, D., & Ladkin, A. (2015). Technology as a catalyst of change: Enablers
and barriers of the tourist experience and their consequences. The Routledge Handbook of
Transport Economics, 253.

17. Buhalis, D., & Amaranggana, A. (2015). Smart tourism destinations enhancing tourism
experience through personalisation of services. In Information and communication technologies in
tourism 2015 (pp. 377-389). Springer.

18. Law, R., & Hsu, C. (2006). Customer relationship management in hospitality: An application
of data mining. In Information and communication technologies in tourism 2006 (pp. 392-403).
Springer.

19. Wang, D., Park, S., & Fesenmaier, D. R. (2012). The role of smartphones in mediating the
touristic experience. Journal of Travel Research, 51(4), 371-387.

20. Huang, L., & Li, X. (2017). Understanding the effects of augmented reality advertising: The
roles of presence and flow. International Journal of Advertising, 36(1), 143-157.

21. Sigala, M., Christou, E., & Gretzel, U. (2012). Adoption of social media in small and medium-
sized enterprises: a theoretical perspective. International Journal of Entrepreneurship and Small
Business, 17(3), 325-343.

22. Xiang, Z., & Gretzel, U. (2010). Role of social media in online travel information search.
Tourism Management, 31(2), 179-188.

23. Law, R., & Cheung, C. (2006). Importance of hotel website dimensions and attributes:
perceptions of online browsers and online purchasers. Journal of Hospitality & Tourism Research,
30(3), 295-312.

24. Neuhofer, B., Buhalis, D., & Ladkin, A. (2014). Technology as a catalyst of change: Enablers
and barriers of tourist experiences and co-creation. Proceedings of the 21st International
Conference on Information and Communication Technologies in Travel and Tourism, Dublin,
Ireland.

25. Buhalis, D., & Foerste, M. (2015). SoCoMo marketing for travel and tourism: Empowering co-
creation of value. Journal of Destination Marketing & Management, 4(3), 151-161.

26. Gretzel, U., Werthner, H., Koo, C., & Lamsfus, C. (2015). Conceptual foundations for
understanding smart tourism ecosystems. Computers in Human Behavior, 50, 558-563.

27. Xiang, Z., & Du, Q. (2017). Application of big data in tourism management: A case study of
smart tourism cities. Journal of Travel Research, 57(2), 232-245.

28. Neuhofer, B., Buhalis, D., & Ladkin, A. (2015). Technology as a catalyst of change: Enablers
and barriers of the tourist experience and their consequences. The Routledge Handbook of
Transport Economics, 253.

29. Sigala, M. (2017). Tourism and COVID-19: Impacts and implications for advancing and
resetting industry and research. Journal of Business Research, 117, 312-321.
30. Sharda, R., Delen, D., & Turban, E. (2014). Business intelligence: a managerial perspective on
analytics. Pearson UK.

31. Buhalis, D., & Amaranggana, A. (2015). Smart tourism destinations enhancing tourism
experience through personalisation of services. In Information and communication technologies in
tourism 2015 (pp. 377-389). Springer.

32. Neuhofer, B., Buhalis, D., & Ladkin, A. (2019). Technology as a Catalyst of Change: Enablers
and Barriers of Tourist Experiences and Co-Creation. In Progress in Tourism Management (Vol.
70, pp. 1-18). Elsevier.

33. Sigala, M. (2012). The application of e‐CRM in the hotel industry. Managing Service Quality:
An International Journal.

34. Werthner, H., & Ricci, F. (2004). E-commerce and tourism. Communications of the ACM,
47(12), 101-105.

35. Huang, Y. C., Backman, K. F., Backman, S. J., & Chang, L. L. (2016). Exploring the Impacts
of Web 2.0 Applications on Knowledge Sharing: A Delphi Study. Journal of Hospitality and
Tourism Technology, 7(1), 4-19.

36. Sigala, M. (2018). Tourism and COVID-19: Impacts and implications for advancing and
resetting industry and research. Journal of Business Research, 117, 312-321.

37. Xiang, Z., Du, Q., & Ma, Y. (2017). A comparative analysis of major online review platforms:
Implications for social media analytics in hospitality and tourism. Tourism Management, 58, 51-
65.

38. Buhalis, D., & Law, R. (2008). Progress in information technology and tourism management:
20 years on and 10 years after the Internet—The state of eTourism research. Tourism Management,
29(4), 609-623.

39. Law, R., & Hsu, C. (2006). Customer Relationship Management in Hospitality: An Application
of Data Mining. In Information and Communication Technologies in Tourism 2006 (pp. 392-403).
Springer.

40. Wang, D., Park, S., & Fesenmaier, D. R. (2012). The role of smartphones in mediating the
touristic experience. Journal of Travel Research, 51(4), 371-387.

41. Sigala, M. (2018). The impact of customer co‐creation and value on service experience in high‐
contact services. Journal of Services Marketing.

42. Xiang, Z., Du, Q., Ma, Y., & Fan, W. (2017). A comparative analysis of major online review
platforms: Implications for social media analytics in hospitality and tourism. Tourism Management,
58, 51-65.

43. Buhalis, D., & Law, R. (2008). Progress in information technology and tourism management:
20 years on and 10 years after the Internet—The state of eTourism research. Tourism Management,
29(4), 609-623.
44. Sigala, M. (2015). Collaborative commerce in tourism: implications for research and industry.
Current Issues in Tourism, 18(5), 405-421.

45. Xiang, Z., Du, Q., Ma, Y., & Fan, W. (2017). A comparative analysis of major online review
platforms: Implications for social media analytics in hospitality and tourism. Tourism Management,
58, 51-65.

46. Buhalis, D., & Amaranggana, A. (2014). Smart tourism: foundations and developments.
Electronic Markets, 25(3), 179-188.

47. Neuhofer, B., Buhalis, D., & Ladkin, A. (2015). Technology as a catalyst of change: Enablers
and barriers of the tourist experience and their consequences. The Routledge Handbook of
Transport Economics, 253.

48. Sigala, M. (2012). The application of e‐CRM in the hotel industry. Managing Service Quality:
An International Journal.

49. Gretzel, U., Sigala, M., Xiang, Z., & Koo, C. (2015). Smart tourism: foundations and
developments. Electronic Markets, 25(3), 179-188.

50. Buhalis, D., & Law, R. (2008). Progress in information technology and tourism management:
20 years on and 10 years after the Internet—The state of eTourism research. Tourism Management,
29(4), 609-623.

51. Sigala, M., & Christou, E. (2019). Influencing the online consumer's decision to purchase.
Journal of Destination Marketing & Management, 12, 42-52.

52. Neuhofer, B., Buhalis, D., & Ladkin, A. (2014). Technology as a catalyst of change: Enablers
and barriers of tourist experiences and co-creation. Proceedings of the 21st International
Conference on Information and Communication Technologies in Travel and Tourism, Dublin,
Ireland.

53. Buhalis, D., & Foerste, M. (2015). SoCoMo marketing for travel and tourism: Empowering co-
creation of value. Journal of Destination Marketing & Management, 4(3), 151-161.

54. Gretzel, U., Werthner, H., Koo, C., & Lamsfus, C. (2015). Conceptual foundations for
understanding smart tourism ecosystems. Computers in Human Behavior, 50, 558-563.

55. Neuhofer, B., Buhalis, D., & Ladkin, A. (2019). Technology as a Catalyst of Change: Enablers
and Barriers of Tourist Experiences and Co-Creation. In Progress in Tourism Management (Vol.
70, pp. 1-18). Elsevier.

56. Xiang, Z., & Gretzel, U. (2010). Role of social media in online travel information search.
Tourism Management, 31(2), 179-188.

57. Law, R., & Cheung, C. (2006). Importance of hotel website dimensions and attributes:
perceptions of online browsers and online purchasers. Journal of Hospitality & Tourism Research,
30(3), 295-312.

58. Sigala, M. (2015). Collaborative commerce in tourism: implications for research and industry.
Current Issues in Tourism, 18(5), 405-421.
59. Buhalis, D., & Amaranggana, A. (2015). Smart tourism destinations enhancing tourism
experience through personalisation of services. In Information and communication technologies in
tourism 2015 (pp. 377-389). Springer.

60. Neuhofer, B., Buhalis, D., & Ladkin, A. (2015). Technology as a catalyst of change: Enablers
and barriers of the tourist experience and their consequences. The Routledge Handbook of
Transport Economics, 253.

61. Sigala, M. (2012). The application of e‐CRM in the hotel industry. Managing Service Quality:
An International Journal.

62. Werthner, H., & Ricci, F. (2004). E-commerce and tourism. Communications of the ACM,
47(12), 101-105.

63. Huang, Y. C., Backman, K. F., Backman, S. J., & Chang, L. L. (2016). Exploring the Impacts
of Web 2.0 Applications on Knowledge Sharing: A Delphi Study. Journal of Hospitality and
Tourism Technology, 7(1), 4-19.

64. Sigala, M. (2018). Tourism and COVID-19: Impacts and implications for advancing and
resetting industry and research. Journal of Business Research, 117, 312-321.

65. Sharda, R., Delen, D., & Turban, E. (2014). Business intelligence: a managerial perspective on
analytics. Pearson UK.

66. Buhalis, D., & Amaranggana, A. (2014). Smart tourism: foundations and developments.
Electronic Markets, 25(3), 179-188.

67. Xiang, Z., & Du, Q. (2017). Application of big data in tourism management: A case study of
smart tourism cities. Journal of Travel Research, 57(2), 232-245.

68. Sigala, M. (2018). The impact of customer co‐creation and value on service experience in high‐
contact services. Journal of Services Marketing.

69. Xiang, Z., & Du, Q., Ma, Y., & Fan, W. (2017). A comparative analysis of major online review
platforms: Implications for social media analytics in hospitality and tourism. Tourism Management,
58, 51-65.

70. Buhalis, D., & Law, R. (2008). Progress in information technology and tourism management:
20 years on and 10 years after the Internet—The state of eTourism research. Tourism Management,
29(4), 609-623.

71. Xiang, Z., & Du, Q. (2015). Data-driven and intelligent tourism: A review. Tourism Recreation
Research, 40(3), 305-318.

72. Buhalis, D. (2003). eTourism: Information technology for strategic tourism management.
Pearson Education.

73. Neuhofer, B., Buhalis, D., & Ladkin, A. (2015). Technology as a catalyst of change: Enablers
and barriers of the tourist experience and their consequences. The Routledge Handbook of
Transport Economics, 253.
74. Sigala, M. (2014). Social media and the empowerment of the independent traveler: A critical
analysis. Tourism Recreation Research, 39(3), 325-340.

75. Huang, L., & Li, X. (2017). Understanding the effects of augmented reality advertising: The
roles of presence and flow. International Journal of Advertising, 36(1), 143-157.

76. Xiang, Z., Du, Q., & Ma, Y. (2017). A comparative analysis of major online review platforms:
Implications for social media analytics in hospitality and tourism. Tourism Management, 58, 51-
65.

77. Werthner, H., & Klein, S. (1999). Information technology and tourism: a challenging
relationship. Vienna, Austria: Springer-Verlag.

78. Sigala, M. (2015). Evolving applications of social media in e-tourism: A review. Tourism
Management Perspectives, 13, 41-49.

79. Shih, L., & Chen, C. (2010). An empirical study of the use of Web 2.0 tourism marketing.
Proceedings of the International Conference on Electronic Business (ICEB), 11, 685-692.

80. Xiang, Z., Du, Q., Ma, Y., & Fan, W. (2017). A comparative analysis of major online review
platforms: Implications for social media analytics in hospitality and tourism. Tourism Management,
58, 51-65.

81. Buhalis, D. (2000). Marketing the competitive destination of the future. Tourism Management,
21(1), 97-116.

82. Neuhofer, B., Buhalis, D., & Ladkin, A. (2014). Technology as a catalyst of change: Enablers
and barriers of tourist experiences and co-creation. Proceedings of the 21st International
Conference on Information and Communication Technologies in Travel and Tourism, Dublin,
Ireland.

83. Xiang, Z., Du, Q., Ma, Y., & Fan, W. (2017). A comparative analysis of major online review
platforms: Implications for social media analytics in hospitality and tourism. Tourism Management,
58, 51-65.

84. Sigala, M. (2012). The application of e‐CRM in the hotel industry. Managing Service Quality:
An International Journal.

85. Buhalis, D., & Law, R. (2008). Progress in information technology and tourism management:
20 years on and 10 years after the Internet—The state of eTourism research. Tourism Management,
29(4), 609-623.

86. Wang, D., Park, S., & Fesenmaier, D. R. (2012). The role of smartphones in mediating the
touristic experience. Journal of Travel Research, 51(4), 371-387.

87. Gretzel, U., Werthner, H., Koo, C., & Lamsfus, C. (2015). Conceptual foundations for
understanding smart tourism ecosystems. Computers in Human Behavior, 50, 558-563.

88. Sigala, M. (2018). Tourism and COVID-19: Impacts and implications for advancing and
resetting industry and research. Journal of Business Research, 117, 312-321.
89. Law, R., & Cheung, C. (2006). Importance of hotel website dimensions and attributes:
perceptions of online browsers and online purchasers. Journal of Hospitality & Tourism Research,
30(3), 295-312.

90. Sigala, M., & Christou, E. (2019). Influencing the online consumer's decision to purchase.
Journal of Destination Marketing & Management, 12, 42-52.

91. Xiang, Z., Du, Q., & Ma, Y. (2017). A comparative analysis of major online review platforms:
Implications for social media analytics in hospitality and tourism. Tourism Management, 58, 51-
65.

92. Buhalis, D., & Law, R. (2008). Progress in information technology and tourism management:
20 years on and 10 years after the Internet—The state of eTourism research. Tourism Management,
29(4), 609-623.

93. Sigala, M., & Christou, E. (2019). Influencing the online consumer's decision to purchase.
Journal of Destination Marketing & Management, 12, 42-52.

94. Law, R., & Cheung, C. (2006). Importance of hotel website dimensions and attributes:
perceptions of online browsers and online purchasers. Journal of Hospitality & Tourism Research,
30(3), 295-312.

95. Sigala, M. (2015). Collaborative commerce in tourism: implications for research and industry.
Current Issues in Tourism, 18(5), 405-421.

96. Xiang, Z., Du, Q., Ma, Y., & Fan, W. (2017). A comparative analysis of major online review
platforms: Implications for social media analytics in hospitality and tourism. Tourism Management,
58, 51-65.

97. Buhalis, D., & Amaranggana, A. (2014). Smart tourism: foundations and developments.
Electronic Markets, 25(3), 179-188.

98. Neuhofer, B., Buhalis, D., & Ladkin, A. (2015). Technology as a catalyst of change: Enablers
and barriers of the tourist experience and their consequences. The Routledge Handbook of
Transport Economics, 253.

99. Sigala, M. (2012). The application of e‐CRM in the hotel industry. Managing Service Quality:
An International Journal.

100. Shih, L., & Chen, C. (2010). An empirical study of the use of Web 2.0 tourism marketing.
Proceedings of the International Conference on Electronic Business (ICEB), 11, 685-692.
References
1. https://phpgurukul.com/tourism-management-system-free-download/
2. https://www.scribd.com/document/405408951/Tourism-Management-System-docx
3. https://projectsgeek.com/2016/01/tourism-management-system.html
4. https://www.youtube.com/watch?v=cXcie_Si9bI&t=29s&ab_channel=CampCodes
5. https://www.campcodes.com/
6. https://github.com/topics/tourism-management-system
7. https://code4berry.com/projects/tourism.php
8. https://icons.getbootstrap.com/icon
9. https://www.npmjs.com/package/googleapis
10. https://wowjs.uk/
11. https://getbootstrap.com/docs/4.0/getting-started/download/
12. https://github.com/twbs/bootstrap/blob/main/LICENSE
13. https://openjsf.org/
14. https://jqueryui.com/
15. https://owlgraphic.com/owlcarousel/
16. https://fontawesome.com/
17. https://www.w3schools.com/bootstrap/bootstrap_ref_comp_glyphs.asp
18. https://animate.style/
19. https://opensource.org/license/mit/
20. https://linearicons.com/free
21. https://perxis.com/
22. https://w3layouts.com/
23. https://creativecommons.org/licenses/by/3.0/
24. https://www.guru99.com/laravel-tutorial.html
25. https://www.w3schools.in/laravel/application-directory-structure
26. https://laravel-news.com/your-first-laravel-application
27. https://github.com/laravel/laravel
28. https://www.interviewbit.com/blog/javascript-projects/
29. https://mikkegoes.com/html-and-css-projects/
30. https://devdevshow.com/html-css-projects-for-beginners-with-source-code/
31. https://www.bing.com/search q=javascript+projects+with+php&
32. form=ANNTH1&refig=E6449C77 3D874084B547CB30ED7182DB
33. https://hackr.io/blog/javascript-projects
34. https://www.w3schools.com/js/js_array_const.asp
35. https://support.microsoft.com/en-us/topic/how-to-enable-javascript-in-windows-
88d27b37-6484-7fc0-17df-872f65168279
36. https://learnjavascript.online/
37. https://www.bing.com/search?
38. javascript&form=ANNTH1&refig=0f3bfe2c6ab643f9b90a93531c589aa1
39. https://www.javatpoint.com/javascript-closest
40. https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Client-side_web_APIs
41. https://javascript.info/intro#what-can-t-in-browser-javascript-do
42. https://www.geeksforgeeks.org/how-to-create-a-form-dynamically-with-the-
43. javascript/
44. https://www.geeksforgeeks.org/javascript-string-reference/?ref=shm
45. https://www.geeksforgeeks.org/javascript-math-reference/?ref=shm
46. https://stackoverflow.com/questions/tagged/php
47. https://fontawesome.com/search?f=brands&o=r
48. https://www.w3schools.com/css/
49. https://drfurithemes.com/farmart2/
50. https://designreset.com/preview-equation/default/index.html
51. https://chat.openai.com/
52. https://www.apachefriends.org/hosting.html
53. https://developer.mozilla.org/en-US/docs/Web/HTML
54. https://feathericons.com/
55. https://www.awwwards.com/websites/e-commerce/
56. https://www.geeksforgeeks.org/laravel/
57. https://www.w3schools.in/laravel/application-directory-structure
58. https://laravel-news.com/your-first-laravel-application
59. https://github.com/laravel/laravel
60. https://www.interviewbit.com/blog/javascript-projects/
61. https://mikkegoes.com/html-and-css-projects/
62. https://devdevshow.com/html-css-projects-for-beginners-with-source-code/
63. https://www.bing.com/search q=javascript+projects+with+php&
64. form=ANNTH1&refig=E6449C77 3D874084B547CB30ED7182DB
65. https://hackr.io/blog/javascript-projects
66. https://www.w3schools.com/js/js_array_const.asp
67. https://support.microsoft.com/en-us/topic/how-to-enable-javascript-in-windows-
88d27b37-6484-7fc0-17df-872f65168279
68. https://learnjavascript.online/
69. https://www.bing.com/search?
q=javascript&form=ANNTH1&refig=0f3bfe2c6ab643f9b90a93531c589aa1
70. https://www.javatpoint.com/javascript-closest
71. https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Client-side_web_APIs
72. https://javascript.info/intro#what-can-t-in-browser-javascript-do
73. https://www.geeksforgeeks.org/how-to-create-a-form-dynamically-with-the-
javascript/
74. https://www.geeksforgeeks.org/javascript-string-reference/?ref=shm
75. https://www.geeksforgeeks.org/javascript-math-reference/?ref=s

You might also like