Final Docc
Final Docc
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.
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.
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.
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.
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
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
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.
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.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
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:
8
1.13. Task and Schedule
Proposal
Documentation
Preparation
Implementation
Build
Prototype
Test
Obtain
Feedback
Finalize
No Name ID Responsibility
1 Abdurezak UGR/16680/11 Requirement gathering, implementation,
9
3 Mahlet Sintayehu UGR/17329/11 Coordinator, implementation, Analysis,
Testing
Muleta implementation,Design
10
Chapter Two
Existing system
Coordinate trips
Wait-listing
Search
The manual way of data handling and running up of the activities is tedious
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.
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.
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.
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.
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.
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.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
Scenario 2
Name of use case Sign in
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.
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
Scenario 4
Name of Use case Add, Update and delete Services
Participating Actor Admin
20
4. Add or update any services
5. Logout
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
21
Scenario 6
Name of Use case View weather condition
Participating Actor User T
Alternate Condition -
Exit Condition Weather condition will be displayed
Special requirement User must install the mobile app
22
Scenario 7
Name of use case View nearby attraction place
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
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
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
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
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
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
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
30
3.4.3 Use case 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 -
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 -
36
screen
3. User can track its location and get direction to a specific
destination
37
flow
Business ---
rule
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
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
40
Class Attributes Operations Description
-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
-transportation transportation ()
42
-service name: string reservation ()
string reservation ()
-email: string
43
3.5.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.
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
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.
63
3. Scanning in state diagram
64
5. Hotel/Guesthouse reservation in state diagram
65
Chapter 4
System Design
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.
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.
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.
67
User
Mobile App
Mobile
API
Payment
Image detection
Booking
Service
Manage sequence
service for chat and MySQL
Search Service feedback
MySQL
MySQL MySQL
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.
69
4.6 Subsystem decomposition description
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.
71
4.7. Persistent Data Management
72
Figure 4.6: Mapping Notification object
73
Figure 4.8: Mapping Admin object
74
Figure 4.10: Mapping Review object
75
Figure 4.12: Mapping Tour Place object
76
Figure 4.14: Mapping Search object
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
79
4.10. Access Control
In the proposed system the actors have different privileges. The privileges of each actor are listed below.
80
Verify service providers
Manage accounts
Manage transaction
Notify
View list of reported trips and reservations
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
82
Figure 4.24: Notification page Figure 4.25: Account page
83
Figure 4.27: Service Provider registration 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.
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
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
87
When to choose React Native
When our App needs a native look and feels depending on the specific platforms.
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
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.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.
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.
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.
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