Professional Documents
Culture Documents
Group Members
Name ID
January 2021
Acknowledgment
We would like to gratefully acknowledge the supervision of our advisor, Mr Abdi Mulatu, for his
help and his profound suggestions.
We also would like to thank all marketing managers, doctors, garage workers and waiters for
their willingness to help us on gathering data.
Table of Content
s
Introduction.................................................................................................................................................1
1.1 Overview............................................................................................................................................1
1.2 Statement of the Problem.................................................................................................................2
1.2.1 Existing System..........................................................................................................................2
1.2.2 Major Problem of Existing System.............................................................................................2
1.2.3 Proposed System.........................................................................................................................3
1.2.4 Advantage of Proposed System..................................................................................................4
Motivation...............................................................................................................................................5
Objective.................................................................................................................................................5
1.4.1 General Objective.......................................................................................................................5
1.4.2 Specific Objective.......................................................................................................................5
Scope and Limitation of the Project........................................................................................................5
1.5.1 Scope of the Project....................................................................................................................5
1.5.2. Limitation of the Project............................................................................................................7
1.6 Methodology.....................................................................................................................................8
1.6.1. Data Collection Methodology....................................................................................................8
1.6.2. System Design and Analysis Tools............................................................................................8
1.6.3. System Development Tools.......................................................................................................9
Chapter Two..............................................................................................................................................10
2.1 System Requirement Specification......................................................................................................10
2.2 Functional Requirement..................................................................................................................10
2.3 Non-Functional Requirements.........................................................................................................11
2.4 Feasibility Study...............................................................................................................................12
Chapter Three............................................................................................................................................14
3. System Analysis and Modeling..............................................................................................................14
3.1. Overview.........................................................................................................................................14
3.2. Scenario Based Modeling...............................................................................................................14
3.2.1 Use case Identification..............................................................................................................14
3.2.2 Actor Identification...................................................................................................................15
3.2.3 Use case Diagrams....................................................................................................................15
3.2.4 Use case Description.................................................................................................................19
3.2.5 Activity Diagram......................................................................................................................30
3.3. Behavioral/Dynamic Modeling.......................................................................................................33
3.3.1 Sequence Diagram........................................................................................................................33
3.3.2 State Diagram...........................................................................................................................38
3.4 Class Diagram..................................................................................................................................43
3.4.1 Purpose of Class Diagrams.......................................................................................................43
3.4.2 Identifying Classes....................................................................................................................43
System Design...........................................................................................................................................45
4.1 Overview..........................................................................................................................................45
4.2 System Design..................................................................................................................................45
4.2.1 Module Description..................................................................................................................45
4.3 Architecture of the System..............................................................................................................49
4.3.1 Architectural Style and Pattern.................................................................................................49
...........................................................................................................................................................49
4.3.2 Component Diagram.................................................................................................................50
4.3.3 Deployment Diagram................................................................................................................51
4.3.4 Database Design.......................................................................................................................52
4.3.5 ER Diagram..............................................................................................................................73
Chapter Five..............................................................................................................................................74
5.1. Implementation.........................................................................................................................74
5.2. Testing.......................................................................................................................................77
Appendix...................................................................................................................................................82
Referance..................................................................................................................................................83
List of Figures
Figure 3. 1 Use Case Diagram for Manage Accounts................................................................................16
Figure 3. 2 Use case diagram for Mobile application................................................................................17
Figure 3. 3 Use case diagram for Web based application..........................................................................18
Figure 3. 4 Activity Diagram for Authenticated User activity...................................................................30
Figure 3. 5 Activity Diagram for Guest User activity...............................................................................31
Figure 3. 6 Activity Diagram for Admin activity......................................................................................32
Figure 3. 7 Sequence Diagram for Login the system................................................................................34
Figure 3. 8 Sequence Diagram for Admin action with the system............................................................35
Figure 3. 9 Sequence Diagram for Authenticated user action with the system.........................................36
Figure 3. 10 Guest user action with the system.........................................................................................37
Figure 3. 11 State Diagram for Admin......................................................................................................39
Figure 3. 12 State Diagram for login........................................................................................................40
Figure 3. 13 State Diagram for registration..............................................................................................41
Figure 3. 14 State Diagram for user..........................................................................................................42
Figure 3. 15 system class diagram............................................................................................................44
UI User Interface
Currently, in Addis Ababa people use google map to discover service providers. It has some
limitations like: - service providers registered in google map are very less, no much details about
which services are included in their services.
Chapter One
Introduction
1.1 Overview
The use of technology is increasing day by day, we all depend on technology, and we use various
technologies to accomplish specific tasks in our lives. Today we have various emerging
technologies that impact our lives in different ways and is being implemented in almost every
aspect of our lives and business function. So, embracing it and learning how to use technology in
whatever we do is very important and recommended. As Addis Ababa is big city, it is difficult to
discover service providers manually by appearing personally. So, we come up with “Simplify
your life in the modern world” which mean anyone who want service it’s on his/her hand
through their phone or electronics media.
Nowadays, people life situation forces them to move from one place to another it might be due to
work or some other situations, because of this our platform will assist them to discover different
services, it might be parking services, take away, delivery, whether it is best for children or not,
and so on. So this platform makes user life easy as possible by saving their time of finding
different kind of services, unnecessary money spent by traveling in exploring services that they
desire and allows them to easily determine the quality of the services provided by the service
providers.
Our platform provides an information related to service providers like their location, services
provided to users, reviews on the services, provide photos that shows how the organization looks
like. It also allows business owners to post their services, their photos, view users comments and
ratings.
1.2 Statement of the Problem
1.2.1 Existing System
Currently, As we found in our research there are few systems that allows a person to locate
different organizations like restaurants, hospitals, hotels and garages and shows types of services
they provide to their customers and view service providers those are nearby in Addis Ababa.[5]
Nowadays many people use Google map [4] to find the location of different organizations but it
cannot provide the variety of services provided by those organizations[6] and doesn’t provide
feedbacks on the services given by previous users of that services. For Example: - a person wants
to find or locate a specific service provider organization, he/she asks other persons who knows
about it or by going to places which is very tiresome and also causes unnecessary wastage of
money. In addition to this, it is difficult for a person to determine specific services provided by
organizations for example Delivery service, Takeaway, Accept credit card, Outdoor sitting, Wi-
Fi, Reservation, Good for Groups, Parking, Good for kids and etc.
In terms of customers
Difficult to locate service providers: because the person has to search for the service
providers manually.
Difficult to identify the types of services provided by that organization: - the user can’t
know what services are provided in every organization unless he/she went to that place
before or asked about that place.
Unnecessary time wastage: - trying to check different service areas personally consumes
time.
Causes unnecessary cost: - moving from one place to another searching for a place to get
service from causes some costs for transportation.
Difficult to choose the best alternative
As we know in Ethiopia it is difficult to compare companies with their quality of service and
discover their location. WedetEthio is a platform that guides users to get quality of services and
service providers location everywhere in Addis Ababa. Our platform lists different type of
services that are registered to the system and the user can access the system as a guest or login as
an authenticated user and then access different kinds of services like locating nearby service
providers, view different kinds of services provided and reviews and also comment and give
rating to the services by login as authenticated user. The platform also allows the service
providers to be easily located by different people and allows them to view the feedback
regarding to the services they provide.
The platform provides opening and closing hours of the service providers. It allows us to know
which service provider is open or not.
Using our platform, a customer can view services that provided by the organizations and can also
give feedback or comment on those services so that other customers can view previously posted
and can act accordingly.
The platform has both web-based application and android mobile application. In web-based
application it will address the admin part , and in android mobile application we will address
users only.
Web based application allows to login in order to manage a business as an admin. Admin can
add and manage services the service providers provide, see different reports related to their
service.
In the Android mobile application, it only supports users. So, it only supports different services
that a user can have as stated above.
Users could access the platform in two ways. The first is as a guest and second as an
authenticated user by using Facebook or Google. Guests can only read and discover services that
are posted on the system. Authenticated users have a permission to make a comment, a review
and update comments and reviews.
Authenticated users will be authorized to make reviews on the service providers page,
bookmarks in order to easily access for future use, access their list of reviews to update it later if
something is changed in service providers services, read services provided by service providers
and search places.
Motivation
We realized that service providers spend lot of money on advertising their services, thus we
thought of a system that allows service providers to easily advertise their services and allows a
user to easily locates those service providers, view their services which eliminates waste of
unnecessary cost and saving time and also eliminates the involvement of third-parties.
Objective
1.4.1 General Objective
The main objective of this project is to build a web based and android mobile application that
gives information of hotel, hospital and garage service providers in our city.
1.5.1.1 Restaurants
For restaurants there are different services that we will provide. These are: -
1.5.1.2 Hotels
Hotels are the giant institutions that are affecting Ethiopian truism. So, Tourists or local
customers need more information about hotels before they use or book. This information we will
include in our application are: -
1.5.1.3 Automotive
Automotive are places that gives different vehicle repair services
1.5.1.4 Hospitals
Hospitals are places that play crucial role in saving people’s life. So, we must assess and learn
from their previous activities.
Ambulance service.
Emergency service and Urgent care.
Types of medical treatment they will provide.
The requirement analysis and elicitation process were conducted via observation and
interview. We conducted our interview and observed 3 hotels, 2 restaurants, 1 hospital and 1
garage. The Hotels we observed and interviewed are Jupiter Hotel which is located at
Kazanchis, Kaleb Hotel which is located at Bole around Edna mall and the third one is
Saromaria Hotel which is also locate at Bole around Edna mall. The restaurants are Yod
Abyssinya located at bole and Lalibela around stadium. The hospital that we observed is
tirunesh bejing hospital located at kality, meshualekiya and the garage is named Haile
Atsebah.
We have interviewed the marketing department in the Hotels and restaurants especially the
Marketing managers and doctors in hospitals.
We have also interviewed different customers of hotels, restaurants and garages for the
requirement analysis and elicitation process.
With the observations and interviews we have gained tremendous amount of knowledge on
how to design our proposed system better so that it can better satisfy its stakeholders.
Chapter Two
Authentication
Administrative functions
Authorization levels
Authentication requirement: -
Authorization Requirements: -
Milestones Time
Requirement Gathering 10/28/2019 - 11/05/2019
Requirement Analysis 11/06/2019 – 11/13/2019
Design 11/14/2019 – 12/24/2019
Development 01/27/2020 – 01/13/2021
Testing 01/12/2021 – 01/20/2020
Table 2.1 showing the schedule feasibility of the system development
We are currently going through the right direction with the schedule. The system can be
developed in the given time table. Also, the proposed system doesn’t use any technology that
would be too difficult to implement, therefore it is schedule feasible.
Behavioral Feasibility
The system has a user-friendly interface. The system only requires a basic understanding of
computer and mobile application. Online help is also available. Users can leave comments and
reviews regarding the system’s functionality which will help in identifying vulnerabilities, if any,
in order to modify the system.
Chapter Three
Admin- an admin is the highest body in the system that monitor all activities. He/she
controls the data and overall activities of the system including post services, track reports,
handle CRUD operations of the service, update profile of the organization and other
activity.
User- any user with an account can use the system to discover services nearby his/her
location. Users can also leave comment order, rate and add services to their favorite list.
In this part of document, we want to show the flow of control and conditions in order to populate
In other words, a behavioral diagram shows how the system works in motion that is how the
system interacts with external entities and users how it responds to input or event and what
constraints it operates under.
In this domain we need to show the different element of the system interact to each other and to
exchange messages in order to
State diagram is used to model the dynamic behavior of a class in response to time and changing
external stimuli. We can say that each and every class has a state.
In this domain we need to show the different states of the system on the way Admin, login and
user interaction.
Figure 3. 11 State Diagram for Admin
Figure 3. 12 State Diagram for login
Figure 3. 13 State Diagram for registration
Figure 3. 14 State Diagram for user
3.4 Class Diagram
Class diagram is a type of static structure diagram that describes the structure of a system by
showing the system's classes, their attributes, operations (or methods), and the relationships
among objects.[15]
document we want to show how we structured the system at the level of classes and how these
classes relate to each other and their multiplicity.
System Design
4.1 Overview
We designed our system as a three tier application consisting of a presentation tier for handling
the views and user interface, a web server for handling all the business login for the system and a
database tier. The web server is maintained using Apache HTTP server. The database that we are
going to use is MongoDB and code development will be done via React.
System
This module is provides a way to create, rate, order food from the menu’s of different service
providers and review different business services based on their serve.
Interfaces those are provided for users are:- Homepage, User page, Bookmarks list page,
Business providers list page, Business providers detailed page, Menu page, Login page and Sign
up page
Processing
Users can create a new account by verifying their identity. This allow them to make a
review, adding bookmarks to easily access for future.
Users are able to see list of their bookmarks to easily navigate.
Users can see their reviews easily from their account section to update them.
They can see near by business service providers
Users can sort and filter service providers based on open and closing time, category,
nearness.
While user is viewing details of service providers, the user can edit reviews from service
providers and menu.
While user is viewing details of service providers, the user can delete/remove reviews
from service providers and menu.
Any body can create a user account in order to get additional services beyond only
looking service providers.
Account will be created using facebook or google account in order to verify user’s
identity.
While creating user account user is prompted to fill the following information:-
o First name
o Second name
o Age
o Sex
o Default location
o Photo (Avatar)
After filling this information User presses the ‘create’ button and the account will be
created and ready for usage.
B. Business(Admin)
This module is responsible for creating any service and managing services.
Business(Admin) Account can see Sing up page, Sign in page, Business page. There is only one
Business account to manage and control the business.
Processing
Creating a Business
Processing
Creating a menu
Review module handles any user comments and rates to business services and menu.
4.3 Architecture of the System
4.3.1 Architectural Style and Pattern
Architectural Style
Architectural styles are a collection of principles that shape or govern the design of the
application. Many of the styles overlap and can be used in combination. we will be following
two cooperating architectural styles:
Architectural Pattern
Request / Response
Controller
Update/Manipulate
Update view
data model
Update data model Presentation Layer
Model
View
Figure 4. 1 Model View Controller(MVC)
4.3.2 Component Diagram
In Unified Modeling Language (UML)[16], a component diagram models the physical aspects of
a system. It also depicts how components are wired together to form larger components or
software systems. Here we have provided our system’s components and their interactions with
the below component diagram.
"User": {
"$jsonSchema": {
"bsonType": "object",
"required": [
"id",
"name",
"since",
"location"
],
"properties": {
"id": {
"bsonType": "objectId",
},
"name": {
"bsonType": "string",
},
"since": {
"bsonType": "date",
},
"location": {
"bsonType": "object",
"required": [
"coordinates"
],
"properties": {
"type": {
"bsonType": "string",
},
"coordinates": {
"bsonType": "array",
"description": "2 double values, 1.for longitude and 2.for latitude respectively"
},
"Business": {
"$jsonSchema": {
"bsonType": "object",
"required": [
"id",
"name",
"description",
"address",
"phoneNumber",
"aboutUs",
"workingHours",
"services",
"location",
"category"
],
"properties": {
"id": {
"bsonType": "objectId",
},
"name": {
"bsonType": "string",
},
"description": {
"bsonType": "string",
},
"address": {
"bsonType": "string",
},
"phoneNumber": {
"bsonType": "array",
},
"aboutUs": {
"bsonType": "string",
},
"workingHours": {
"bsonType": "object",
"required": [
"monday",
"tuesday",
"wendensday",
"thursday",
"friday",
"saturday",
"sunday"
],
"properties": {
"monday": {
"bsonType": "object",
"required": [
"start",
"end"
],
"properties": {
"start": {
"bsonType": "timestamp",
},
"end": {
"bsonType": "timestamp",
},
"tuesday": {
"bsonType": "object",
"required": [
"start",
"end"
],
"properties": {
"start": {
"bsonType": "timestamp",
},
"end": {
"bsonType": "timestamp",
},
"wendensday": {
"bsonType": "object",
"required": [
"start",
"end"
],
"properties": {
"start": {
"bsonType": "timestamp",
},
"end": {
"bsonType": "timestamp",
},
"thursday": {
"bsonType": "object",
"required": [
"start",
"end"
],
"properties": {
"start": {
"bsonType": "timestamp",
},
"end": {
"bsonType": "timestamp",
"description": "long timestamp value"
},
"friday": {
"bsonType": "object",
"required": [
"start",
"end"
],
"properties": {
"start": {
"bsonType": "timestamp",
},
"end": {
"bsonType": "timestamp",
},
"saturday": {
"bsonType": "object",
"required": [
"start",
"end"
],
"properties": {
"start": {
"bsonType": "timestamp",
},
"end": {
"bsonType": "timestamp",
},
"sunday": {
"bsonType": "object",
"required": [
"start",
"end"
],
"properties": {
"start": {
"bsonType": "timestamp",
},
"end": {
"bsonType": "timestamp",
},
"services": {
"bsonType": "array",
},
"location": {
"bsonType": "object",
"required": [
"coordinates"
],
"properties": {
"type": {
"bsonType": "string",
"description": "is optional and the only location type is Point"
},
"coordinates": {
"bsonType": "array",
"description": "2 double values, 1.for longitude and 2.for latitude respectively"
},
"web_url": {
"bsonType": "string",
},
"email": {
"bsonType": "string",
},
"category": {
"bsonType": "array",
},
"BusinessAccount": {
"$jsonSchema": {
"bsonType": "object",
"required": [
"businessName",
"address",
"location",
"phoneNumber",
"web_url",
"category",
"email"
],
"properties": {
"id": {
"bsonType": "objectId",
},
"businessName": {
"bsonType": "string",
},
"address": {
"bsonType": "string",
"description": "must be string and is required"
},
"location": {
"bsonType": "object",
"required": [
"coordinates"
],
"properties": {
"type": {
"bsonType": "string",
},
"coordinates": {
"bsonType": "array",
"description": "2 double values, 1.for longitude and 2.for latitude respectively"
},
"phoneNumber": {
"bsonType": "array",
},
"web_url": {
"bsonType": "string",
},
"category": {
"bsonType": "string",
},
"email": {
"bsonType": "string",
},
"Photo": {
"$jsonSchema": {
"bsonType": "object",
"required": [
"business_id",
"uploader_id",
"url",
"label"
],
"properties": {
"business_id": {
"bsonType": "objectId",
},
"uploader_id": {
"bsonType": "objectId",
},
"url": {
"bsonType": "string",
},
"label": {
"bsonType": "string",
"description": "must be string that describes type of image like:- inside, outside, food"
},
"caption": {
"bsonType": "string",
}
},
"Review": {
"$jsonSchema": {
"bsonType": "object",
"required": [
"id",
"user_id",
"business_id",
"text",
"date",
"rate"
],
"properties": {
"id": {
"bsonType": "objectId",
},
"user_id": {
"bsonType": "objectId",
},
"business_id": {
"bsonType": "objectId",
"description": "must be ObjectId and is required"
},
"text": {
"bsonType": "string",
},
"date": {
"bsonType": "date",
},
"rate": {
"bsonType": "double",
},
"Bookmark": {
"$jsonSchema": {
"bsonType": "object",
"required": [
"user_id",
"business_id"
],
"properties": {
"user_id": {
"bsonType": "objectId",
},
"business_id": {
"bsonType": "objectId",
},
"Menu": {
"$jsonSchema": {
"bsonType": "object",
"required": [
"id",
"name",
"business_id",
"description",
"money"
],
"properties": {
"id": {
"bsonType": "objectId",
},
"name": {
"bsonType": "string",
},
"business_id": {
"bsonType": "objectId",
},
"money": {
"bsonType": "double",
},
"OrderHostory": {
"$jsonSchema": {
"bsonType": "object",
"required": [
"id",
"menu_id",
"user_id",
"ordered_at",
"delivery_location"
],
"properties": {
"id": {
"bsonType": "objectId",
},
"menu_id": {
"bsonType": "objectId",
},
"user_id": {
"bsonType": "objectId",
},
"ordered_at": {
"bsonType": "date",
"description": ""
},
"delivery_location": {
"bsonType": "object",
"required": [
"coordinates"
],
"properties": {
"type": {
"bsonType": "string",
},
"coordinates": {
"bsonType": "array",
"description": "2 double values, 1.for longitude and 2.for latitude respectively"
}
4.3.5 ER Diagram
ER Diagram ER diagrams are related to data structure diagrams, which focus on the relationships
of elements within entities instead of relationships between entities themselves.
The following are test cases based on the corresponding functionalities of WedetEthio
service locator system.