Yalla - Hiking - FINAL (1) - 240518 - 225302
Yalla - Hiking - FINAL (1) - 240518 - 225302
COLLEGE OF COMPUTERS
INFORMATION SYSTEMS DEPARTMENT
Yalla Hiking
Supervised By
D. Hassan Farid lahza
Submitted for the partial fulfilment of Bachelor of Information Systems degree.
College of Computers, Al-Abdiya Campus
April; 2023
ABSTRACT
Hiking is a recreational activity that requires skill and strength. But everyone,
whether amateur or professional, can practice it, as it does not require experience
to practice it. When a group of people who love walking and climbing goes
according to a map with a competent person as a guide on the way, the guide must
know the roads and take all safety measures to protect his group from any danger
they may face.
A set of general safety instructions must be followed, providing water, first aid,
and food the application offers social features such as the ability to connect with
other hikers and share hiking experiences, photos, and tips. Users can also leave
reviews and ratings for the trails they have hiked, which can help other hikers
make informed decisions about which trails to choose.
We suggested that we create a mobile application that provides digital services for
hiking practitioners for ease of use and time-saving, and the details will be
clarified.
i
DECLARATION
Praise be to God for helping us accomplish this work. We worked for the lovers of hiking,
and we thank those who supported us.
Group members:
Name Signature
ii
Table of Contents
CHAPTER 1 ......................................................................................................................... 1
1.1 Introduction .................................................................................................................. 1
1.2 Problem domain............................................................................................................ 1
1.3 Problem statement ....................................................................................................... 1
1.4 Proposed system. .......................................................................................................... 2
1.4.1 Aims and Objectives ...................................................................................................................... 2
1.4.2 Proposed system features. ............................................................................................................ 2
iii
3.4.1 Register / Login ........................................................................................................................... 31
3.4.2 choose a personal account or trips. ............................................................................................. 31
3.4.3 provide the hiking spots from lowest to highest price. ................................................................ 32
3.4.4 View descriptive information. ..................................................................................................... 32
3.4.5 choose the guide. ........................................................................................................................ 33
3.4.6 the Google Map feature of the hiking location. ........................................................................... 33
3.4.7 pay fee. ....................................................................................................................................... 34
3.4.8 view events and trips & schedule appointments ......................................................................... 34
3.4.9 View the number of seats available. ............................................................................................ 35
3.4.10 View the safety instructions page............................................................................................ 35
3.4.11 edit profile and view past trips and places with their ratings. .................................................. 36
CHAPTER 5 ....................................................................................................................... 50
5.1 Introduction ................................................................................................................ 50
5.2 Snapshots of main execution screens of the application ............................................... 50
5.2.1 Login Page ................................................................................................................................... 50
5.2.2 SignUp Page ................................................................................................................................ 52
5.2.3 Enter opt (Email Verification) ...................................................................................................... 54
5.2.4 Create Guide ............................................................................................................................... 55
5.2.5 Customer Dashboard ................................................................................................................... 57
5.2.6 Hiking Destination Detail ............................................................................................................. 59
5.2.7 Route Page .................................................................................................................................. 61
5.2.8 Weather Api ................................................................................................................................ 63
5.2.9 Map Route Page .......................................................................................................................... 65
5.2.10 Reviews Page .......................................................................................................................... 66
5.2.11 Book Hiking Trip ...................................................................................................................... 67
5.2.12 Select Guide ............................................................................................................................ 69
5.2.13 Confirm Details ....................................................................................................................... 70
iv
5.2.14 User Bookings Page ................................................................................................................. 72
5.2.15 User Booking Details ............................................................................................................... 73
5.2.16 Side Bar ................................................................................................................................... 75
5.2.17 Safety Instructions .................................................................................................................. 76
5.2.18 About Us ................................................................................................................................. 77
5.2.19 Contact Us .............................................................................................................................. 78
5.2.20 Admin Dashboard ................................................................................................................... 79
5.2.21 Admin Booking Details ............................................................................................................ 81
v
List of Figures
vi
Figure4. 7: choose the guide of the Yalla Hiking sequence. ............................................................... 46
Figure4. 8: view google map of the Yalla Hiking sequence. ................................................................ 47
Figure4. 9: determine Change the payment status. ............................................................................ 47
Figure4. 10: pay fee. ........................................................................................................................... 47
Figure4. 11: view events & appointments of the Yalla Hiking sequence. ............................................ 48
Figure4. 12: view seats of the Yalla Hiking sequence. ........................................................................ 48
Figure4. 13: view instructions of the Yalla Hiking sequence. ............................................................. 48
Figure4. 14: edit profile & view past trips of the Yalla Hiking sequence. ........................................... 49
Figure4. 15: Yalla Hiking ERD. ............................................................................................................. 49
Figure5. 1: Login page ......................................................................................................................... 50
Figure5. 2: API ..................................................................................................................................... 51
Figure5. 3: SignUp ............................................................................................................................... 52
Figure5. 4: Signup Flow ....................................................................................................................... 53
Figure5. 5: EnterOtp ........................................................................................................................... 54
Figure5. 6: Create Guide ..................................................................................................................... 55
Figure5. 7: Create Guide Flow ............................................................................................................. 56
Figure5. 8: Customer Dashboard ........................................................................................................ 57
Figure5. 9: Hiking Details Page ............................................................................................................ 59
Figure5. 10: Route Page ...................................................................................................................... 61
Figure5. 11: Route Page ...................................................................................................................... 62
Figure5. 12: Route Page ...................................................................................................................... 63
Figure5. 13: Map Route Page .............................................................................................................. 65
Figure5. 14: Reviews Page .................................................................................................................. 66
Figure5. 15: Steps for booking a trip ................................................................................................... 67
Figure5. 16: Enter User Detail Page .................................................................................................... 68
Figure5. 17: Select guide page ............................................................................................................ 69
Figure5. 18: Confirm detail Page. ........................................................................................................ 70
Figure5. 19: User booking Page. ......................................................................................................... 72
Figure5. 20: User booking detail Page................................................................................................. 74
Figure5. 21: Side bar Page................................................................................................................... 75
Figure5. 22: Safety instructions Page .................................................................................................. 76
Figure5. 23: About us Page ................................................................................................................. 77
Figure5. 24: Contact Page ................................................................................................................... 78
Figure5. 25: Admin dashboard Page ................................................................................................... 79
Figure5. 26: Admin booking details Page. ........................................................................................... 81
vii
List of Tables
Table 2. 1: Compare services and features between other applications and our application............... 9
Table 3. 1: Use case Description for registration and login. ................................................................ 15
Table 3. 2: Use case Description for Choose the type of account. ...................................................... 15
Table 3. 3: Use case Description for the Search for hiking places. ...................................................... 16
Table 3. 4: Use case Description for the View descriptive info ........................................................... 16
Table 3. 5: Use case Description for the Choose the guide with features ........................................... 16
Table 3. 6: Use case Description for the View the google map. .......................................................... 17
Table 3. 7: Use case diagram for the determine guide status. ............................................................ 17
Table 3. 8: Use case Description for paying the trip fee & select the guide. ....................................... 17
Table 3. 9: Use case Description for view the event and trips & appointments.................................. 17
Table 3. 10: Use case Description for view the number of seats trips ................................................ 18
Table 3. 11: Use case Description for view the safety instructions. .................................................... 18
Table 3. 12: Use case Description for modify the profile. ................................................................... 18
Table 4. 1: Users table Data Dictionary ............................................................................................... 40
Table 4. 2: guides table Data Dictionary ............................................................................................. 40
Table 4. 3: trips table Data Dictionary ................................................................................................. 41
Table 4. 4: safety instructions table Data Dictionary .......................................................................... 41
Table 4. 5: Reviews table Data Dictionary ........................................................................................... 42
Table 4. 6: Destination table Data Dictionary ..................................................................................... 42
Table 4. 7: Account table Data Dictionary ........................................................................................... 43
Table 4. 8: Status table Data Dictionary .............................................................................................. 43
Table 4. 9: Hiking Level table Data Dictionary ..................................................................................... 43
Table 4. 10: Supplies table Data Dictionary ........................................................................................ 43
Table 5. 1: component testing ............................................................................................................ 94
Table 6. 1: Program and Software....................................................................................................... 97
viii
CHAPTER 1
INTRODUCTION
1.1 Introduction
Hiking is widespread sport around the world, as it witnessed many people of all ages come to this
sport to practice it. Like any other sport, it has many health benefits for the human body, and it is a
sport that requires skill and strength. But everyone, whether amateur or professional, can practice
it, as it does not require experience to practice it.
Hiking is the sport of mountain walking or walking in nature, where a group of people who love
walking and climbing go according to a map with a specialized person as a guide on the way, and
they go to rugged wooded or mountainous areas of natural beauty far from the crowds of cities and
overpopulation. Hiking can be with a group of people as it can be done by one person individually,
and the guide must know the routes and take all safety measures to protect his group from any
danger they may face. A set of general safety instructions must be followed, providing water, first
aid, and food, until the team or group reaches the desired place. The guide designs a hike so that it
will ultimately be a reward such as reaching a mountain peak, a spring, a unique landmark, or other
places of special beauty.
We wanted to provide an application for hiking, and the details of the project will be clarified.
There may not be keeping up with the technical development of such sports and trips
to facilitate services for sports practitioners, it takes longer, and this is a problem, no
developed and modern digital instructions for practicing this sport are clarified .
Mobile applications are increasing, which makes their owners profits, and this helps
users in providing services to them technically, and when providing an application for
hiking practitioners, this makes it easier to use, provides the best solutions and services
for them, and saves time.
1
1.4 Proposed system.
A hiking application will be created, which contains many features and services that
help to practice this sport with ease of use.
Exploring the sport of hiking revealed that there are many goals and objectives
for this sport, including:
2
• The user should be able to see events, excursions, schedule appointments, and
ratings, in addition to the event description.
• The user should be able to see the number of seats available.
• The user should be able to see the safety instructions page.
• User should be able to edit profile and see past trips and places with their
ratings.
3
• Adaptive and Flexible: Agile recognizes that change is inevitable in the software
development process. It is designed to be adaptive and flexible, allowing teams to
respond to changing requirements and priorities.
The project requires several resources for completing the project effectively.
4
1. Flutter Mobile Development
o Android Studio
o Dart SDK
o Flutter SDK
o Android Emulator Setup
2. API Development
o Visual Studio 2022
3. Database
o SQL SERVER 2019
o SSMS – SQL Server Management Studio
4. Hosting
o Godady (Windows Hosting) for Api & SQL Server Database
o Godady for domain name
5
CHAPTER 2
BACKGROUND/EXISTING WORK
(Literature Review, Existing Work)
2.1 Introduction
We searched for mobile applications to practice hiking, and we did not find many
applications that supports practitioners of this sport, and we found sites that show services
that support them as a simple thing. In this technical development, we will keep pace with
our present, and the mobile application will help add distinguished technical services to the
sport of hiking.
We found some websites and applications that provide simple technical services for hiking
practitioners, such as Ootlah and camelsteps. There are also Saudi hikers, but they only
have a page on Twitter. Registration is coordinated as a traditional thing via a mobile
number or filling out a form via Google.
Ootlah is the first tourist site that offers many tourist activities that vary in terms of destination
and price to meet all requirements. At Ootlah, we carefully select each offer so that it is
organized by one of the major travel companies. We collect all these offers in a unified list to
make it easier for travel seekers to determine the destination of their next trips.
Camel Steps is a site for booking internal and external trips that offers tourism activities of
different destinations and prices, as well as the type and duration of the tour and determining
6
the age group. Great customer service is available. It is possible to communicate in any way,
and the response is prompt and confidential.
Relive is a free app that allows users to create 3D video stories of their outdoor activities such
as running, cycling, hiking, skiing, and snowboarding. The app works with GPS and other
tracker apps to track the user's activity and location in real-time. Users can add photos and
share their videos on social media platforms. Relive Plus is a paid subscription that offers
additional features such as music, more photos, HD video quality, and longer activity
duration.
AllTrails was founded on the idea that we’re all made better by spending time in nature.
Today, we continue to be driven by the desire to share the outdoors with as many people in as
many places as possible — and to do so responsibly and respectfully.
7
2.3 Limitations of existing projects
• The user must be able to see pictures of the hiking place, descriptive information,
appropriate needs such as supplies, the difficulty of the place, as well as the evaluation of
people who have previously visited this place.
• The user must be able to enable the Google Map feature of the hiking location.
• The user should be able to see events, excursions, Set a date, and ratings, in addition to
the event description.
• The user should be able to see the number of seats available.
• The user should be able to see the safety instructions page.
• User should be able to edit profile and see past trips and places with their ratings.
• The age of user must be above 18.
8
Relive AllTrails Ootlah Yalla Hiking
Camelsteps
Trip discounts
Determine the
price range from
little too
expensive
Track your
activities with
GPS
choose the guide
Safety
instructions
choose a
personal account
or a guide
Table 2. 1: Compare services and features between other applications and our application.
9
CHAPTER 3
SOFTWARE REQUIREMENTS SPECIFICATION
3.1 Introduction
3.1.1 Purpose
The Yalla Hiking application is an application that contains assistance services for practicing
the sport of hiking, which helps it in many aspects, such as:
• Strengthening mental abilities
• Improve the human psyche.
• Disease protection
• Burn more calories.
This will facilitate the journey for them and provide a good solution. The many advantages of
this application Such as:
• Providing the search for the lowest and highest price.
• The user can choose the guide.
• Determine the appropriate needs of the place.
• Payment of fees
10
3.2 Overall Description
3.2.1 Product Perspective
The Yalla Hiking application is a new application that features technical services and is not
affiliated with a product or alternative group. These details were clarified in the Work
Background chapter.
11
Figure3. 3: Use case diagram for the Search for hiking places.
Figure3. 5: Use case diagram for Choose the guide with features.
12
Figure3. 6: Use case diagram for the View the google map.
Figure3. 8: Use case diagram for paying the trip fee & select the guide
13
.
Figure3. 9: Use case diagram for view the event and trips & appointments.
Figure3. 10: Use case diagram for view the number of seats trips.
Figure3. 11: Use case diagram for view the safety instructions.
14
Figure3. 12: Use case diagram for modify the profile.
15
Use case for the Search for hiking places
Actor user
Description The application allows the user to search for the lowest and highest
price
Data Search feature write the name of the place
Pre-condition non
Output The application shows the user to search for the lowest and highest to him
Table 3. 3: Use case Description for the Search for hiking places.
Table 3. 5: Use case Description for the Choose the guide with features
16
Use case for the View the google map
Actor user
Description The application allows the user to have the Google Maps feature of
the hiking location.
Table 3. 6: Use case Description for the View the google map.
Use case for paying the trip fee & chat with guide
Actor customer
Description The application allows the customer to pay the trip fee and select
specific guide
Data pay the trip fee, select a guide
Pre-condition non
Output The user can pay the trip fees and select the guide
Table 3. 8: Use case Description for paying the trip fee & select the guide.
Use case for view the event and trips & appointments
Actor user
Description The application allows the user to see events and trips & .schedule
appointments.
Table 3. 9: Use case Description for view the event and trips & appointments
17
Use case for view the number of seats trips.
Actor user
Description The application allows the user to see the number of seats of the trip.
Table 3. 10: Use case Description for view the number of seats trips
Table 3. 11: Use case Description for view the safety instructions.
18
3.2.2.2 DFD 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 analyse an
existing system or model a new one.
19
3.2.5 Design and Implementation Constraints
The application will support Android operating systems because we will use the Dart
language and the Flutter framework. The Internet must not be provided to obtain
application services, and technical support must be provided to fix any defect that occurs in
the future, to improve the interfaces and user experience.
20
3.3 External Interface Requirements
3.3.1 User Interfaces
21
Figure3. 17: UI for opt Email& Successful created account.
22
Figure3. 18: UI for choose guide in the trip.
23
Figure3. 20: UI descriptive information for hiking place, the difficulty of the Place.
24
Figure3. 22: UI for payment and message with guide & Edit profile.
25
Figure3. 24: Reviews page
26
Figure3. 26: Trip receipt page
27
Figure3. 28: About us page
28
Figure3. 30: Confirmation for booked trip.
29
Figure3. 32: Route map
30
3.4 System Features
b. Stimulus/Response Sequences
stimulus: Make the user access the services after registration.
Response: Save user data in the database and display services.
c. Functional Requirements
b. Stimulus/Response Sequences
stimulus: Make the user get the services of a personal account or account trips.
Response: The response of the data in the application to the account type.
c. Functional Requirements
REQ-1: The app allows the user to choose the account type.
REQ-2: The application allows the user to access account services.
31
3.4.3 provide the hiking spots from lowest to highest price.
b. Stimulus/Response Sequences
stimulus: The application allows the user to find the lowest to highest price.
Response: The application allows the user to display from lowest to highest price.
c. Functional Requirements
REQ-1: The application allows the user to search for lowest to highest price.
b. Stimulus/Response Sequences
stimulus: The application allows the user to search for information describing the hiking
location.
Response: The application allows the user to respond and display a search for information
describing the hiking location.
c. Functional Requirements
REQ-1: The application allows the user to search information describing the hiking location .
32
3.4.5 choose the guide.
b. Stimulus/Response Sequences
stimulus: The application allows the user to choose the appropriate guide for him in the trip
with the advantages.
Response: The application allows the user to respond and choose the appropriate guide for
him in the trip with the features mentioned earlier.
c. Functional Requirements
REQ-1: The application allows the user to choose the guide and set a date.
b. Stimulus/Response Sequences
stimulus: The application allows the user to use Google Maps.
Response: The app allows user response to use Google Maps.
c. Functional Requirements
REQ-1: The application allows the user to use Google Maps to show the location of the trip.
33
3.4.7 pay fee.
b. Stimulus/Response Sequences
stimulus: The application allows the customer to pay fees.
Response: The application allows the response to pay fees.
c. Functional Requirements
REQ-1: The application allows the user to pay the trip fees.
b. Stimulus/Response Sequences
stimulus: The application allows the user to request to see events, trips, and schedule
appointments.
Response: The application allows the responding user to see events, trips and schedule
appointments.
c. Functional Requirements
REQ-1: The application allows the user to view events, trips and schedule appointments .
34
3.4.9 View the number of seats available.
b. Stimulus/Response Sequences
stimulus: The application allows the user to request to see the number of seats of a trip.
Response: The application allows the responding user to see the number of seats of a trip.
c. Functional Requirements
REQ-1: The application allows the user to see the number of seats for the hiking trip.
b. Stimulus/Response Sequences
stimulus: The application allows the user to request to see safety instructions.
Response: The application allows the user to appear a safety instructions page.
c. Functional Requirements
REQ-1: The application allows the user to see the safety instructions page.
35
3.4.11 edit profile and view past trips and places with their ratings.
b. Stimulus/Response Sequences
stimulus: The application allows the user to request a profile modification.
Response: The application allows the user to responsively modify the profile.
c. Functional Requirements
REQ-1: The application allows the user to modify the profile.
REQ-2: The application allows the user to view previous trips and ratings.
NFRs are a set of specifications that describe the system’s operation capabilities and
constraints and attempt to improve its functionality. These are basically the requirements that
outline how well it will operate including things like speed, security, reliability, and data
integrity.
• Performance.
Performance defines how fast a software system.
The landing page supporting 3,000 users per hour must provide 4 seconds or response time,
including the rendering of text and images.
• scalability.
Horizontal scaling is provided by adding more machines to the pool of servers.
Vertical scaling is achieved by adding more CPU and RAM to the existing machines.
The system must be scalable enough to support 1,000,000 visits at the same time while
maintaining optimal performance.
• Portability.
it establishes how well actions performed via one platform are run on another. Also, it
prescribes how well system elements may be accessed and may interact from two different
environments.
36
• compatibility.
Compatibility, system can coexist with another system in the same environment.
• Reliability.
The system must perform without failure in 95 percent of use cases during a month.
• Maintainability.
the time required for a solution or its component to be fixed, changed to increase performance
or other qualities, or adapted to a changing environment.
The mean time to restore the system (MTTRS) following a system failure must not be greater
than 10 minutes. MTTRS includes all corrective maintenance time and delay time.
• Availability.
the system is accessible to a user at a given point in time.
must be available to user’s 99.98 percent of the time every month during hours.
• Security.
Payment must be processed by the Yalla Hiking team.
• Usability.
he errors rate of users submitting their payment details at the checkout page mustn’t exceed
10 percent.
37
We will comply with all applicable laws, regulations, and standards relating to the quality
and safety of products and services in the countries or regions in which they are sold and
used. And to fulfil our responsibilities to all stakeholders, we will appropriately manage
personal information, company information and information supplied from business
associates.
38
CHAPTER 4
SOFTWARE DESIGN
39
4.2 Interfaces and Data Stores
4.2.1 System Interfaces
This point is mentioned in 3.3 External Interface Requirements, you can refer to it .
40
Serial Field name data type constraint description
Number
1 trip_id INT PRIMARY KEY Unique ID for each trip
2 Title NVARCHAR (MAX) NOT NULL Unique Title for each trip
3 HikingLevelId INT FOREIGN KEY References the Hiking
level Id The hiking levels
are:
Easy, Medium, or
Difficult in column in the
Hiking level table
4 destination Id INT FOREIGN KEY References the
Destination Id – column
in the Destination table
5 DAYS INT NOT NULL The days of the trip
41
Serial Field name data type constraint description
Number
1 ID INT PRIMARY KEY Unique ID for each rating
2 User_id INT FOREIGN KEY References the User_id
column in the User table
3 TravelTripID INT FOREIGN KEY References the
TravelTripeISD column in
the Travel Trip table
4 Rating INT NULL The rating value provided by
the user
5 Comment NVARCHAR NULL The user's review of the
(MAX) guide or trips
6 GiveON DATETIME NULL The rating given by the user
42
Serial Field name data type constraint description
Number
1 Id INT PRIMARY KEY Unique ID for each Account
2 AccountType NVARCHAR NOT NULL Indicates whether the user
(MAX) has a personal or guide or
admin
43
4.3 Structural Design
4.3.1 Class Diagram
44
4.3.2 Sequence diagram
45
Figure4. 5: hiking spots of the Yalla Hiking sequence.
46
Figure4. 8: view google map of the Yalla Hiking sequence.
47
Figure4. 11: view events & appointments of the Yalla Hiking sequence.
48
Figure4. 14: edit profile & view past trips of the Yalla Hiking sequence.
49
CHAPTER 5
SYSTEM IMPLEMENTAION & VALIDATION
5.1 Introduction
This chapter provides an overview of application interfaces and the implementation phases.
First, we describe these phases and shows their related snapshots. Secondly, we present the
programs used in these implementation phases works. Third, we finalize this chapter by
providing a description of the testing and verification phase to check if the expected results
match the actual results.
50
is to authenticate the user and accordingly identify the type of user as customer or admin or
guide to make the appropriate functionalities and resources available as per their role. This
page requires quit a logic for propagating the flow of application.
• User Interface
The page has different components to make it attractive and at the same time full fill
the functionality of the page.
The top part has welcome area for the user to make it appealing and interesting for the
user to proceed.
• Username/Email Field: Users are required to enter their username or email
address which they used for registering in the application, it serves as their unique
identifier within the system.
• Password Field: Users must enter their password, which is typically kept secret and
used to verify their identity. Passwords are often masked (e.g., shown as asterisks or
dots) to protect them from being seen by others.
• Login Button: Users click this button to submit their login credentials for
verification and access to the application. The login button triggers the authentication
process.
• Forgot Password: Users can click this link to initiate the password recovery process
if they forget their password. It will send an otp to your registered email and after
validation it will allow you to setup your password.
• Sign Up: This link takes users to a registration page where they can create a new
account if they don't have one. If the user is new they can proceed to this page to register
themseleves and start using the application.
• Security and Error Messages: The login page provides feedback to users,
informing them if their login attempt was successful or if there was an error.
Figure5. 2: API
51
5.2.2 SignUp Page
A signup page in a mobile application is an essential element of the user onboarding process.
It allows users to create a new account and gain access to the app's features and services. The
signup page is a critical touchpoint for new users, and it's essential to make the process as
smooth and user-friendly as possible to encourage registration and user engagement with the
mobile application.
Figure5. 3: SignUp
User Interface
The signup page takes in email and password and then sends an otp to the provided email to
verify, once the otp is verified the user account is created. The registration process involves
sending otp for the purpose to identify the email address is authentic and of the provided user,
also it makes is unique so the is no random registration and makes it confidential for both
application and the customer.
• Email Field: Users are required to enter their email address which is going to be
unique itself. The user must note that an otp will be sent to their provided email address
to verify it’s the.
• Password Field: Users must enter their password, which is typically kept secret and
used to verify their identity. Passwords are often masked (e.g., shown as asterisks or
dots) to protect them from being seen by others.
52
• Confirm Password: A field where users re-enter their password to ensure it was
entered correctly.
• Register Button: Users click this button to submit their registration information and
create an account. Once the button is triggered an otp is sent to the given email.
• Error Messages: If there are issues with the registration data (e.g., email format is
incorrect, passwords don't match, empty required feilds), the app will display clear error
messages to guide users in correcting the problems.
• "Already have an account?" Sign In: This link directs users to the login page
if they already have an account or want to access the app without creating a new one.
• User Experience Design: The signup page features a clean, user-friendly design
with a clear layout. It includes branding elements such as the app's logo and color.
The flutter application The flutter application Once the Otp is sent
maps the json format to then receives the successfully it response
dart class response response in json format with success message
53
5.2.3 Enter opt (Email Verification)
Once the user provides the email address and password for registration the data is then
validated and then an otp is sent to the email address provided for verification. This is an
important step to keep the spam users restricted.
Figure5. 5: EnterOtp
User Interface
It is a simple page to take the otp entered by the user and send ahead to validate the otp.
• Enter Otp : User enters the otp received on their email if provided correctly.
• Error Messages: If the provided otp is incorrect then the user will user will be
diplayed with an error message that the otp is incorrect.
• Success : Once the otp is validated and it is successful the account is created
successfully.
54
5.2.4 Create Guide
Create Guide page is for the guides to register themselves as a guide. This helps their identity
to be offered to the user to prefer them as their guide. This form page has fields needed to be
filled out by guide and register themselves as guide.
User Interface
Once the user enters the details mentioned below it then validates the email address and then
sends an otp to the provided email address.
• Email Address: Users provide a valid email address, which serves as their username
for logging in and for account-related communication.
• Full Name: Users provide their first name and last name.
• Mobile Number: Users provide their Mobile number to be contacted.
• City: Users provide their city.
• Country: Users provide their Country.
• Description: Users provide their description, a few lines introducing themselves to
make them appealing for trekkers.
55
• Password: Users create a secure password, often with validation rules (e.g., requiring
a combination of letters, numbers, and special characters).
• Confirm Password: A field for users to re-enter their password to ensure accuracy.
The flutter application The flutter application Once the Otp is sent
maps the json format to then receives the successfully it responds
dart class response response in json format with success message
56
5.2.5 Customer Dashboard
This is the dashboard page for a customer, where all the trips available for hiking are listed.
Ther are different elements on the page which provides customer specific details to the
customer to interact.
User Interface
The page has design to be appealing to the customer and interactive to engage. The customer
can find all his trips initial and relevant information on this page.
Service Icons : The service icons have some services displayed for the user to engage like :
• Guide : To view the list of available guides
• Safety : Safety page displays some important information to adhere and keep in mid
while planning the trekking.
57
Trip Cards : The hiking trip card displays information about the trips the card components
are :
• Initially it has an image of the destination for hiking.
• The next is the name of the hiking trip which is more like a sentence with having a
description of the destination of the hiking trip.
• City and Country information is described below the Hiking trip name.
• Hiking description, a part of the hiking description is provided to have a basic
understanding of the trip and the adventures.
• Ratings of the trip & number of ratings
• Price of the trip, the price is of a trip is one important factor of the trip. Like an
ecommerce application where the product cards display the price of the product as it is
one of the essential of the product.
• View Details button redirects to the trip details page where the user can go through the
details of the trip and book the trip.
58
5.2.6 Hiking Destination Detail
Hiking Destination Detail describes the details of the hiking adventure. The name of the trips,
city, country , reviews are the basic details displayed on the page. The page has different
services for the trip and users to get all the details of the trip .
User Interface
The page has design to be appealing to the customer and interactive to engage. The user can
attain all the information of the hiking trip and create a booking of the trip.
Service Icons : The services have important functionalities for the hiking trip :
59
Tab Area : The tab area has 3 different tabs :
• Trip Tab : This tab display common information that is trip days, max group size and
hiking level of the trip.
• About : This tab displays the schedule of the trip, from where at what time the trip starts
and then the next stops and events followed after that.
• Facilities : The tab displays the facilitates provided by in the hiking trip like lunch and
dinner , hotels, taxi service, bus ride or flight tickets , etc.
Price : At the bottom of the page has a fixed bar containing price of the trip
60
5.2.7 Route Page
This page displays the route image sample from the origin to the destination of the hiking trip.
This can guide the user and have a basic understanding of the trip also the page consists of a
Go to maps button which will lead to the google maps from source to destination of the hiking
path with the mode of walking.
User Interface
The basic UI consist of an image that is stacked at the base of the page, it is an image of the
route of the Hiking trip from source to destination, also there is a button with go to maps
instruction on clicking the button the user is directed to the google maps with the source to
destination walking path of the hiking trip.
61
The Image displays how the Google maps opens the direction of the origin to destination of
the trip.
62
5.2.8 Weather Api
This page displays the weather information of the hiking destination. The latitude and longitude
of the destination is received in the trip details API that is passed to the weather API to retrieve
the weather information of the location.
This service will help the user to understand the weather information of the destination and
help him take decision-based weather conditions.
For the weather information we are using https://www.weatherapi.com to fetch the details of
the location. The Json data is mapped to dart class and the details are displayed in an elegant
way on the page.
User Interface
The page displays all the essential information of weather of the hiking destination, the
information is:
▪ Temperature in degree Celsius
▪ Location name and country
▪ Image of weather and time of day
▪ Date and last updated information
63
▪ Wind Speed
▪ Wind Direction
▪ Humidity
▪ Uv Index
▪ AQI
▪ Precipitation
▪ Gust
▪ Pressure
64
5.2.9 Map Route Page
This Service in the destination detail page opens the google maps with the latitude and
longitude of the destination received from the trip detail API. The map opens with the
navigation route to the destination location from the current location of the user.
This service will help the user to check the destination location along with the route.
In service we are using URL Launcher plugin of flutter to open or redirect the URL and
Google Maps plugin of flutter to launch the URL to open the maps
User Interface
The Google Maps Navigation screen appears.
Description: The service is using a function to launch the url for google maps with latitude
and longitude details and specifying the mode as direction.
65
5.2.10 Reviews Page
The reviews page in of the destination detail help user gain the experience other had and users
can read feedback, comments, ratings, or reviews about the trip.
User Interface
The Reviews page has different reviews of the user fetched by from the database. The main
components int ht reviews badge are:
1. Review statement of the user
2. Users name who gave the review
3. Rating of the review out of 5
66
5.2.11 Book Hiking Trip
After the user has gone through all the hiking trip details, he can conclude to book the hiking
trip which he is interested in. The Booking process is quite simple and user friendly to make it
easy and convenient for the user to book his trip. This page is a critical part of any travel app
and typically includes various features and elements to facilitate the trip booking process.
Overview of
1.Fill In the basic Select the
your entered
user information guide
details & confirm
67
Figure5. 16: Enter User Detail Page
• Form () : The is a flutter widget used to create and manage a form containing various input
fields, such as text fields, checkboxes, radio buttons, and more. Here we are having textfeilds
and date picker within the form that is being managed by the form.
• InstructionsWidget() : This is a custom widget created to display the instruction in the
page. The instruction of payment to be completed within 24hrs.
• MyTextFieldBookingPage() : This is a custom widget mainly of the textfeild widget of
flutter that is used to decorate and store the infromation of fullname, govt id and mobile number.
• MaterialButton() : This is a flutter widget here this widget is used to show the Date Picker.
It triggers a function of date picker, and a date widget is displayed.
68
5.2.12 Select Guide
In third page the list of guides is displayed from the available options of guide, the user can
select any of the guide by clicking on the guide. Guide selection for the trip is important as it
can help you to explore the unknown area and in hiking trips, he can help you be careful and
aware the any wrong path or decision which can lead to getting yourself injured.
User Interface
For the user interface it can be seen basically there are guide cards which display the guide
infromation with image name and country. Also, there is a green outline on the cards which
shows your selection and a button at the bottom of the page that is fixed. Once the user hade
made the selection, he can click on confirm and proceed to next page. If the user clicks the
bottom without making the selection a snack bar will appear showing the message that selecting
guide is important.
69
Important Dart Widgets Used in the Page
• BLOC Implementation : As already mentioned above the app is using bloc for sate
management. The bloc triggers the API to fetch the list of guides for the page, the
response is received in Json format, and it is then mapped to a dart class mainly as a list
of the object type, then it is displayed a list .
• SnackBar () : This is a flutter widget which is being used to send a notification widget
to the user and appears for some time to display the information. Here this is used for
form validation, if the user did nat make any selection it will be displayed.
• SingleChildScrollView(): This single child scroll view makes the content inside the
widget scrollable, it can have only one child widget. This is particularly useful when
dealing with dynamic or variable-sized content. The list of guides fetched from the
json response is desplayed in the form of guide cards that are selectable.
70
User Interface
The user interface of the screen for confirm booking has read only a value, where the user can
review all his entered details before proceeding to create the booking.
The contents of the details are :
▪ Full Name
▪ Govt Id
▪ Mobile Number
▪ People Count
▪ Trip Date
▪ Selected Guide Name
▪ Total Amount
• TopBar() : This is a custom widget this widget is created to commonly mange the
top bar of most of the pages. This widget has a back button with onPress() functionality
and text field in the center.
• SingleChildScrollView(): This single child scroll view makes the content inside
the widget scrollable, it can have only one child widget. The widget is used to make
scrollable display of information for the conformation of user details.
71
5.2.14 User Bookings Page
Once the user has finished booking his hiking trip, the trip shall be created successfully.
Initially once the trip is created the payment status of the trip will be in pending state. The
user can continue to complete the payment via a SADDAD number which he can get in the
User Trip Details page and once received on the admin side he will change the status to
confirmed. Also, if the payment is not completed within 24 hrs the status will turn to expired
by the admin.
The user can navigate to the user booking page and he can view the details of the trip he has
booked. He can go to the details of his booking and start preparing for the trip.
User Interface
The user interface is designed to be elegant and appealing to the user and to display all the
necessary information to the user.
72
• Payment Status
• Booked On
• Total Amount
• No. of People.
• Bottom Navigation
• SingleChildScrollView(): This single child scroll view makes the content inside
the widget scrollable, it can have only one child widget. The widget is used to make
scrollable display of the list of users booked trips.
The Booking details page is to display all the booking details of the user and at any point of
time the user can visit the booking page and check the details.
The booking details page contains the SADDAD number, this saddad number will be used by
the user to complete the booking. Once the payment is completed and received on the other
end the admin will update the status of the booking to confirmed else if it is not completed
within 24 hours the booking payment status will change to expire.
The user can use the customer support email available on the Contact us page to email and
resolve any query if the user faces any issue.
73
F
User Interface
Booking details page is designed to make all the booking information available to the user in a
convenient way. The page has several components like topbar and the data page.
74
Important Dart Widgets Used in the Page
• BLOC Implementation : As already mentioned above the app is using bloc for
sate management. When the page loads the page triggers the API to get the booking
details using th booking id. The data is received in the Json format, where.
• TopBar() : This is a custom widget this widget is created to commonly mange the
top bar of most of the pages. This widget has a back button with onPress() fucntionality
and text field in the center.
• SingleChildScrollView(): This single child scroll view makes the content inside
the widget scrollable, it can have only one child widget. The widget is used to make
scrollable display of the details of user booked trips.
75
User Interface
The Side Bar has few pages route for the user that are :
▪ Logout
▪ Account
▪ Safety Instructions
▪ About Us
▪ Contact
▪ Help
76
Important Dart Widgets Used in the Page
• ListView() : This is a flutter widget that is widely used widget and provides a
scrollable list of child widgets. It allows you to create lists of items, whether they are
text, images, custom widgets, or a combination of various elements.
5.2.18 About Us
About us page is a page which describes the ambition of the application and their motive and
how they were established.
User Interface
The user interface displays the icon of the application and some details about the
application ambition and their vision.
77
• TopBar() : This is a custom widget this widget is created to commonly mange the
top bar of most of the pages. This widget has a back button with onPress() fucntionality
and text field in the center.
5.2.19 Contact Us
The contact us page is a user interface screen or section within the app that provides users
with a way to get in touch with the app's developers, support team, or administrators.
User Interface
The user interface displays the icon of the application and some details about the
application ambition and their vision.
• TopBar() : This is a custom widget this widget is created to commonly mange the
top bar of most of the pages. This widget has a back button with onPress() fucntionality
and text field in the center.
78
5.2.20 Admin Dashboard
The admin can log from an admin account using admin credentials. Once the admin
successfully logs in on the dashboard page, he can see all the bookings of the users. The
bookings details are visible to the admin.
User Interface
The user interface is designed to make it informative and attractive for the admin to engage
easily and navigate to update the payment status.
Components of the Page
• Top bar
• Booked Trips Card
The Card displays the information for the booking made by the user.
The important information displayed by the user are:
• Trip Date
• Trips Name
79
• Trips Location – city & country
• Customer Name
• Payment Status
• Booked On
• Total Amount
• No. of People.
• Bottom Navigation
• SingleChildScrollView(): This single child scroll view makes the content inside
the widget scrollable, it can have only one child widget. The widget is used to make
scrollable display of the list of users booked trips.
80
5.2.21 Admin Booking Details
The booking details page in the admin domain is used to update the payment status of the
booking once the admin has received the payment to the SADDAD number provided to the
user while booking the trip. The admin has information displayed of the trip that is booked by
the user.
User Interface
Booking details page is designed to make all the booking information available to the user in a
convenient way. The page has several components like topbar and the data page.
The Detail of the booking includes:
• Trip Name
• City and Country
• Payment Status with relevant icon /image
• Booking Id – unique booking id to identify the booking information.
• Trip Date
• SADDAD Number
• Guide Name
• Full Name
81
• Government Id
• Booking Date
• Mobile Number
• No of People
• Total amount
The Bottom Navigation Bar of the Page has dropdown function, the admin can view the list of
status and select. Once the selection is done admin can click on the confirm button to update
the payment status of the booking.
• SingleChildScrollView(): This single child scroll view makes the content inside
the widget scrollable, it can have only one child widget. The widget is used to make
scrollable display of the details of user booked trips.
82
The Dropdown Widget has:
Value: The value property specifies the currently selected item from the list. This is typically
a variable that holds the chosen value.
Items: The items property defines the list of options that the user can select from. Each item
is represented by a DropdownMenuItem widget, which includes a value and a child widget
(typically a Text widget to display the option's label).
onChanged: The onChanged callback function is triggered when the user selects an item
from the dropdown. It provides the selected item's value as an argument and is used to update
the value property.
83
5.3 Program flows
2.Signup Page
1. Login Page
4. Account Created
Successfully 3. Enter Otp
Send to Email
84
5.3.2 Become A Guide
2.Signup Page
1. Login Page 3.Create Guide
Page
85
5.3.3 User Create Booking
5. Booking Step 2
6. Booking Step 3
7. Trip Booked
Successfully
86
5.3.4 Admin Update Payment Status
87
5.3.5 Forget Password
88
5.3.6 User Basic Flow
89
5.3.7 User Basic Flow 2
90
5.4 Software testing
This section describes the project's validation and testing processes, the validation method, and
the validation results.
Going through a functional check list was part of the validation and testing plan. specifications
and carefully check it.
The section is mainly for system testing and unit testing, and it will include the requirements for
the application.
Services to be tested:
1. Functional requirements.
2. The basic functions required by the user.
91
5.6.3 Usability Testing:
For non-functional, we do usability test to make sure that any user may understand the
program fast and easily while using it. The interfaces were tested at this step to make sure
they were straightforward to use, and all their parts made sense.
-Operating System: Android Test Cases. To ensure our app is functioning as expected, to
ensuring that all app interfaces and its interactions are working as documented above.
92
Log-in customer Enter email, Log-in should be Log-in done Pass
password to done successfully and
Login to the successfully, the user's
platform. when click on redirected to the
Click on log-in. sign-up the user home page.
should be When click on
navigated to the the sign-up, the
Home-screen user navigated
page successfully to
the Home-screen
page
93
number of
people Click on
the Nest button
to book trip
successfully
94
CHAPTER 6
CONCLUSION & FUTURE WORK
6.1 Conclusion
Recently, the number of hiking enthusiasts has increased, and many of them are looking for
an application that can truly meet their needs. This is where Yalla Hiking steps in to provide a
comprehensive solution. With its user-friendly interface, real-time features, and a focus on
enhancing the hiking experience, Yalla Hiking is poised to become an invaluable companion
for hikers of all levels.
In a world where technology is rapidly evolving, Yalla Hiking embraces the latest
advancements to cater to the growing community of nature lovers. The application not only
helps you plan your routes and navigate the trails with ease but also ensures your safety by
offering critical information such as weather updates and Safety instruction.
Our app has the potential to significantly benefit the local hiking community, in our opinion.
We can contribute to the promotion of hiking as a fulfilling and healthful sport by giving
hikers the knowledge and resources they need to organize and carry out safe and enjoyable
treks, we are thrilled to see how hikers in the area are using our app, and we eagerly await
user comments on how we can make it even better.
95
programming languages, including Flutter, Dart, and the Firebase web server. Over the
previous four years, we have applied what we have learned in our studies.
6.3 Restrictions
This project has a few flaws despite its successes. Our application is only available in
English, but we hoped to be able to add support for other languages so that it could serve the
entire Middle East and broaden the program's reach.
96
6.5 APPENDICES I
Program Use
Lucidchart BPMN diagram
97
6.6 APPENDICES II
98
99
6.7 REFRENCES
[1] the weather information we are using https://www.weatherapi.com to fetch the details of
the location.
[2] Android Studio IDE and the Yalla Hiking API to develop a mobile application for
downloading and testing the API https://developer.android.com/studio?hl=ar.
[3] We used Visual Studio 2022 to develop the API for my mobile application. We the
ASP.NET Core framework to create a RESTful API https://flutter.dev/.
[4] Godady (Windows Hosting) for Api & SQL Server and domain name
https://ae.godaddy.com/.
[5] SQL Server Management Studio https://www.microsoft.com/en-us/sql-server/sql-server-
downloads.
[6] Hiking Safety instructure https://www.parks.ca.gov/?page_id=30043.
[7] Some of information about hiking sourced from https://en.wikipedia.org/wiki/Hiking.
[8] we used this site to find some places designated for hiking
https://www.alltrails.com/saudi-arabia.
[9] The Grammar of Graphics: Elements of Perception and Communication in Charts and
Graphs by Leland Wilkinson.
100