Professional Documents
Culture Documents
Template Rapport ISTIC PFE
Template Rapport ISTIC PFE
Template Rapport ISTIC PFE
Graduation Report
Presented for the purpose of obtaining
Bachelor in Computer Engineering
Curriculum: Network and Systems Engineering
By
Anis Ben Youssef and Med Haroun Bouchamia
Company Name: Tabaani Inc
Publicly presented on May 26, 2023, in front of the jury composed by:
Graduation Report
Presented for the purpose of obtaining
Bachelor in Computer Engineering
Curriculum: Network and Systems Engineering
By
Anis Ben Youssef and Med Haroun Bouchamia
Company Name: Tabaani Inc
Date: Date:
Signature: Signature:
Dedications
We dedicate this work to everyone who has supported and inspired us. Our
families. Our parents, our brothers, our sisters. You provided us with the
endless support we needed. You understood our crazy dreams and you pushed
us forward as we chase them! Thank you.
To every teacher who supported and inspired us. Thank you for teaching
us valuable things, for challenging us and pushing us to our limits, and for
making us believe in ourselves.
To our friends. When life gets tough, you are always there to cheer us up.
Thank you for being such amazing friends. We could never do it without
you.
i
Acknowledgment
Before presenting our work, we would like to thank all the people who contributed to the
success of our internship and who helped us in the preparation of this report.
First of all, we want to express our deep gratitude to the Tabaani family especially
Mr. Hamza Moussi for his help, relevant explanations, and valuable advice that have had
the greatest impact on this successful project, we would also like to thank Mr. Moukim
Hfaidh for helping us and being very kind and supportive.
We would like to thank our academic supervisor, Mrs. Nesrine Ben Rjab, a Master
Assistant at the Higher Institute of Information and Communication Technologies, for
her help and the valuable lessons we learned from her.
We would also like to thank all our professors for being very kind and caring. We love
you from the bottom of our hearts.
Finally, we would like to express our profound gratitude to the Director of the Higher
Institute of Information and Communication Technologies Mr. Lazher MANAI, the Head
of the study Mrs. Neila BEDOUI, and all members of the administration for the efforts
and care they have given to facilitate and make sure that we work in good conditions.
ii
Contents
General Introduction 1
1 Project context 2
1.1 Host overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.1 Presentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.2 Information about the company . . . . . . . . . . . . . . . . . . . . 2
1.1.3 Company activities . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Project presentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 Project description . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 Problematic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.3 Study of the existing . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.4 Proposed solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Work methodology and planning . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.1 Agile Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.2 Methodology adopted . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3 Sprint planning 13
3.1 Sprint 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2 Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4 Sprint planning 20
4.1 Sprint 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.2 Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5 Implementation 24
5.1 Work Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.1.1 Hardware Environment . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.1.2 Software Environment . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.2 Development Technologies: . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
iii
Contents Contents
5.2.1 HTML5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.2.2 CSS 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.2.3 React JS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.2.4 Node JS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.2.5 JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.2.6 TypeScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.2.7 Firebase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.3 Architecture of the solution . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.3.1 Technical architecture . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.3.2 Used architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.3.3 Design pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.4 Production . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
General Conclusion 46
Bibliography 47
iv
List of Figures
v
List of Figures List of Figures
vi
List of Tables
vii
General Introduction
Traveling is a way for people to discover new cultures, meet people from all walks of life,
open up to other perspectives, and strengthen bonds between people. It is also a vehicle
for personal development, as it can help people step out of their comfort zone, learn new
skills, and grow as individuals.
The realm of tourism wields its immense power, pouring forth billions of dollars as a
wellspring of revenue year after year. In the year 2019, the international traveler influx
reached a staggering 1.5 billion, surging by 4 percent when juxtaposed with the previous
year, as reported by the esteemed establishment known as World of Tourism. This mon-
umental statistic serves as a testament to the burgeoning significance of tourism within
the economic sphere, fueling job creation and propelling the growth of numerous nations’
economies. Given its dynamic and fiercely competitive nature, this industry demands
the perpetual prowess to adapt to the ever-evolving needs and desires of its clientele.
Thus, the paramount focal point for tourism enterprises resides in the realm of customer
satisfaction, safety, and pure delight.
In this context, Tabaani works on facilitating the connection between local Ambas-
sadors with travelers from all around the world by hosting a private tour or experience in
their city. The report is divided into five chapters:
The first chapter aims to present the host company Tabaani, the project presentation,
the project requirements, and the proposed solution. as well as the methodology adopted.
The second chapter is devoted to defining the actors and specifying their functional
and non-functional needs, then presenting the system modelization.
The third and fourth chapters focus on the sprints of the Tabaani Host Academy
project and describe how the development process goes.
The fifth chapter is dedicated to the work environment, the technologies used, and the
realization of the Tabaani platform development.
In the end, we close our present report with a general conclusion.
1
Chapter 1
Project context
Introduction
In this chapter, we dedicated the presentation of the host company to which we carried
out our end-of-study graduation project. Then, we will present the project context and
describe the proposed solution. Finally, we will explain the work methodology followed
to carry out our project.
1.1.1 Presentation
Tabaani is a start-up founded on Mars in 2020. It is a web platform where travelers
looking for authentic unique experiences get to connect with Locals offering tour and hos-
pitality services allowing them to immerse into the local community and feel like locals.
This platform allows residents to monetize their free time while promoting their city and
providing sustainable tourism services. [20]
2
Chapter 1 1.2. Project presentation
Company Characteristics
Sector Technology and Communications
Size 12 employees
Head office Mohamed V, Tunis
Type For Profit
Date of creation 2020
Contact contact@tabaani.co
Tabaani Structure
3
Chapter 1 1.2. Project presentation
thus offering a more authentic and immersive travel experience. This evolution has also
created new opportunities for people who want to become hosts and share their culture
with travelers from all over the world. Tabaani is an ever-evolving platform that aims to
connect travelers with local hosts based on their destination. The company is constantly
looking for new ideas to guarantee an unforgettable experience for its users. In this order,
our idea is to offer an online training solution accessible to all potential hosts on the web
platform, aiming to help them become competent and professional hosts.
1.2.2 Problematic
Taabani has made a training program for the new host candidates by creating youtube
videos to teach them the basics of hosting and how to create a good experience for trav-
elers, but it faced major problems such as high dropout rates and a lack of interaction.
Tabaani worked to fix these problems, by adding some educational articles and case stud-
ies to the program, But they were unable to rectify these issues.
Figure 1.3 shows the old Tabaani training program is based on a youtube course which
has many disadvantages such as:
• Quality of content: Host candidates may lose motivation or become displeased due
to the poor quality shown in the content.
• Absence of progress-tracking: Tabaani administration team can’t guarantee that
the host candidate completes the course and will be able to become the promised
host that the company desires.
4
Chapter 1 1.3. Work methodology and planning
5
Chapter 1 1.3. Work methodology and planning
potent agile framework, meticulously engineered to bestow unceasing value upon the
customer’s doorstep throughout the entire project’s development.
At the heart of Scrum resides a noble quest: to satiate the customer’s yearnings,
nurtured within an environment of transparent communication, shared responsibility, and
ceaseless forward motion. Like a seedling sprouting from a faint notion, the development
process embarks upon its journey, intricately crafting a prioritized compendium of coveted
traits (product backlog) as envisioned by the product owner.
Finally, the why and how of Scrum, or the tools a Scrum team uses to prioritize and
communicate its work.
6
Chapter 1 1.3. Work methodology and planning
Conclusion
In this first chapter, we started by putting the project in its general context by presenting
the host organization, detailing the existing situation, and showing its limitations. Then,
we spread out the methodological approach used for the implementation of the applica-
tion. In the next chapter, we conduct a theoretical study in order to analyze the needs
and study the general design of our system.
7
Chapter 2
• Admin: The Admin is the person who manages and controls the website:
- Manage course content, and enrollments.
- Generate reports on course enrollment and student progress.
8
Chapter 2 2.1. Analysis and requirements specification
• Authentification: The host, and admin will have to authenticate in order to ac-
cess the application.
• Browse and search: The host candidate will have the freedom to browse and
search in the available course.
• Start course: The host candidate will have the freedom to start any course
program anytime.
• Track progress: The user will be able to track his progress on each course.
9
Chapter 2 2.2. Modelization
• Manage course content: The admin will be able to add, update, and delete
course content.
• User interface: to provide a good look and a good interface on the platform that
attracts users.
• User experience: To offer the user a good experience when using the platform.
• Security: The platform must have a secure access system based on authentication
and data encryption.
2.2 Modelization
In this section, we will represent our global class diagram and describe its different ele-
ments.
10
Chapter 2 2.3. Product backlog
The class diagram (Figure 2.7) represents the internal structure of the system. It
shows the different classes and relationships that present the structure of our database.
• User: It is the class that represents our User, it contains information like email,
password, phone number, and login status.
• User activity: It is the class that represents the User activity, it contains infor-
mation like the user’s last login and time logged in.
• Register: It is the class that represents the Registration process, it contains infor-
mation like first name, last name, email, password, phone number, and age.
• Host: It is the class that represents our Host, it contains information like hostname,
host id, age, and address.
• Admin: It is the class that represents our Admin, it contains information like admin
name and admin id.
• Course: It is the class that represents the Course, it contains information like
course id, date added, and course language.
• Test: It is the class that represents the course Test, it contains information like test
id, date added, and course languages.
• Video: It is the class that represents the course Video, it contains information like
the video title and video duration.
• Article: It is the class that represents the course Article, it contains information
like article title and article length.
11
Chapter 2 2.4. Sprint planning
Sprint 1 Sprint 2
Progress Tracking
Conclusion
In this chapter, we have prepared our work plan. Indeed, we identified the actors and
the use cases. Next, we have captured the functional and non-functional needs of our
application. Then, we showed our application backlog and our project sprint plan.
12
Chapter 3
Sprint planning
Introduction
In this chapter, we will delve into the details of the first sprint of our project. Our
focus will be on the Host User but first the development of the product backlog, and
the analysis of the various tasks. As we progress through this chapter, we will provide a
detailed analysis of each step in the sprint, the challenges encountered, and the solutions
implemented. Our aim is to present a comprehensive overview of the sprint planning and
execution process, highlighting our approach to developing a high-quality product that
meets the needs of our users.
3.1 Sprint 1
Before starting it is important to set up a web development environment with the nec-
essary tools and technologies: This step involves setting up a development environment
with the tools and technologies needed to build the website. This includes installing a
code editor, such as Visual Studio Code, and setting up a local development server, such
as XAMPP, to run the website.
Create the registration and login system: A user registration and login system is de-
veloped to allow users to create accounts, log in, and access course content.
Design the start course cards: These cards contain a glimpse of the course like the
title, lesson numbers, course level, and the start button that lands you on the course
details page.
Develop a course listing with search and filter functionality: This page is created
within the home page to display a list of available courses and allow users to search and
filter the courses based on their preferences. This makes it easy for users to find courses
that meet their needs.
13
Chapter 3 3.2. Analysis
3.2 Analysis
This sprint involves creating a start course card design, creating a registration and login
system, and developing a course listing with search and filter functionality.
The first step involves setting up the web development environment with the necessary
tools and technologies and updating Github. This is a crucial step in ensuring that the
development process runs smoothly and that everyone on the team is on the same page.
It is important to ensure that all the necessary tools are installed and configured correctly
to avoid issues later on.
The second step involves creating a registration and login system. This is a key feature
of the website and should be user-friendly and secure to protect users’ personal informa-
tion.
The third step involves creating the start course card design. This is an important
step as it sets the tone for the entire website and is the first impression that users will
have about the course. The card design should be attractive and user-friendly, with a
clear call to action.
The fourth step involves developing a course listing with search and filter functionality.
This is important as it allows users to easily find the courses they are interested in and
filter them based on their preferences.
Overall, this sprint is crucial in developing a user-friendly, and secure website for the
Tabaani Host Academy. It involves careful planning and design to ensure that the website
meets the needs of both the users and the business.
14
Chapter 3 3.2. Analysis
15
Chapter 3 3.2. Analysis
16
Chapter 3 3.2. Analysis
17
Chapter 3 3.2. Analysis
Conclusion
In conclusion, Sprint 1 has been a productive period for our team. We have successfully set
up our web development environment and created the course cards for the Tabaani Host
Academy home page. We have also developed a registration and login system. Moreover,
we have created a course listing with search and filter functionality.
During this sprint, we have worked closely with our Business Analysis team to identify
two key areas for improvement: performing user acceptance testing (UAT) on the features
18
Chapter 3 3.2. Analysis
developed during this sprint. We believe that this step is crucial to improving the overall
user experience of the Tabaani Host Academy, and we are committed to implementing
them in Sprint 2.
We are confident that Sprint 1 has laid a solid foundation for the Tabaani Host Academy.
In the following chapter, our effort will be devoted to producing a new sprint covering the
remaining functionalities in this release.
19
Chapter 4
Sprint planning
Introduction
In this chapter, we will be discussing the second sprint of the Tabaani Host Academy
project. The main focus of this sprint is to develop features that will enable the admin to
manage course content and create a course detail page. Additionally, we will be developing
progress tracking and a Frequently Asked Questions (FAQ) section. The aim is to make
the platform user-friendly, interactive, and easy to navigate.
4.1 Sprint 2
Manage Course Content: In this task, we will develop a content management system
(CMS) that allows the admin to manage course content. This feature will enable the
admin to add videos, quizzes, and other learning materials for the course content.
Course Detail Page: In this task, we will create a course detail page with all relevant
information, such as course description, course duration, and pricing. This is important
as it provides users with all the information they need to make an informed decision about
which course to take.
Frequently Asked Questions: In this task, we develop a FAQ section that provides
answers to common questions users may have about the platform. This feature will
enable users to get quick answers to their questions without having to contact support.
Progress Tracking: In this task, we will create a progress-tracking system that allows
users to monitor their progress as they complete courses. This feature enables users to
keep track of their achievements and motivates them to continue their learning journey
on the platform.
4.2 Analysis
The second sprint of the Tabaani Host Academy project is critical to ensuring the success
of the platform. The development of a content management system, course detail page,
progress tracking, and FAQ section will enhance the user experience and provide more
control and flexibility to users. The content management system will enable the admin
to manage course content more effectively. The course detail page will help users to know
more about the courses they taking. The progress tracking system will help motivate
users to continue their learning journey, while the FAQ section will provide quick and
easy access to answers to common questions.
20
Chapter 4 4.2. Analysis
21
Chapter 4 4.2. Analysis
22
Chapter 4 4.2. Analysis
Conclusion
In conclusion, the second sprint of the Tabaani Host Academy project focused on devel-
oping features that will enhance the user experience on the platform. The development
of a content management system, course detail page, progress tracking, and FAQ section
will provide more control, flexibility, and motivation to users. It is important to note
that while the Tabaani Host Academy team is responsible for the development of these
features, it is mainly the work of the user ADMIN to create engaging and informative
course content. The next step was to test and refine these features before moving on to
the implementation.
23
Chapter 5
Implementation
Introduction
In this chapter, we will present the technologies that we used to accomplish our project,
as well as the developed pages of the platform.
Figure 5.16: Dell Logo [4] Figure 5.17: Lenovo Logo [5]
24
Chapter 5 5.1. Work Environment
Github:
GitHub is a web-based platform that serves as a centralized hub for version control and
collaboration in software development projects. It allows developers to host, manage, and
share their code repositories, facilitating teamwork and efficient code management.
StarUML:
Star UML is a comprehensive and user-friendly software modeling tool used for designing
and visualizing various types of diagrams, including class diagrams, sequence diagrams,
and use case diagrams. With its intuitive interface and powerful features, Star UML
simplifies the process of creating and documenting software designs, making it a valuable
tool for developers and system architects.
25
Chapter 5 5.2. Development Technologies:
5.2.1 HTML5
HTML, short for HyperText Markup Language, is the foundation of web pages, provid-
ing the structure and organization of content. It uses tags to define elements and their
properties, enabling the creation of interactive and visually appealing websites.
5.2.2 CSS 3
CSS, or Cascading Style Sheets, is a powerful language used to style and format the
presentation of HTML elements on a web page. It allows developers to control the ap-
pearance, layout, and visual aspects of web content, enhancing the overall design and user
experience.
26
Chapter 5 5.2. Development Technologies:
5.2.3 React JS
React.js, commonly known as React, is a popular JavaScript library for building user
interfaces. It enables developers to create interactive and dynamic web applications by
efficiently managing the component-based structure and efficiently updating the user in-
terface based on data changes.
5.2.4 Node JS
Node.js is a powerful JavaScript runtime environment that allows developers to run
JavaScript code outside of the browser, enabling server-side scripting and building scal-
able network applications.
5.2.5 JavaScript
JavaScript is a versatile programming language used for adding interactivity and dynamic
functionality to websites and web applications.
27
Chapter 5 5.2. Development Technologies:
5.2.6 TypeScript
TypeScript is a strongly typed superset of JavaScript that compiles to plain JavaScript,
providing additional features and enhanced developer productivity.
5.2.7 Firebase
Firebase is a comprehensive platform offered by Google that empowers developers to build
and deploy web and mobile applications effortlessly. It provides a suite of services, in-
cluding real-time database, authentication, hosting, cloud storage, and more. With its
easy integration and robust infrastructure, Firebase simplifies the development process,
enabling developers to focus on creating innovative and scalable applications without wor-
rying about managing complex backend systems.
28
Chapter 5 5.2. Development Technologies:
Database
Databases come in various types, each designed to store different kinds of data:
We, at Tabaani Host Academy, decided to choose a NoSQL Database for this project.
A NoSQL database can be classified into four distinct types for easier understanding and
categorization:
29
Chapter 5 5.3. Architecture of the solution
Serverless Architectures
Serverless uses the existing managed services available through the public cloud not just
as a means to host an application but becomes an intrinsic part of the application and
replaces manually configured infrastructure and sometimes even entire libraries of code
with the managed services.
Contrary to what the word “Server-less” would have you think, servers still exist with
serverless! With a serverless development model, developers are able to build, deploy
and run applications without having to manage servers. Once deployed, a serverless
application will respond to traffic and automatically scale up or down as needed. [22]
30
Chapter 5 5.3. Architecture of the solution
While Flux abstains from being labeled as a library or framework, its pièce de résistance
lies in the concept of uni-directional data flow.
REDUX
Redux, an offspring of Flux’s inspiration, stands as both an implementation and a library.
It simplifies state management and effortlessly renders data based on user actions. This
powerhouse of a library boasts immense potency, yet gracefully maintains a feather-light
footprint.
31
Chapter 5 5.4. Production
5.4 Production
Figure 5.32 represents the Sign-UP page. To facilitate the account creation, process the
user can sign up using his Google or Facebook account else he can fill in the form and
then clicks the “Sign-UP” button.
32
Chapter 5 5.4. Production
Figure 5.33 represents the Login page. If the user has forgotten his password or email,
he can request a new one by clicking on the “Forgot your password?” or “Forgot your
email?” button.
33
Chapter 5 5.4. Production
Figure 5.34 represents the Password Recovery Page, which is the page that displays
to the user after clicking on the "Forgot your password?" link in an attempt to recover
his forgotten password.
Figure 5.35 represents the Email Recovery Page, which is the page that displays to the
user after clicking on the "Forgot your email?" link in an attempt to recover his forgotten
email.
34
Chapter 5 5.4. Production
Figure 5.36 represents the header of the home page. It contains a list of course cate-
gories and shows a stunning welcome message.
35
Chapter 5 5.4. Production
Figure 5.37 represents the course listings on the home page. You can browse and
search for any course or see all the best instructors.
36
Chapter 5 5.4. Production
Figure 5.38 represents the second part of the course listings on the home page.
37
Chapter 5 5.4. Production
Figure 5.39 represents the top part of the course detail page where you can read more
details about the course you have chosen.
38
Chapter 5 5.4. Production
Figure 5.40 represents the bottom part of the course detail page. It shows all the
course modules.
39
Chapter 5 5.4. Production
Figure 5.41 represents the FAQs section inside the course details page. Here you can
find all the answers to any question that comes to your mind.
40
Chapter 5 5.4. Production
Figure 5.42 represents the course page. Once you access this page you will find your
unfinished courses and the courses on your list.
Figure 5.43 represents the video page. The learning process starts here where you will
watch all the lessons before taking the test.
41
Chapter 5 5.4. Production
After completing your first video you will land on the test page that is represented in
Figure 5.44
If you pass the test you will land on the next page where you will get congratulation
and read about the next steps (Figure 45)
42
Chapter 5 5.4. Production
If you failed the test you will land on another page that tells you that you have either
retake the test or watch the video again. (Figure 46)
Figure 47 represents a page that prepares you before taking the Quiz at the end of
the module assessment.
43
Chapter 5 5.4. Production
Figure 48 represents the quiz page and it is the last test in each module.
44
Chapter 5 5.4. Production
Figure 49 represents the Content Management Page from where the admin can add,
update or delete course content.
Conclusion
This chapter covered all the implementation steps, first, we represented our work environ-
ments and all the technologies needed for the realization, then we presented the different
pages of the application,
45
General Conclusion
In order to improve and promote tourism in Tunisia and the MENA region, Tabaani
has developed an application that aims to connect travelers with locals(hosts) in order
to improve their travel experiences. To refine our host’s skills, we decided to create an
e-learning web application that provides our hosts with the best courses in hosting in
order to continue developing the travel experience on our application.
First of all, we have introduced the general context of our internship, which took
place within the Tabaani start-up. Then we identified the different requirements and
introduced the methodological framework adopted for the management of our project.
We have planned our project, using the Scrum method, listing all the tasks to be carried
out, with the assignment of the degrees of importance. Next, we were able to provide two
sprints, each sprint completing its previous one. In the end, we explained the realization
process going from work environments and used technologies to presenting the different
pages of the application.
It is important to emphasize that the objectives set at the beginning have been
achieved, although difficulties were encountered, it has been possible for us to overcome
them and to carry out an application corresponding to the needs formulated by the prod-
uct owner.
For the next step, we planned with Tabaani startup, an AI solution that can help
the host academy platform personalize the learner journey by enabling host students to
control their learning trajectory. Based on the learning outcomes, the host academy
platform with AI may recommend micro-lessons or provide extra work, suggesting ways
to improve by allowing them to get content that is tailored to each learner’s goals and
past success.
46
Bibliography
[21] https://huspi.com/blog-open/definitive-guide-to-spa-why-do-we-need-single-page-
applications/. spas.
47
Abstract
This report introduces the project accomplished for the completion of my Bachelor’s
degree in Computer Engineering with a specialization in Network and Systems
Engineering at the Higher Institute of Information Technologies and Communication.
The project was carried out in collaboration with Tabaani, a startup company. The main
objective of this work was to design and develop the comprehensive Tabaani platform a
web-based application that is user-friendly, mobile-responsive, and prioritizes security.
Keywords
Sustainable tourism
Host academy
E-learning