Professional Documents
Culture Documents
Full and Final Project
Full and Final Project
October 2017
Certificate
We hereby accept the work contained in this report titled: “Get It on Demand”, as a confirmation to the
required standards for the partial fulfillment of the degree of Bachelors of Science in Computer Science.
i
Dedication
I dedicate this project to my Parents and teacher who support and motivate us at every stage of our
degree. Also, without prayers of our parents it could not have been possible.
ii
Acknowledgements
First of all, thanks to Allah Almighty, the most merciful and beneficent. Who helped us to complete the
project, we are especially thankful to our parents and family members who supported us at every aspect
of life.
We are also very thankful to our supervisor Mr. Zulfiqar Ali Bangash, who provided us guidance and
motivation at every instant we needed. We also especially thankful to all instructors who motivated us
to achieve the goals.
iii
Abstract
The project “Get it on demand” is automation system of the taxi system, it has two different platforms.
Admin panel, driver application, and user application. Both the user and driver applications are
developed in android studio using java programming language while the admin panel is web based.
Driver application register the information of driver through signup activity, while admin panel gives
him authentication and provide the taxi. Also, driver application can receive request from clients. While
admin keep an eye on this process through the panel.
User application have ability to show the nearest taxi on the map, and just for one push, application
send notification to nearest driver to pick up from the desired location and drop off to the desired
destination.
iv
Table of Contents
Declaration............................................................................................................................................ i
Dedication ............................................................................................................................................ ii
Acknowledgements............................................................................................................................. iii
Abstract............................................................................................................................................... iv
v
2.2.3 Limitations/Gaps within Existing Techniques/Works ...................................................................... 9
2.2.4 Proposed Improvements in Existing Works .................................................................................... 10
2.3 Summary ............................................................................................................................... 10
3.4.1 Tables.............................................................................................................................................. 18
3.5 Work Flow Diagram ............................................................................................................. 18
vi
4.3 Implementation Tools and Technologies .............................................................................. 34
6.1 Contributions......................................................................................................................... 42
6.2 Findings................................................................................................................................. 42
References......................................................................................................................................... 43
Appendices ....................................................................................................................................... 44
vii
List of Figures
Figure 3.1 : User System Overview ...................................................................................................... 12
Figure 3.2 : Admin Panel Overview ..................................................................................................... 13
Figure 3.3 : User Application Overview ............................................................................................... 14
Figure 3.4 : Driver Application Overview ............................................................................................ 15
Figure 3.5 : Architecture Diagram ........................................................................................................ 16
Figure 3.6: ERD .................................................................................................................................... 17
Figure 3.7 : Work flow diagram............................................................................................................ 18
Figure 3.8 : System Architecture .......................................................................................................... 19
Figure 3.9 : Use case Diagram .............................................................................................................. 20
Figure 3.10 : Activity Diagram ............................................................................................................. 20
Figure 3.11 : Sequence Diagram ........................................................................................................... 21
Figure 3.12 : Application Controls ....................................................................................................... 22
Figure 3.13: Sign in/ Sign up Activity USER Application ................................................................... 22
Figure 3.14 : Driver Application ........................................................................................................... 23
Figure 3.15 : First Activity after sign in................................................................................................ 23
Figure 3.16 : Ride card.......................................................................................................................... 24
Figure 3.17 : Admin First Page ............................................................................................................. 24
Figure 3.18 : Clicking in Home Navigation Bar ................................................................................... 25
Figure 3.19 : Clicking in Home Navigation Bar (Driver panel) ........................................................... 25
Figure 3.20 : Ride now Button activity ................................................................................................. 26
Figure 3.21 : Ride Now Notification to Driver ..................................................................................... 26
Figure 3.22 : Driver card view of Orders .............................................................................................. 27
Figure 3.23 : Driver Options ................................................................................................................. 28
Figure 3.24 : Location ........................................................................................................................... 28
Figure 3.25 : Admin First Page Vehicle View ...................................................................................... 29
Figure 3.26 : Drivers list (add/delete/update) ....................................................................................... 29
Figure 3.27 : History of Rides............................................................................................................... 30
Figure 3.28 : Records of the Passengers ............................................................................................... 30
Figure 3.29 : Notification for Offers to both Client and Driver ............................................................ 31
Figure 3.30 : Location of the Peoples related to the Application.......................................................... 31
Figure 4.1: Andriod Studio................................................................................................................... 34
Figure 4.2: Eclipse................................................................................................................................ 35
Figure 4.3: Apache Tomcat Server....................................................................................................... 35
viii
List of Tables
Table 2.1: Comparison to other Application ........................................................................................10
Table 5.1 : Test Case 1 .......................................................................................................................... 38
Table 5.2 : Test Case 2 .......................................................................................................................... 38
Table 5.3 : Test Case 3 .......................................................................................................................... 39
Table 5.4 : Test Case 4 .......................................................................................................................... 39
Table 5.5 : Test Case 5 .......................................................................................................................... 39
Table 5.6 : Test Case 6 .......................................................................................................................... 40
Table 5.7 : Test Case 7 .......................................................................................................................... 40
ix
Chapter 1 Introduction
i
1.1 Overall Description
Get It on Demand application is computerized reservation system of cab, if someone request from his
mobile using android application installed on mobile phone whenever needed. Hiring of a cab will be
available on single click. An android application will be designed for the communication between cab
and passenger installed on mobile phones. The reservation system is not only limited for booking, it
also shows the location, route, estimated fare, estimated time as well as shortest path to destination. It
also shows the low and high traffic route for mitigation of fare and time. The main theme of this project
is to secure traveling as it records the passenger address as well as the driver and cab detail in the
database system.
This project is based on android application using GPS and internet. Calling a cab will be possible in
the presence of GPS and internet and android based phone. There will be three main parts of this
application, two parts will be android based and one part will be designed in web using bootstrap
framework. Below are the parts of application.
• Admin panel
• Driver application
• Client/User application
Admin panel is a web based application which has the ability to add/drop the taxi and driver, sending
notifications to clients and drivers through firebase. Admin can see the location of current taxi
drivers/passengers on map and also current rides. After the completion of rides, all information about
ride is saved into database can be view through admin panel.
Driver application automatically shows and update driver current location and send to webserver using
background service. Webserver keep on updating the current location of driver in database. Driver
application also receive notifications from awaiting passengers as well.
Passenger/User application is same as driver application, it automatically shows and update passenger
current location automatically and sore it into database with the help of webserver. Also, having the
ability to calculate the nearest location of the taxi driver from passenger, and send request to pick up
from the desired location.
As we know that now a day everything become advance. People are trying to get everything easily with
security. For this purpose, we developed “Get It On Demand”, which is complete automation of taxi
system. People can call the taxi from anywhere either at home or office using this system. And taxi will
arrive in few minutes and people will ride secure to anywhere they want.
2
1.1.1 Objectives
The Objectives are:
• Secure journey
• Automation of Taxi system
• Time saving
• Low budget journey
• Get the taxi through mobile
This system automates whole taxi system. Now reaching destiny is much easier and secure.
This system has decreased the travelling time and extra fare charging.
1.1.3 Methodology
For attempting the problem description, we developed application for android operating system.
This application is developed using android studio. Android studio is platform for developing
android applications. It is freely available and provide many functionalities. And for web admin
panel, we used eclipse compiler. For running the web admin panel, we use the tomcat apache
server 8.0. we wrote our own customized API’s to get access and insert information in database.
For database we used php myadmin local host. We create our whole database with tables in
wamp server. The admin panel takes data from phpmyadmin and give it to android interface.
Also, when client signup there accounts they will store in phpmyadmin with the help of
webserver and then the webserver inserts it into database table. Also, keep the updated location
of both client and taxis.
In our application, we used the google map API for finding different routes, and through GPS
we collected the location of both (client and driver), the collected location is then saved into
the database through webserver. We used custom algorithm to find nearest taxi around the
3
client. The algorithm will take the location of client and will calculate the distance of taxi
location. Then client will receive location of nearest taxi. After that they can communicate with
each other and client can book cab.
In this application, we provide service to call the cab through your location with the help of
GPS and Internet. And we used custom algorithm to find shortest path which help client to find
which taxi is near to him, and we also provide the detection of traffic on that route too.
We are now focusing to extend this service in Islamabad then after the completion of the project
we will spread it into all over Pakistan and may be to international countries as well.
• Admin Panel: Admin panel is web based panel. Which can be accessed from browser of
personal computer and mobile.
• Driver and User application: Driver and user applications will only run on android
operating system devices.
4
1.1.8 Assumptions and Dependencies
The following are the assumptions of the project.
• Internet
• GPS
• Web Server.
• Android Operating System
1.2.1.1 Description
In this application, there are two types of Registration. First one is registration of user/client
and second registration is for taxi driver in Get it on demand system.
1.2.1.2 Criticality
If the user/client and driver/car owner is not registered with our system. He/she will not be the
apart of this system to communicate with each other.
1.2.1.4 Risks
The only risk of this application is the fake accounts from client side. i.e. Account defaulters
and the car Rubbery.
5
1.2.2 Login Requirement
1.2.2.1 Description
The user/clients can login if they have successfully registered them with our application, same
applies to driver application. The driver signup will be completed after admin approval.
1.2.2.2 Criticality
If user/client of “get it on demand” is not sign in he/she cannot use these services of the
application. Same for the driver panel.
• Pavilion HP Core I 5
• Having 6GB RAM
• Samsung J7
• Samsung Note 2
• Android 4.4.1 Kit Kat: we use Samsung J7 having Marshmallow but for this application
must be at-least Kit Kat.
• Window 10: HP laptop with window 10.
• Tomcat Apache Server and Wamp Server.
6
1.3.4 Communications Interface
We developed our custom API and Tomcat apache server to communicate with client to
database and database to driver and vice versa.
1.4 Scenarios
The scenario for this application is: If a client wants to ride using online taxi system in “Get it on
demand” they must create their accounts and assure the availability to the database and the server. Once
creating of account is done, the client can use this application to get a cab by pushing one click through
GPS and Internet. In second hand if we talk about the driver application. Driver also must create account
and verify himself from company then they will receive the notification from server to pick up the
passenger from his/her location. If driver wants to join the company, the admin panel will verify the
driver information and signs agreement with him/her. And admin panel will show all the taxies in map.
7
Chapter 2 Literature Review
8
2.1 Introduction
We are in the 21st century the regime of reboots, everyone is eager to find easy way for the task
completion. Specially searching a taxi cab. Most of people use taxi cab day in and day out a very hectic
task. Now a day a taxi ridding is very difficult because firstly you will go to the taxi station and search
taxi, after searching hours we are still not sure if we can reach our destination on time. So, for these
issues we think that we should make an application through which people can ride from their location
through mobile phone and with the secure journey. So, this will make the taxi system very reliable,
secure, and easy as well.
2.2.1 Terminology
As we know that, past few years’ technology keep on changing, now they are finding the way
to make everything possible using mobile phone. Due to day by day increasing in the
technology. We think that there must be the system which should manage the taxi system
automatically. Just clicking of one button taxi come to the area and pick the passenger and drop
him to his desire area.
9
2.2.4 Proposed Improvements in Existing Works
We developed this software to provide the proper way for passenger to travel and give them the
best service. In this project, admin panel have privilege to manage the records of both (drivers
and clients), and for the client to find nearest taxi with the fixed price system. We linked the
webserver or database, passengers end and driver’s ends to communicate with each other. We
are providing the service for the passengers to find taxi in no time, this was necessary because
if a user came from other city and does not know the locations of the taxi, map will help him a
lot to contact to the taxi. Now we apply this application on local webserver.
2.3 Summary
In this chapter, we wrote about the mechanism which will be follow to complete this project. Taxi
finding is a major issue in the area, peoples waste their time because of no taxi nearby. Either they will
find it in taxi stop. Many developers have developed many taxi applications, unfortunately there are a
lot of functions which are not working properly or they may have left behind lot of functionalities. Due
to lack of functionality the passengers don’t use their applications. We describe a system which linked
all the taxi’s connected to the company, clients and drivers. The system is made using map functionality
so that if a passenger has come from any location he can easily find the taxi to reach the desired location.
Serial
Uber Taxi Caller Get it on demand
No.
1 Just Show the location of another Showing location with
Showing location
person shortest path
2 Traffic detection of
No traffic detection on route No traffic detection
route
3 No shortest path on Show shortest path on
No shortest path on map
map map
4 No Run time tracking on map No run time tracking Live streaming of
on map tracking on map
10
Chapter 3 System Design
11
3.1 Introduction
The Application is designed to provide a technique to help passenger to find nearest taxi in their area.
Also, the taxi will get the passenger location and pick him from his location through map. The
application is developed in android studio which we used for every android device such as Tablet,
emulators, smart phones etc. we use Eclipse for made a web server to store data in database
“Phpmyadmin” and retrieve the data from database.
3.1.1 Purpose
This part of report is to deliver all about the layouts of the implemented code.
Second Scenario is login, where user will enter his user name and password in application
login page, application then connects to the server using customized API’s [4]. [5] and check
login information provided by user, if the details are correct user will be logged in. After login,
the location of the user will be updated in database (Azure) by collecting his location using
GPS, and updated through webserver. The Figure 3.1 shows the user system overview and
different stages through which the application will go through.
12
If user click on ride now, then a request is sent to a web server for a nearest driver we have
applied an algorithm that server will choose the shortest driver available on the map. The driver
application has choices accept, reject, in route a user ride request sent by web server. If he
accepts the request webserver will send his location through GPS [5, 6], arrival time, car name,
contact detail, etc. to the user application. Driver will pick the user from his location and then
user will choose drop off location.
The third main part of application is admin panel shown in the Figure 3.2. Admin has the
authority to register car, driver using his detail. Admin can view location of all the drivers,
users, current rides, etc.
13
3.1.3.1 User Application
User application overview is shown in Figure 3.3, which describes the user application
working. User can sign in or sign up. For sign up the full information will be required i.e.
First Name, Last Name, Mobile number, CNIC, Address. Etc. then the data will save in
database through web server. While if someone sign in. the web server will check if the user
is registered or not. If user is registered, then the application Map fragment [6] will open and
get the location of user and update in database.
14
F IGURE 3.4 : DRIVER APPLICATION O VERVIEW
3.1.4 Definitions and Acronyms
• API – Application Program Interface (is a set of routines, protocols, and tools for building
software applications.)
• GPS – Global Positioning System (a worldwide radio-navigation system formed from a
constellation of 24 satellites and their ground stations)
• Task – One step or piece of a workflow
• User – Any person who uses the user/passenger application
• Driver – Any person who has a registered car with a company
15
3.2.2 Constraints
Platform
Operating System
3.3 Architecture
The system architecture is given below in Figure 3.5. Which describe the whole process of the
application. The user will connect to server through customize API’s and will update the location every
second in database. On the other side the driver location is updating.
3.3.2 Module
Our system consists of following main modules.
• User Application
o Login
o Ride Now
o Ride Later
16
o Registration
• Driver Application
o Login
o Registration
o Ride Oder view
• Admin Panel
o Monitoring
o View/Add/Edit/Delete
o Live View
• Database
• Webserver
17
3.4.1 Tables
• Users
• Users_Location
• Drivers_Location
• Taxi_Information
• Awaiting_Confirm
• Rides
• Taxi_Status
• Request_status
• User_Roles
18
3.6 High Level Design
The overall view of the system is basically shown in the figure 3.8. In this project, the user asked for
ride. The application will send its location to database then the user application will automatically send
the notification to the nearest taxi.
19
F IGURE 3.9 : USE CASE DIAGRAM
Figure 3.10 shows us the Activity diagram of our project. Which shows how the activities do
their activity. The first activity can request for sign up or for sign in. server give them
authentication. Then client search for ride and send request to the nearest taxi cab. The driver
needs to bypass the sign in or sign up steps. Then driver activity receives the notification and
give response to the client.
20
3.7.2 Sequence Diagram
Figure 3.11 is one of the sequence diagram of our project.
21
F IGURE 3.12 : APPLICATION CONTROLS
The application controls are shown in the figure 3.12. Those controls are present in user’s
application. Different buttons are used to shift between different screens.
3.8.2 Screenshots
In this section, we provide the whole screen shot of our Project.
22
3.8.2.3 Driver Panel
23
3.8.2.6 Driver panel
24
3.8.2.8 Clicking in Home navigation bar
3.8.2.9 Client Panel
Figure 3.18 shows us the interface of the user app. Where user will see the taxies around him.
25
3.8.2.11 After Clicking Ride Now Button on User Application
Figure 3.20 shows the Ride Now Fragment. Where the user interface will push the button and
request will send to the nearest taxi. Form their location. Click on the driver marker will show
the estimate time with estimate distance
26
3.8.2.14 Driver Panel
Figure 3.22 show the Received order card from the client. When the driver receives the
notification from client the whole information will came from database and will show in the
user request order card with the information of the passenger.
27
F IGURE 3.23 : DRIVER OPTIONS
3.8.2.16 Location through GPS
Figure 3.24 shows the interface of the Google map which will automatically pick the location
of the both driver and user. And will tell you the path to reach the destination.
28
F IGURE 3.25 : ADMIN F IRST P AGE VEHICLE VIEW
3.8.2.18 Drivers list (add/delete/update)
Figure 3.26 shows the interface on which the admin can search/delete/update the driver
information.
29
3.8.2.19 History of Rides
Figure 3.27 shows the record of total rides.
30
F IGURE 3.29 : NOTIFICATION FOR OFFERS TO BOTH CLIENT AND DRIVER
3.8.2.22 Location of the peoples related to the application
Figure 3.30 shows the interface of the map fragment. Map fragment is designed in web where
the work of this fragment is to show the locations of the user and drivers both.
31
Chapter 4 Implementation
4.1 Discussion
This was the idea for the passengers to ride in the best cab reservation system which should be less time
taker and a secure system. From the current applications, we derived that there are lot of functionality
they remain and do not give the proper function to the passengers. That is the reason that majority of
passengers are finding taxi physically.
In Pakistan, most of the taxi company like “UBER”, they have the system which just pick the passenger
through GPS. They haven’t any functionality like shortest path, nearest taxi to passenger, no security
system was there. We came up with an idea that we should make a unique application must have the
upper functionalities. In which Passengers and drivers of one area communicates with each other
through Internet and GPS. Due to communication, they are available to see the information of drivers.
Then we discussed that, if a passenger came from other city or country how will he find a taxi route
also he may be even does not know about the destination place also not know about the taxi rent? For
this purpose, we provide a system which having the map for passenger to see the route and nearest taxi
on his area. Also, we added the fixed price per kilometer. So that makes really easily for the foreign to
use this service without any doubt and fear. Also, through admin panel admin can check the rating of
driver.
The important problem in this phase is that we tried to run apache server but every time there
were error of Tomcat 8.0 Apache server [4]. Then we take helps from our supervisor and fixed
that issue.
Microsoft Azure is the online cloud database. The problem of Azure is its really expensive. Its
subscription is 200 US dollars as we are student so we can’t afford its cost so for solution of
33
this problem. Our supervisor told us to use localhost “PHPMYADMIN”.so the database of this
application implements in Wamp server such as “phpmyadmin”.
34
4.3.2 Eclipse
Eclipse is use for making the web server. In this application, Eclipse is used for making custom
api’s. which will add and retrieve the data in database.
35
Chapter 5 Testing
36
5.1 Testing Techniques
As we know that software testing is the most important phase for the software. After finalizing software,
testing make it reliable and make it ready to publish in open source. Testing is used to finds the bugs
and also tell us the overall working and responses of the software. To test our application, we use many
techniques and that are the following.
37
5.2.1 Test Case 1
TEST CASE # 1
Module Name Verified Login
Test Priority High
No. Inputs Result which was expected Pass/ Failed
1 User Email Address Give Email address of the Passed
user/driver/admin
2 Password checker Check the password Passed
3 Push Login Button Search the data in database Passed
4 Check (If data meets) Go to Main Activity Passed
Check (If data not meet) Show Dialog box (Email Passed
Address/password are invalid)
TABLE 5.1 : T EST CASE 1
5.2.2 Test Case 2
Test case # 2
Activity Name Map Activity
Test Priority High
No. Inputs Result which was expected Pass/ Failed
1 Clicking sign in Button Go to Main Activity Passed
2 Home Fragment click Open the map fragment Passed
3 My Ride Fragment click Open the Order report Passed
4 Account Fragment click Open the logout fragment/ Passed
update account fragment
TABLE 5.2 : T EST CASE 2
5.2.3 Test Case 3
Test case # 3
Activity Name Map Fragment pick the location and update in database
Test Priority High
No. Inputs Result which was expected Pass/ Failed
1 Open the Home Show the Map Passed
fragment
2 Location pick Zoom to my location Passed
3 Get the location and Automatically get the location Passed
insert in database and paste it in the database
4 Update location each sec Update the location each sec Passed
38
TABLE 5.3: T EST CASE 3
5.2.4 Test Case 4
Test case # 4
Activity Name User request for the Ride
Test Priority High
No. Inputs Result which was expected Pass/ Failed
1 Ride now Button Notification sends to nearest Passed
Driver
2 Answer of Driver Client Receive Notification Passed
3 In route, rejected, Client receive Notification of Passed
accepted the input given by Driver
4 GPS location Show Location on map Passed
TABLE 5.4 : T EST CASE 4
5.2.5 Test Case 5.
Test case # 5
Activity Name Generate the Report
Test Priority High
No. Inputs Result which was expected Pass/ Failed
1 Click let’s go Notification sends to Passed
nearest Driver
2 Report When open the Ride Passed
Request. pick the
information of the taxi
driver
3 Adjust the data in Taxi information Data Passed
specific fields automatically set in the
field
4 Pick the total Pick the information from Passed
information database
TABLE 5.5 : T EST CASE 5
39
5.2.6 Test Case 6
Test case # 6
Activity Name Driver hand receive the notification of Ride request
Test Priority High
No. Inputs Result which was expected Pass/ Failed
1 Driver notification Came notification of the top Passed
of the mobile in driver app
2 Driver Report See the information of the Passed
user in report card
3 Driver Response Driver selected the response Passed
and send it through button
4 User receive the User receive the notification Passed
notification of the response of the driver
TABLE 5.6 : TEST CASE 6
5.2.7 Test Case 7
Test case # 7
Activity Name Driver hand receive the notification of Ride request
Test Priority High
No. Inputs Result which was expected Pass/ Failed
1 Pick location from app Open google map and pick Passed
the location of the both driver
and user
2 Show direction Google map show the Passed
direction and desired
destination
3 Reached destination Click on Accept and data will Passed
store in database
TABLE 5.7 : T EST CASE 7
5.3 Summary
In this chapter, we told about the testing of the application. As we know that testing session is the most
important part of making a good application. So, we derived the full testing in this chapter, which give
us absolute result. We take 4 types of test here. Which is written above. And all test gives absolute result
as desired.
40
Chapter 6 Conclusions and Future Work
41
6.1 Contributions
All member of the team contributed equally in this project. We divided the project in all members.
Tasks were given to those who were good in that particular area. As the members know about the
platform, each team member knows the platform which we worked on. So, for that every member
contribute well to make this project also the thesis documents. The working of android and webserver
is done by Jehangir Khan and Amir Khan. The work which is related to website done by Suleiman Khan
and Fazllullah. Also, each member tries their best to help in designing. When there was any difficulty
or problem every member came to help and contributed as their best.
6.2 Findings
As you all know our project is not researched based. In starting phase, we faced very difficulties because
the requirements were not clear. But in time, step by step we collect much information about to make
this project. There were many things which we had little knowledge in start, like to know about
webserver, how the data will be stored or retrieved from database online [10]. Then we know about
customized API’s, after that the location update. There were lot of information we find and make it
perfectly.
42
References
[3] "Create Very Simple Jersey REST Service and Send JSON Data From Java Client," 6 6 2016.
[Online]. Available: https://crunchify.com/create-very-simple-jersey-rest-service-and-send-json-
data-from-java-client/.
[6] "How to get and use location data in your Android app," [Online]. Available:
https://www.androidauthority.com/get-use-location-data-android-app-625012/.
[11] "Firebase helps you build better mobile apps and grow your business," [Online]. Available:
https://firebase.google.com/.
43
Appendices
44
Appendix A: Screenshots
In this chapter we will show you the design layouts of out application.
45
Figure 8. 3: Account Panel
46
Figure 8. 5: Sign In Account panel
47
Appendices B: Plagiarism Report
Get It On Demand
by 18025 jehangir khan
48