0% found this document useful (0 votes)
54 views93 pages

Final Docc

Uploaded by

tsemahlets18
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
54 views93 pages

Final Docc

Uploaded by

tsemahlets18
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 93

Chapter One

1.1. Introduction

Nowadays, people’s consumption structure is improving steadily. There has been a large increase in the
number of people out on tours, for the sake of recreation and entertainment. Tourism is the strongest and
largest industry in the global economy world, generating an estimated 11% of the global gross domestic
product (GDP) and employing 200 million people and serving 700 million tourists worldwide-a figure in
2020.In Ethiopia tourism statistics for 2020 was 2,282,000,000.00, a 35.34% decline from 2019.the main
reason for this much decrease is the global effect covid-19 caused. Ethiopian Tourist Arrivals is set to reach
724,430 Arrivals by 2026 from 621,570 Arrivals in 2021, growing 0.6% year on year average rate. Since
2000, Ethiopian demand decreased by 6.5% year on year.
Meanwhile, there is greatly enriched travel information provided to the tourists on the Internet. However, a
problem is shown that tourists are not able to get travel information timely when they are on the move.
Therefore, we intend to explore how to build a mobile tourist guide system based on mash-up technology to
solve this problem.
So with the help of this project users can make hotel reservations, view weather condition of the specific
day, tour guides are not needed because the users can get information about the heritage by simply taking
pictures of it and so on. When we do this system and application we are hoping it can resolve most of the
problems tourists are facing these days.

1.2. Background of the project

In our country, each activity is completed manually under the current system of tourism, and processing is a
time consuming procedure. Currently, Tourists have to rely on travel agents for making tour arrangements,
which is extremely consuming and costly. The users are unable to meet their needs in a timely manner.
Furthermore, the outcome may be inaccurate. This will decrease the safety of the tourists. Thus, the existing
system is very time consuming and being manual work sometimes leads to a great loss as well.
Our system is highly automated and makes the travelling activities much easier and flexible. With digital
tools at hand, people now prefer to make their own travel arrangements through portable and user-friendly
1
mobile apps. Smart travel agent provides online booking, hotel reservations, select tour packages depending
on their financial status and cashless travel which facilitates all kinds of payment since theft and the hassle
of cash is a big security concern for tourists visiting new countries and regions for the first time. Real-time
weather forecasting with recommendations assists users plan better with what to pack and things to watch
out for along with suggestions on timely travel bookings, choose the type of transportation they want, get
detailed information about specific heritages or sights without the help of tour guides, by simply taking a
picture of it, smart travel agent provide location based information and can access GPS of user’s location,
and leave recommendations after visiting a place and rate the services provided so that it can help the other
users who are planning to visit and plan better trips based on their travel history, preferences, and feedback.
In general, users can manage all their plans with limited human intervention by simply using this mobile
application. This ensures safe and comfortable stay of tourists in the country.

1.3. Statement of the problem

The current Ethiopian travel agencies were.


 A one-stop-shop for travelers (traveler couldn’t view travel packages themselves)
 Challenge for travel agencies is to maintain their credibility and visibility
 Face is losing customers due to the common tour packages they offer
 Complex and long booking process
 Unaware of what their customer requires and are unable to understand them very well
 The increasing and diverse travel requirements by people, it gets difficult to manage inquiries.
 A stressful and tense environment for travel agents
These all are challenges of currently existing agencies. proposed system deals with this all agencies
problems. The proposed project is an online tour and travel system that provides an effective solution for
travelers to plan, manage and schedule their tour according to their requirements and demands. They may
have need good suggestions for places that they might enjoy. For example, about plan trip, booking, where
and how long they might stay, how they will get around, how much they think it will cost. the system also
solves this and all other problems by providing all required information (detail tour packages) about tour
and travel for all customers during their journey. it would help traveler to manage their budget properly.

2
1.4. Objective
1.4.1 General objective

 The general objective of this project is to help tourists find transportation, hotels rooms that fit all their
needs at the right price by comparing the options from a wide range of providers and guide themselves
without a tour guide by simply take a picture of a specific heritages or sights and this app will provide fast,
accurate information with no typing necessary.

1.4.2 Specific Objectives

 To develop a system that is easy for users.


 To identify necessary features/tasks and prioritize them for an efficient workflow
 To build prototype for experimentation
 To acquire user feedback and improve accordingly
 To test

1.5. Scope and Limitations


1.5.1 Scope

Tourism is one of the biggest sectors of our economy as a country. Since Ethiopia is a big country and has
many attraction sights, we figured it would not be possible to cover all of the places and sights. Thus, in
order to design our application, we were obligated to choose a smaller city, specifically Adama, for this
project. Its scope includes registration, GPS location tracking, reservations and information sharing. It also
includes different features such as payment methods using banking systems.

3
1.5.2 Limitations
The limitations we may face when and after doing these project are: -
 Since, it is a mobile application the service given by the system is not accessed by users as long as there is
no smart phone and internet connection.
 Because of budget, our marketing may not be big
 Here in Ethiopia, most Ethiopians are not used to using mobile applications for these purposes.

1.6. Feasibility Study

A feasibility study is simply an assessment of the practicality of a proposed project plan or method. On the
basis of the feasibility study decision is taken on whether to proceed or to cancel the project. It includes the
following.
 Technical feasibility
 Operational feasibility
 Economic feasibility

1.6.1 Technical feasibility:


Technical feasibility analysis mainly analyzes the mechanical conditions can be completed smoothly the
development work, the hardware and software can meet the need. This assessment focuses on the technical
resources available to the project team members. The project team members have learned monogramming
languages that required for the successful completion of the project such as Dart, Java, Python and C++ and
MySQL server. Also Team members have the required skill to develop the system by using Flutter software
kit. so that the project can be said technically feasible.

1.6.2 Operational feasibility:


Our project is an online tour and travel system that provides an effective solution for users to plan, manage
and schedule their tour according to their requirements and demands. we reviewed how the existing
Tourism service works and our technical skill transforms the existing system into mobile based application.
The proposed system is also compatible to any smart phones. So the proposed system is operationally
feasible.
4
1.6.3 Economic feasibility:
Economic feasibility is the process of identifying the financial benefits and costs associated with the project
being developed. If benefits outweigh costs, then the decision is made to design and implement the system.
It is must accurately weigh the cost versus benefits before taking an action. The proposed system is
economically feasible because it uses software tools that are available for free (open source software).

1.7. Significance of the project


This project’s approach is intended to be more efficient than the current manual method. It automates all
basic processes that are currently happening in the tourism industry, which is a significant benefit. In
addition, this project aims to revolutionize the tourism industry by enabling customers to engage in value-
added and personalized engagement. With the availability of this mobile applications
 people no longer have to rely on travel agents
 users get accurate information with limited human intervention
 simplifies the manual work
 up to date and useful information
 tourists’ details can be provided easily
 ensures safety for users and 24/7 Accessibility

1.8. Beneficiaries of the project

iTOUR mobile app benefits various target groups. This app assists users for booking their hotel
rooms and transportation services via the Internet only by using this mobile application. Also allow
users to travel without tour guidance in their visitation time.
Benefits for the user:
 Easy access for booking
 Payment method integrated so payment can be done easily

 Get exact location of the place they are visiting through map

 Check the weather condition of their stay before going

 Get a place description by only taking picture

5
Benefits for the service provider:
 Help users book their desire service easily
 Easy payment and transaction

1.9. Methodology
1.9.1 Data collection methodology

We have used the following data collection method which will be conducted by way of interviews,
questionnaires, requests for data from different organizations like hotels and resorts, transportation service
sectors like Ride and Taxiye etc. and observing how the existing or current system works and how
laborious and unorganized it can be.

1.9.2 Conceptual Modeling

Helps in creating an abstract and physiological representation of a real-world concept and the analysis of
this model to make decisions about implementation. We are developing a conceptual model of the system,
and we have defined the important features of the system that we want to include. This modeling helps us to
focus on the essential features of the system and the relationships between those features, and so to identify
the functional requirements for the system to function as intended.

1.9.3 Secondary data collection methodology

 Looking up different travel management system's websites


 Surfing the internet for a similar system as the proposed one

1.10. Development tools


While working on the project from the start phase which is the documentation to the end which is the
implementation we have used these tools
6
1.10.1. Hardware
 Flash (External hard-disk)
 Computer

1.10.2. Software

Tools Use
MYSQL For database
Flutter To create customized mobile app designs
Django Rest API A python backend framework for developing mobile apps
React Native Frontend API for mobile apps.
Figma For UI/ mockup design
Enterprise Design the project
architect
MS-word Documentation
Browser To open the system

Table 1.1: Software development tools

1.11. Project deliverables

The final product will be interactive, intuitive and user-friendly mobile application which runs on a wide
range of smartphones.

7
1.12. Cost Breakdown

A cost breakdown analysis is a cost analysis that involves itemizing all of t he components of the cost
of a particular product or service. The itemized components are called cost drivers. Different
products and services have their own different sets of itemized cost drivers. A cost breakdown
analysis is an effective tool used when cutting down costs on certain things. Although there is no
official budget/cost allocated for this project, here is an estimated budget/cost for resources required for the
project:

Resource Amount Cost Total Price

Laptops 2 20,000 ETB 40,000 ETB


USB Drivers 2 250 ETB 500 ETB
Smart phone
Pen 5 50 ETB 50ETb
Paper 1 200ETB 200ETB
Visual Studio - Open source -
MySQL - Open source -
Android Studio/Flutter - Open source -
Adobe Photoshop - Open source -
Printing and Stationery -
8,00 ETB 8,00 ETB
Hard disk 1 3,000 ETB 3,000 ETB
Total price - - 44,550 ETB

Table 1.2: cost breakdown

8
1.13. Task and Schedule

Activities Week 1 Week 2-3 Week 4 - Week Week 11 - Week 12-


7 7-10 12 27
Research  
Planning 

Proposal 

Documentation 
Preparation
Implementation    
Build   
Prototype
Test   
Obtain  
Feedback
Finalize 

Table 1.3: Task and schedule

1.14. Team composition

No Name ID Responsibility
1 Abdurezak UGR/16680/11 Requirement gathering, implementation,

Shemsedin Analysis, Design

2 Henok Belachew UGR/17210/11 Design, Implementation, Testing

9
3 Mahlet Sintayehu UGR/17329/11 Coordinator, implementation, Analysis,
Testing

4 Meron UGR/17369/11 Requirement gathering,

Muleta implementation,Design

5 Rediet Melaku UGR/17573/11 Implementation, Testing, Design

Table 1.4: Team composition

10
Chapter Two
Existing system

2.1. Description of existing system


To create a better system, it is essential to understand the present system of the given organization. It now
carries out a variety of tasks manually, including transferring information manually, making manual
reservations for hotels and transportation, and generating reports. One of the main downsides of the current
system is that users must locate a real, ideal travel agent, which can be difficult, take a lot of time, and try
their patience.

2.2. Major function of existing system


The major function of the existing system is:
 Register new member

 Gather and send information

 Coordinate trips

 Manual payment and collection of receipts

 Wait-listing

 Manual transportation and hotel booking

 Search

 Login as a registered member

 Travelling Facility for the Limited Area or Person.

2.3. Major functions of current system

 Provides search facility for customer.


11
 Generates different types of reports.
 Provides online package ticket booking and online payment facility for customer.
 Provides package details.
 Access to live GPS location.
 Views weather condition.
 Allows access to guest users.
 Tour guides are not needed as we can simply get full information of a place by taking a picture of it
services such as:
VIEW
SEARCH
BOOKING
CANCEL BOOKING
ONLINE PAYMENT

2.4. Drawback of current system

 Absence of computerized and centralized system.

 Absence of good time management.

 Absence of data accessibility.

 The manual way of data handling and running up of the activities is tedious

 Data security is not assured.

 There is no database to store information.


 It can be harder to change a booking.
 Unreliable internet access
 Having to pay a commission
 Customer service issues and cancellation rules
 Loss of complete control

12
2.5. Business rule

A significant non-functional requirement that might have an impact on the system is the business rule. The
development of the system may be negatively impacted if the system's owner changes or if numerous
owners disagree with one another. Therefore, business rules must be taken into account at every step of
development. The agreement with the system owner should be renewed after every significant advancement
or should be made at the beginning of the system for the entire system.

The following are business rules of system.

1. The system does not allow to perform any activity if they are not registered.
2.Be aware of the agent’s requirements.
3. The user must be authenticated to access the system.
4. Report is generated if and only if a specific project and requirements are already registered.
5. Group leader can represent the members.
6. Users of the system should be well known.

13
Chapter Three
Proposed System

3.1. Overview

This chapter primarily concentrates on defining and analyzing the requirements for our proposed system.
The functional and non-functional requirements of the proposed system are stated at the beginning of the
chapter. In addition, various scenarios are presented to support how the issues with the current system will
be fixed in the suggested solution. We use object-oriented modeling to create models and provide solutions
for the suggested system. The chapter's last portion comprises use-case diagrams, activity and sequence
diagrams, class diagrams, persistence diagrams, and other UML- compatible modeling diagrams.

3.2. Functional Requirements

A functional requirement describes the intended behavior of our system or the


application.

 Users can register to the app by providing necessary information.


 User can login after validation of his/her details from the database.
 Users should be able to view list of places and buy tickets
 Users can book and pay online for the visit to any tourist location.
 Users can view the weather condition on that specific day
 Users can select tour packages depending upon their needs.
 Users can view the route, type of transportation to selected location.
 Service providers such as Hotels and transportation services can also register to be a
member of the system based on the requirements.

14
 Users can search nearby attractions points, can figure out the distance between these point
and current location.
 When user login to the system on his/her mobile, application will trigger the GPS to get
and update information of user’s location.
 Smart Travel agent also analyze the user information stored in database to get user’s
preferred requirements.
 After visiting a place, users can give feedback about the trip and services that were offered
and give ratings so that it can help the other users who are planning to visit.
 Users should be able to update and post on their profile.
 Smart travel agent provide location based information which can be browsed through a
map.
 The system only accepts a valid login details to enroll on a travel the system and offer
logout functionality to end users.
 The system should be able to provide full information about attraction places by simply
taking a picture of it.
 Smart Travel agent will provide password recovery facility.
 Admin can add new packages, route information, bus information, train information and
flight information.
 Admin can view daily, weekly and monthly reports.
 Admin can update, search and delete any package and information.
 The admin can also change his name or password from the dashboard settings.

3.3. Non-functional Requirements

Non-functional requirements are those that aren't necessary for our system's operation but
can still support it and improve its quality.

15
1. Accessibility: We have taken every type of user in to account and provided them with an
option to access the system.

2. Database: An unauthorized person cannot access the panel and database, do not read and
write the information. It should maintain the security of the client’s payment method.

3. Reservations: The system should reserve a travel package.

4. Scalability: The system encompasses several technologies that enable the platform to
accommodate larger workloads while maintaining consistent and acceptable levels of
performance.

5.Resources: The system is compatible with specified hardware and software environment.

6. Reliability: It should provide a reliable environment to both customers and owner.


Admin should be able to upload delete update new packages without any error.

7. Usability: The System is designed for user friendly environment and ease of use.
Unauthorized person should not use the system; rather just view the main page.
No one can change the password without login to the system

8. Authentication Requirement: The system support user name and password to authentic
and has different privilege to protect intruding.
9. Availability: It should be available for 24 hours because it offers international tourists
reserved packages from different countries so it should be available for 24 hours.

10. Robustness (Error handling requirement): The system has error handling
mechanisms that is, as errors occur it will not stop functioning rather provide error manages
and back to the previous page to give chance to renter data and process the task by beyond
the error.
16
11. Efficiency: When an online package of travel implemented customer can have reserved
packages in an efficient manner.

12. Well documented: the document of this project is processed in well manner.

3.4. System Model

System modeling is the process of developing abstract models of a system. These


models help to understand the functionality of the system by representing it with
simple steps and ignoring irrelevant details. It gives a representation of the system
from different perspectives. It can represent the interaction between the system and
environment or between the components of the system; the representation of the
structure of the data that is processed by the system and the representation of
dynamic behavior of the system and how it responds to events.

3.4.1 Scenario

Scenario 1
Name of use case Sign Up

Participating User
Actor Service Providers
Admin
Entry Condition  Users of this system must install the mobile
application and have internet access

17
Flow of events 1. Open app
2. Click “Get Started” button
3. Display registration form
4. Input completed personal details.
5. Click Sign up button for confirmation via email.
6. Receive confirmation code for login.

Alternate If the user does not provide the required information, the
Condition system immediately requests the user to provide the
missing information.
Exit Condition System saves the entered data into database
Special The application must be installed on the smart phone
requirement

Table 3.1: Sign Up


Scenario

Scenario 2
Name of use case Sign in

Participating Actor User


Service Providers
Admin
Entry Condition 7. Users of this system must install the mobile

18
application and have internet access.
8. User information is stored in the database.
Flow of events 1. Open app
2. Login form is displayed
3. Enter valid username and password
4. Click login button
5. Display home page
Alternate Condition If the user doesn’t input its email and password
correctly, the system notifies and asks them to fill
the form again.
Exit Condition The user is logged in and can see the home page.
Special requirement Must install the mobile application.

Table 3.2: sign in scenario

Scenario 3
Name of Use case Booking (package, transportation and hotel)
Participating Actor User
Entry Condition  Internet connection must be available
 User should have the mobile app installed
 User must be logged in
Flow of events 1. Open app
2. Login into app
3. Navigate to Booking page
4. Choose packages or any other services provided by
the system.

19
5. Make reservation.
6. Navigate to payment page
7. Choose payment methods.
8. Click pay now button
9. Input amount
10. Authenticate transaction
11. Save changes
12. The system displays successful message
13. Receive Automated email and text notifications
14. Logout
Alternate Condition Booking details will be saved to the database
Exit Condition The system saves entered data into data
Special requirement The user should install the mobile app on their
smartphones

Table 3.3: Booking Scenario

Scenario 4
Name of Use case Add, Update and delete Services
Participating Actor Admin

Entry Condition  Internet connection must be available


 Admin and service providers should be logged in
Flow of events 1. Open app
2. Login to app
3. Go to account page

20
4. Add or update any services
5. Logout

Exit Condition The system saves data into database

Table 3.4: add, delete and update services scenario

Scenario 5
Name of Use case Search
Participating Actor User
Entry Condition  Internet connection must be available
 User should have the mobile app installed
 User must be logged in
Flow of events 1. Open app
2. Login into the app
3. Home page will be displayed
4. Type on the search bar which is located on top of the
T
screen.
5. Results will be shown
6. Logout
Alternate Condition The system will notify the user if they haven’t filled the
correct information
Exit Condition Result will appear from the database
Special requirement User must install the mobile app

Table 3.5: search scenario

21
Scenario 6
Name of Use case View weather condition
Participating Actor User T

Entry Condition  Internet connection must be available


 User should have the mobile app installed
 User must be logged in.
 Location setting must be turned on.
Flow of events 1. Open

2. Login into app


3. Display user page
4. Navigate booking page
5. Navigate to weather condition
6. Click visit place
7. Click on weather condition
8. Weather condition will be displayed
9. Logout

Alternate Condition -
Exit Condition Weather condition will be displayed
Special requirement User must install the mobile app

Table 3.6: View weather condition scenario

22
Scenario 7
Name of use case View nearby attraction place

Participating Actor User


Entry Condition  Internet connection must be available
 User should have the mobile app installed
 User must be logged in
Flow of events 1. Open

2. Login into app


3. Display user page
4. Navigate booking page
5. Navigate to weather condition
6. Click the place to be visited
7. Click on weather condition
8. Logout

Exit Condition Recommended nearby places will be displayed on the


home page.
Special requirement User must install the mobile app

Table 3.7: View nearby attraction places scenario

Scenario 8
Name of Use case View Travel history of user
Participating Actor User
Entry Condition  Internet connection must be available
 User should have the mobile app installed
23
 User must be logged in
Flow of events 1. Open app
2. Login into app
3. Navigate to account page
4. Display option to history
5. Choose view travel history
6. Logout

Special User must install the mobile app


requirement

Table 3.8: View travel history of user scenario

Scenario 9
Name of Use case Place description(image detection)
Participating Actor User
Entry Condition  Internet connection must be available
 User should have the mobile app installed
 User must be logged in
 Access to camera and location must be turned on
Flow of events 1. Open app
2. Login to app
3. Click on the location icon
4. Click camera icon
5. view picture description

24
6. logout

Special User must install the mobile app


requirement

Table 3.9: Place description scenario

Scenario 10
Name of Use case View Location
Participating User
Actor
Entry Condition  Internet connection must be available
 User should have the mobile app installed
 User must be logged in
 Location setting on the mobile phone must be turned on
Flow of events 1. Open app
2. Login in to app
3. Choose the map icon
4. “Allow access to location/map.” message will be displayed
5. Choose allow
6. Display live location of user

Special User must install the mobile app


requirement

Table 3.10: View location scenario

25
Scenario 11
Name of Use case Feedback and rate
Participating Actor User
Entry Condition  Internet connection must be available
 User should have the mobile app installed
 User must be logged in
Flow of events 1. Open app
2. Login into app
3. Navigate to user page
4. Click on feedbacks and rating
5. Leave feed-backs and rate
6. Logout

Special User must install the mobile app


requirement

Table 3.11: Feedback and rate scenario

Scenario 12
Name of Use case Update profile
Participating User
Actor
Entry Condition  Internet connection must be available
 User should have the mobile app installed
 User must be logged in
Flow of events 1. Open app
2. Login in to app

26
3. User page displayed
4. Navigate to user page
5. Update profile
6. Logout

Special User must install the mobile app


requirement

Table 3.12: Update profile scenario

Scenario 13
Name of Use case Manage Reservation
Participating Service Provider
Actor
Entry Condition  Internet connection must be available
 User should have the mobile app installed
 User must be logged in
Flow of events 1. Open app
2. Login in to app
3. View Hotel, Transportation and Transaction Information of
the user
4. Fetch details from database
5. Accept request if there’s any
6. Add, update and delete packages according to the request
7. Logout

Table 3.13: manage reservation scenario


27
3.4.2. Use case model

A use-case model is UML (Unified Modeling Language) which is a de facto standard for object-oriented
modeling, so use-cases and Use-case–based elicitation are increasingly used for requirements elicitation.
Model of how different types of users interact with the system to solve a problem. As such, it describes the
goals of the users, the interactions between the users and the system, and the required behavior of the system
in satisfying these goals.

A use-case model consists of several model elements. The most important model elements are use
cases, actors, and the relationships between them.

1. Actor Identification

user
● Register
● Search location
● View place description
● View specific weather condition
● View nearby attraction place
● View travel history
● View notification
● Give feedback and rating
● Book services
● Make payment
● Update profile
● Track location
● Delete account

28
Service provider

● Register
● Confirm payment
● Accept reservation
● Decline reservation
● View notification

Admin

● Add service
● Update service
● Delete service
● Ban account
● Verify account
● Verify transaction

29
3.4.3 Use case Diagram

Figure 3.1 Use Case Diagram

30
3.4.3 Use case description

Use case name Sign up


Use case ID 01
Use case description To register users, admin and service providers
Actor All users, admin and service providers
Pre-condition  Internet connection must be available
 Users must install the iTOUR app
Post-condition  Users forwarded to home page
 Admin and service providers forwarded to
complete their profile
Main flow 1. Click get started button
2. Fill the required form
3. Click sign up button
4. Enter verification code
5. Click confirm button
6. Message will be displayed
Exceptional flow  Notifies if the form is not filled as required
 If the confirmation code is not sent, click
“send again” button
 If they already have an account, they can jst
click “have an account?” button and sign in
Include  Have an account
Frequency of use Once

Table 3.14: Sign up usecase description

31
Use case name Sign in
Use case ID 02
Use case description Admin, users and service providers will be
asked to login with their account information
before they can use the system
Actor Admin, users and service providers
Pre-condition  They all must have a registerd account
 Internet connection must be availaible
 Users must install the application in their
mobile phones
Post-condition  They will all be forwarded to their
respective dashboards
Main flow 1. Enter email/phone number and password in
their specified fields
2. Click sign in button
3. They can use the “ forgot password” link to
reset their password if they forget it.
Exceptional flow  If they do not enter the correct
email/phone number and password
correctly, the system notifies them that it
is incorrect and requires them to fill it
correctly.
Include  Forgot password
Frequency of use Every time user wants access to the system

Table 3.15: Sign in Usecase description

32
Use case name Booking
Use case ID 03
Use case description Book trips, reserve hotel rooms and
transportation types or packages
Actors All Users
Pre-condition  Internet connection must be available
 Users must install the app on their smart
phones
 Users must be signed in
Main flow 1. The system identifies who is logged in into
the system and opens the booking page
according to their identification
2. Users should browse and search through the
booking page to find the suitable trips and
packages them.
3. Select the suitable trip, hotel and
transportation servie, packages etc.
4. Select the “book” icon
5. Choose payment options
Exceptional flow  User should choose one payment method
and must have enough money on their
account
 User should also choose one type of hotel
and transportation service
Include Make payment
Business rule -

Table 3.16: Booking usecase description

33
Use case name Search
Use case ID 04
Use case To discover places, hotels, resorts, packages..etc
description
Actors All Users
Pre-condition  Internet connection must be available
 Users must install the app on their smart phones
 Users must be signed in
Main flow 1. The system identifies who is logged in into the system
and opens the booking page according to their
identification
2. Users type the places, hotels ..etc they want to visit.
3. List will be displayed.
4. They can select what they desire and detailed
information will be displayed.
Exceptional  If the given name is not found, there will be search
flow results related to it.
Include  View places they want to visit
 View packages
Business rule -

Table 3.17: Search usecase description

Use case Manage reservation


name
Use case ID 05
34
Use case Accept and decline reservation requests
Description
Actors Service providers
Pre-  Internet connection must be available
condition  Must install the app on their smart phones
 Must be signed in
Main flow 1. Service providers must be logged in to the system.
2. They should be able to accept or decline reservations
offered by the client
Exceptional -
flow
Include  Accept request
 Decline request
Business -
rule
Table 3.18: Manage reservations usecase description

Use case View weather condition


name
Use case ID 06
Use case Users can view the specific weather condition of a specific
description place on that specific day
Actors All users
Pre-  Internet connection must be available
condition  Users must install the app on their smart phones
35
 Users must be signed in
 Location setting must be turned on
Main flow 1. The system identifies who is logged in into the system and
opens the booking page according to their identification.
2. Click the booking button.
3. Choose a destination
4. View weather condition of that destination
5. Book for the trip if it is suitable for the user.
Exceptional -
flow
Include -

Table 3.19: View weather condition Usecase Description

Use case View location


name
Use case ID 07
Use case Users can access their location through the app
description
Actors All users
Pre-  Internet connection must be available
condition  Users must install the app on their smart phones
 Users must be signed in
 Location setting must be turned on
Main flow 1. The system identifies who is logged in into the system and
opens the booking page according to their identification
2. User must click the location button on the bottom of the

36
screen
3. User can track its location and get direction to a specific
destination

Exceptional  Access to location must be turned on.


flow
Include -

Table 3.20: view location usecase description

Use case View description


name
Use case ID 08
Use case Users can get full description of a specific place by taking a
description picture of it.
Actors All users
Pre-  Internet connection must be available
condition  Users must install the app on their smart phones
 Users must be signed in
 Access to camera and location must be allowed
Main flow 1. The system identifies who is logged in into the system and
opens the booking page according to their identification
2. User clicks the camera icon located on top right corner of
the home page
3. User can take a picture and get detailed information.
Exceptional  Access to camera must be allowed

37
flow
Business ---
rule

Table 3.21: view description usecase description

Use case View travel history


name
Use case ID 09
Use case Users can view their travel and transaction history
description
Actors All users
Pre-  Internet connection must be available
condition  Users must install the app on their smart phones
 Users must be signed in
Main flow 1. The system identifies who is logged in into the system and
opens the booking page according to their identification
2. User goes to its account page.
3. User clicks on history and a list will show up.
4. User clicks view transaction history
Exceptional -
flow
Table 3.22: view travel history usecase description

38
Use case Manage services
name
Use case ID 10
Use case Add, delete and update services
description
Actors Admin
Pre-  Internet condition must be available.
condition  Admin portal must be launched
Main flow 1. Choose service provider’s accounts to verify or ban
2. Choose services and accounts to add, delete or update.
Exceptional -
flow
include  Add service
 Delete service
 Update service
 View services
Business -
rule
Table 3.23: manage services usecase description

Use case name Feedback


Use case ID 11
Use case Users can give feedbacks about the services provided
description for them

39
Actor All users
Pre-condition  Internet connection must be available
 Users must install the app on their smart phones
 Users must be signed in
 User must actually go to a trip
Main flow 1. The system identifies who is logged in into the
system and opens the booking page according to their
identification
2. Choose travel history on the account page
3. Choose feedback option
4. Write user’s feedback on the given form
Exceptional flow You can also give ratings
Include Rate
Business rule -
Table 3.24: feedback and rate usecase description

3.5. Object Model

3.5.1 Data Dictionary

The object model is a description of an object-oriented architecture, including the


details of the object structure, interfaces between objects, and other object-oriented
features and functions.

40
Class Attributes Operations Description

User -Allow the user to


-Username: String -Register()
-Full name: String be registered into the

-Email: String system

-Password: String
Search - Place name: String -Search place() -Allows the user to
search their desire
tour places
Notification -id: string -read() -Sends a
-notification notification to
content: string user and service
-receiver id: int provider about
reservation and
acceptance
Admin -AdminId: String -Verify Account -Manage overall
-Full name: String () system
-Phone Number: int -Delete service ()
-Email: String
-delete account ()

-Block Account ()

-verify transaction
()

-update service ()

-add service ()
Booking -booking id: int - add booking () -this allow user

-booking type: -edit booking () to choose their

string desire booking


-delate booking ()
preference
-booking title: string -search booking ()
-booking date: date
41
-view booking ()

Package -package id: int -add package () -this allow user

-package name: int -delate package () to have both


transportation
_package -edit package ()
and hotel
description: int -search package ()
packages as one
-package amount: int
Transportation -transportation id: int -add -this allow users to

transportation () have easy


-transportation name:
transportation
int -delate
options they want
_transportation transportation ()

description: int -edit

-transportation transportation ()

amount: int -search


transportation ()
Hotel -hotel id: int -add hotel () -this allow users

- hotel name: int -delate hotel () to choose the


place the want
_hotel description: -edit hotel ()
to stay in in
int -search hotel ()
their vitiation
- hotel amount: int
time
Search -place name: () -search place -allow the user
name () to search the
place they want
to visit
Service -id: int -confirm payment -the service
provider () providers used
-service id: int
-accept by user
-service type: string

42
-service name: string reservation ()

-phone number: -decline

string reservation ()

-email: string

-is banned: Boolean


Tour place -place id: int -view description -allow users to

-place name: int () search the place

-scan place () they want to


-place type: int
visit and view
-place address: int -search place ()
description of
-place description int the place they
are visiting by
taking picture
Payment -id: int -pay telebirr () -Allow users to

-payer id: int -pay CBE () pay for the


service they get
-transaction amount: -transaction report
easily
float ()

-transaction for: -select payment ()


string

-is paid: Boolean

-booking code: string

Review -id: int -review () -allow users to rate and


-read () give feedback about the
-reviewer id: int
system
-feedback: string
-rating: int

Table 3.25: Data dictionary

43
3.5.2 Class Diagram

Figure 3.2 Class Diagram

44
3.5.3 Dynamic Model

The dynamic model describes those aspects of the system that are concerned with the time and
sequencing of events. This model specifies how the state of events occurs when certain operations
are performed. Once the main scenarios are modeled, various events on objects that are needed to
support executions corresponding to the various scenarios are known. For objects, events are a request
for an operation.

3.6.1 Sequence Diagram


A sequence diagram shows object interactions arranged in time sequence. It depicts the objects and
classes involved in the scenario and the sequence of messages exchanged between the objects needed
to carry out the functionality of the scenario.

45
Figure 3.3: User registration sequence diagram

46
Figure 3.4: Login Sequence diagram

47
Figure 3.5: update profile sequence diagram

48
Figure 3.6: Update service sequence diagram

49
Figure 3.7: Delete service sequence diagram
50
Figure 3.8: add service sequence diagram

51
Figure 3.9: manage Reservation sequence diagram

52
Figure 3.10 Booking sequence diagram

53
Figure 3.11: place description sequence diagram

54
3.6.2 Activity Diagram

Figure 3.12: Sign in activity diagram

55
Figure 3.13: Sign up activity diagram

56
Figure 3.14: Add service activity diagram

57
Figure 3.15: Delete service activity diagram

58
Figure 3.16: Manage Reservation activity diagram

59
Figure 3.17: Place description activity diagram

60
Figure 3.18: update service activity diagram

61
Figure 3.19: Booking activity diagram

62
3.6.3 State chart Diagram

The state diagram specifies how the class will handle events depending on their current state.

1. Login in state diagram

Fig 3.20: state chart diagram 1

2. Select the tour place in state diagram

Fig 3.21: state chart diagram 2

63
3. Scanning in state diagram

Fig 3.22: state chart diagram 3

4. Tour transportation in state diagram

Fig 3.23: state chart diagram 4

64
5. Hotel/Guesthouse reservation in state diagram

Fig 3.24: state chart diagram 5

6. Payment in state diagram

Fig 3.25: state chart diagram 6

65
Chapter 4
System Design

4.1 Overview of the System

Systems design is the process of defining elements of a system like modules, architecture, components and
their interfaces and data for a system based on the specified requirements. It is the process of defining,
developing and designing systems which satisfies the specific needs and requirements of a business or
organization.
System Analysis is the process that decomposes a system into its component pieces for the purpose of defining
how well those components interact to accomplish the set requirements.
The purpose of the System Design process is to provide sufficient detailed data and information about the
system and its system elements to enable the implementation consistent with architectural entities as defined in
models and views of the system architecture.
This chapter focuses on changing the analytical model into the design model, which takes into consideration
the non-functional needs and constraints outlined in the previous sections on problem definition and
requirement analysis.

4.2 Purpose of the System Design

The purpose of the System Design is to supplement the system architecture by providing information and data
useful and necessary for implementation of the system elements. It goes in detail of the process of developing,
expressing, documenting, and communicating the realization of the architecture of the system through a
complete set of design characteristics described in a form suitable for implementation.

4.3 Design Goals

66
Some required goals are deduced after analyzing and comprehending the functional and non-functional
requirements of this document, these objectives will aid in determining if the system delivers what the system
design promised at the conclusion of development.
In order to create an excellent product, designers must overcome several obstacles. It must be right according
to the requirement; it should be flexible, robust, reusable and efficient to use
Robust - A design or system is robust if it tolerates misuse without catastrophic fault-tolerance. Includes bad
data, wrong use, bad environment, and bad programming.
Flexibility - Requirements may change during or after the project.
Reusability - Reuse object code.
• Reuse source code. Reuse patterns of designs.
Efficiency - is often achieved by writing clever algorithms and data structures. Needs a good education in this
area.

4.4 Proposed System Architecture

Figure 4.1: System architecture

67
User

Mobile App

API SERVICE Third Party Service

Mobile
API
Payment

Image detection

Booking
Service

Manage sequence
service for chat and MySQL
Search Service feedback

MySQL

MySQL MySQL

Figure 4.2: System Process

68
4.5 Subsystem decomposition

Subsystem decomposition is the process of decomposing the system into smaller subsystems in order to easily
understand the design and maintain the system. And also it helps to reduce the complexity of the solution
domain, we decompose a system into simpler parts,
called subsystems. In Our system, there are five sub system decomposition.

1. Tour and package Management Subsystem.


2. Transaction and booking Subsystem.
3. Data Management Subsystem.
4. Account and user Management Subsystem.
5. Service provider Management Subsystem

Figure 4.3: System Decomposition

69
4.6 Subsystem decomposition description

Subsystem Purpose Class


Tour and package Management This subsystem is responsible Tour
Subsystem. for the management of the Tour Packages
and package information in the
system
User and Account Management This subsystem is responsible User
Subsystem. with account management of System Admin
the entire system and Service Provider
responsible
with general user login and
modification of user
information which includes
registration, updates
and deletions.

Transaction and booking This subsystem is responsible Transaction


Subsystem. with booking with Transaction Booking
of users it consists a class called
transaction.

Service provider Management This subsystem is responsible Service providers


Subsystem. with entire management of
service providers and
responsible with check
available services, update

70
service and delete reserved
service.
Data Management Subsystem. This is a subsystem responsible Data Storage
with data management tasks Data Access
like storage, update and Message
retrieval
requests triggered by the
subsystems.
Data Storage: This class is
responsible to handle persistent
data storage activities.
Data Access: The actual data
manipulation activity will be
carried out though this
class. This class will serve all
data entry and retrieval
activities in the system.
Message: Errors, warning and
confirmation messaging
activities related to data
entry and retrieval will be
carried on this class.

Table 4.1: subsystem decomposition description

71
4.7. Persistent Data Management

Figure 4.4: Mapping Hotel object

Figure 4.5: Mapping Transportation object

72
Figure 4.6: Mapping Notification object

Figure 4.7: Mapping User object

73
Figure 4.8: Mapping Admin object

Figure 4.9: Mapping Service Provider object

74
Figure 4.10: Mapping Review object

Figure 4.11: Mapping Payment object

75
Figure 4.12: Mapping Tour Place object

Figure 4.13: Mapping Booking object

76
Figure 4.14: Mapping Search object

4.8. Components Diagram

A component diagram describes the organization and wiring of the physical components in a system.
Component diagrams are often drawn to help model implementation details and double-check that every
aspect of the system's required function is covered by planned development. It shows the system in terms of
modules.
The purpose of the component diagram can be summarized as:
• Visualize the components of a system.
• Construct executable by using forward and reverse engineering.
• Describe the organization and relationships of the components.

77
Figure 4.16: Component diagram

78
4.9. Database Design

Figure 4.17: Database diagram

79
4.10. Access Control

In the proposed system the actors have different privileges. The privileges of each actor are listed below.

1. User: have the following privileges


 Register and Login
 Search
 View packages and tour details
 Give ratings
 Hotel and transportation booking
 Package reservation
 Payment
 Give feedbacks
 Edit profile
 Delete account
 Attend trips
 Post the photos
 Comment and Share post

2. Service Providers: have the following privileges


 Register
 Login
 View packages and tour details
 Create package
 Delete package
 Modify package
 Edit profile
 Post photos
 Notify

3. Admin: have the following privileges

80
 Verify service providers
 Manage accounts
 Manage transaction
 Notify
 View list of reported trips and reservations

4.11. User Interface

Figure 4.18: user start page Figure 4.19: user sign up page

81
Figure 4.20: user login page Figure 4.21: Home page

Figure 4.22: GPS location page Figure 4.23: Booking page

82
Figure 4.24: Notification page Figure 4.25: Account page

Figure 4.26: Admin dashboard

83
Figure 4.27: Service Provider registration page

Figure 4.28: Service provider sign in page

84
Figure 4.29: Service provider home page

85
Chapter Five
Implementation

5.1 Overview

This section aims to define the information system development process, whether the system is operational
and being utilized, and whether the system satisfies quality standards. Integrating system functionality is the
process of implementation. The functional and non-functional needs of the system are implemented by our
project.

5.2 Coding Standard

Coding standards are sets of rules and specifications that specify how a programming language should be
used and how its procedures should be followed. A coding standard makes sure that all developers engaged
in a project follow the same set of guidelines. The code is clear and consistent enough. These rules or
conventions cover a wide range of topics, including naming conventions, organization, indentation,
comments, declarations, statements, white space, programming practices, programming principles,
programming rules of thumb, architectural best practices, and more. putting coding standards into practice.
Coding standard:
● Offers uniformity to the code created by different engineers.
● Enables the creation of reusable code.
● Makes it easier to detect errors.
● Make code simpler, more readable, and easier to maintain.
● Boost programmer efficiency and generate faster results.

The main frameworks/ programming languages that we will be using for this project are Flutter
and Django.
1.Flutter: The style portion describes the preferred style for code written as part of the
Flutterproject (the framework itself).

86
Coding patterns and catching bugs early

● Avoid using if chains or ?: or == with enum values


● Avoid using var and dynamic
● Avoid using the library and part of.
● Avoid using extensions.
● Avoid using FutureOr<T>
● Common boilerplates for operator == and hashCode
● Override toString
● Be explicit about dispose() and the object lifecycle
● Avoid sync*/async*

Naming
● Begin global constant names with prefix "k"
● Avoid abbreviations
● Avoid anonymous parameter names
● Naming rules for typedefs and function variables
● Spell words in identifiers and comments correctly
● Capitalize identifiers consistent with their spelling
● Avoid double negatives in APIs
● Prefer naming the argument to a setter value
● Qualify variables and methods used only for debugging
● Avoid naming undocumented libraries
2. React Native

ReactNative builds apps for both android and IOS platforms using a single code base, i.e. JavaScript.

 The open-source framework that helps you create real and exciting mobile apps

 Build cross-platform apps using JavaScript

87
 When to choose React Native

 When our App needs a native look and feels depending on the specific platforms.

 More scalable and complex app.

 A large number of community support packages are available for faster development.

A Design System is a set of rules and principles that set the foundation for how the application should look and feel. We
need 3 things to keep in mind while working with your design system.

 Spacing: While working with a cross-platform application, the screen sizes might vary between different
components present on a screen, but make sure to provide consistent spacing between them for a coherent
look.

 Color: Choosing the right colors is not only the most important thing but also how you use them. A great
solution is to use Color Palettes, where you can name your colors according to the preferred naming
conventions, which increases your overall workflow.

 Typography: We often forget about how the fonts change the way our application look in the results. It’s
best to stick to a limited set of font families, weights and sizes to achieve a pleasant coherent look.

 Naming Conventions

● Component’s names should be written using pascal case


● Non-components should be written using camel case
● Unit test files should use the same name as its corresponding file
● Attribute name should be camel case
● Inline styles should be camel case
Variable names should be camel case.
3.Django Rest

88
The Coding Standard for Django Rest describes developer's approach to designing and programming Django,
from high-level architectural principles all the way to indentation rules. In the words of the developers
themselves, "Write what you need and no more, but when you write it, do it right”. The Coding Standard
can be found Appendix X.

5.3 Prototype

Client-side: The mobile application is installed at the client-side. It is responsible for accessing our
system on the user's device.
Server-side: This is a program that runs on a server dealing with the generation of content on a
mobile application.
1. Access/Write a file on the server.
2. Process user input.
3. Database querying and operation.
4. Structuring the application
5. User authentication

5.3 Implementation detail

Implementation is divided into two parts or ends


1. Client-side (frontend)
2. Server-side (backend)

5.2.1 Client-Side

This is the part of the application which runs on the user’s machine. Since users have different
kindsof machines with different kinds of capacity, client performance should be optimized as
much as possible. The client-side implementation of this project consists of a mobile app.
 Mobile app

89
Flutter, a Google cross-platform mobile app development framework, is used to create the mobile app.
This makes it possible for us to create apps for both Android and iOS from a single code base, improving
maintainability. The app also interacts with our backend server and a number of other services to display
a variety of information, including Tour Detail, location, Account information, and much more.

-Feature list of the Service Providers web page is listed below


● Login
● Create Package
● View Package
● Delete Package
● Modify or update Package
● Edit profile
● Post photos for promotion

-Feature list of the Travelers’ mobile app is listed below


● Sign up
● Sign in
● Search for touring destinations
● View packages posted by service providers
● Book for a trip
● Rate a trip and give feedbacks
● Reserve for hotel and transportation
● Post photos of the trip
● Update Profile

5.4.2. Server Side

This is the part of the application where the client apps and devices request services from the server
and the server returns the requested query or function to the aforementioned apps and devices. The
server-side implementation was carried out using the following technologies

90
 Django - Django is a python framework that we can see as a modern solution. It is another step to
create an API using Python and MySQL. We can use Django with Django rest framework to create an API
which will act as a backend. Then the app can use that API to store and retrieve data.
 Google weather API: These APIs enable developers to build applications for their users that can
access the latest weather information from a variety of sources. With the help of this API, we can access
current conditions, hourly and daily forecasts as well as long-term outlooks with just a few lines of code..
 My SQL database: MySQL is an open-source relational database management system.
 Payment Systems: The two major platforms for digital payment in Ethiopia are CBE birr and Tele
birr. Using these services, the user can recharge his/ her wallet by executing a payment transaction. In turn,
the server fetches new transactions every minute automatically from its payment gateways.
 Google Map Platform: The Google Maps Platform is a set of APIs and SDKs that allows
developers to embed Google Maps into mobile apps and web pages, or to retrieve data from Google
Maps.

5.5. Testing Plan

We will assess and confirm during software testing that the software program or product performs as intended.
Testing has advantages such as bug prevention, lower development costs, and better performance.
This testing plan details each test's purpose, who will conduct it, how it will be conducted, when it will be
conducted, and what won't be tested. Typically, the aim is to find faults. To evaluate whether a system error has
occurred, the testing procedures listed below will be performed. These types are used to evaluate the
functionality and design of the system.

5.5.1. Integration Testing


In this type of testing where our software’s modules are integrated logically and are tested as a
group. Since our software project consists of multiple software modules, coded by different
programmers we need to perform this test to check whether the codes written will go with each other
seamlessly. Our purpose in this level of testing is to expose defects in the interaction between these
software modules when they are integrated

5.5.2. Unit Testing


We will test individual units or components of a software. Our purpose is to validate that each unit of
the software code performs as expected. We will perform the testing during the development of an
91
application. Unit Tests isolate a section of code and verify its correctness. A unit may be an individual
function, method, procedure, module, or object.

92
Reference

UML diagram - everything You Need to Know About UML diagrams. (n.d.).
Smartdraw., https://www.smartdraw.com/uml-diagram/
Introducing Types of UML Diagrams | Lucidchart Blog. (2020, May 13). Lucidchart.
https://www.lucidchart.com/blog/types-of-UML-diagrams
https://www.tutorialspoint.com/index.html

93

You might also like