BilTaxi is a mobile application which is designed as a taxi pooling application thatprovides users to call taxi using their cell phones. For senior project, it is designed forAndroid OS. However, if time permits, it will be also designed for IOS.

BilTaxi will be designed and implemented for the taxis in Bilkent. People who live inBilkent will be able to use our application. If one wants to get a taxi inside of Bilkentterritory, he/she will be able to call it from BilTaxi, which will be available for

Android users.The application will detect the GPS location of the user and send it to the taxi center and taxidrivers in the center will be able to see location of the user and send a taxi to that locationwith informing the user what the taxi's plate number will be. With this way people who live inBilkent and unfamiliar with the addresses of Bilkent will easily get a taxi by using BilTaxi.And for the people who are familiar with the addresses and do not want to use GPSfunctionality of application will also have an option to send his/her recent address informationby entering a text to application which consists of a description of the recent address andwhich will be send to taxi center.

BilTaxi will also have a sharing taxi request option to reduce

the cost of transportationand by this way users will be able to share the cost of the taxi and go the near or samelocation. This will be useful for the students who have the same destination plan fortransportation since it will be cheap to use taxis and go to desired destination.

BilTaxi removes the problem of explaining the destination location to taxi driverespecially for foreign students and instructors, the route mistakes and costing tricks. As aprogramming language, we prefer Java for developing

an application based on Android OS.

1.1

Purpose of System

BilTaxi is a mobile application that provides an easy way of taxi pooling among

people who have a Bilkent identity. There are some application which seems to have a similartask with our application.If we make a little search from Android market or Google Play, wecan easily reach some of thetaxi-related application like "myTaxi", "Taxi Finder" and so on.All of these

applications have similar functionalities like calling taxi to the specific places

where you want, and calculating approximate fee of

taxi after giving destination route fromthe start route. But also some of them just find the closest taxi station and supply telephonenumber for taxi, that is, you should reserve taxi with calling them.

So many questions arisewhen you need to book a taxi,

for example;

4



Which number?



Which taxi companies work in this area?



How to precisely describe your location?

These questions are seems to be resolved by mobile taxi application as I mentioned "myTaxi"and "Taxi Finder" above. But, unfortunately, there is no program before BilTaxi which

enabletaxi pooling among user.

As we consider taxias a luxury transportation option, because it

costs high charge. That's why, majority of people would prefer publictransportation vehicle.However, we will change this situation in Bilkent, as we will enable taxi pooling amongBilkent user .Moreover our program is not addresses to all user

from different city or country,because, our main aim is to provide taxi as fasteras possible in a small area,

and also anotherpoint of view, taxi pooling cannot be applicable within a wide range of area, as people cannottrust each

other for travelling together in a long distance.

1.2

Design

Goals

Performance

The performance of BilTaxishould be quite effective. Since, our program works withserver, every process should be fast. When we are using BilTaxi, it is criticalimportant to data transfer time between client and server.

Usability

BilTaxi

should be easy to use. First of all, it will be only used by Bilkent society, but itcan be used by many kind of people in the future. For this reason, we have to considerall kind of people while we are designing BilTaxi.

Availability

The call/reservationsteps will be available until user chooses going previous or nextstep and application will be available until user terminate it.

Memory

Database management will never contain any bug in transactions such as connection,saving, deletion and browsing. Processes in database will not take long time.

5

User Friendly Interface

User interface of application will present ease of use. Interface elements will bedesigned and located in such a manner that user will be able to understand how to useand see every element of user interface in the related screen.

Updateability

The application will open to updates in order to make application more effective onuse, present usability of more functions, improve algorithms of system and changeinformation of call/reservation.

Security

The application will show respect on privacy. Information of users will never beleaked. Unless users want to share their reservations, no other user will be able accessthat reservation.

Quality

Overall quality of both application and database management will satisfy both usersand staff of taxi rank. Mechanism of the system will never halt as long as there occurextraordinary situations.

1.3

Definitions, Acronyms and Abbreviations

Android:

Android is an operating system developed for certain smart phones as wellas tablets. It is currently the most used OS among smart phones.

BilTaxi:BilTaxi

is thetaxi pooling program specialized for Bilkent Society.

It isabbreviation of Bilkent Taxi.

OS:Operating System

6

1.4

OVERVIEW

BilTaxi is an android based mobile application which allows its Bilkent users to getataxi

in an easy and fast way. It is planned todesign

for Bilkent users but might bedeveloped

for a general use later.

First of all, users can get taxi with the help of this application which gets instant gpslocation of user and sends it to taxi station. Then, taxi station gets the request and informsuser with the taxi's information (e.g.

plate number, approximate arrival time) that will goto user's location and get the user. This feature helps to users who are not very familiar toplace where he/she requested the taxi. Users who are familiar with the addresses can alsoenter address information for instant taxi requests.

Secondly, Bilkent users can make reservation with desired time and destination time.For example, a user can make a taxi reservation to two days later of reservation day withdesired time. With this functionality, users will notlose

time to get a taxi.

Another feature of application is taxi pooling option. Users can make reservation on aspecific day, time and destination point (reservation people quota specified by reservecreator) and share it with the BilTaxi Community. People who have the sametransportation plan can join to that reservation. To give a more specific example, Murat isplanning to go to airport one week later but since taxi costs a lot of money for a singlecustomer to that destination, he wants to share his taxi reservation plan with

BilTaxiCommunity and so people who have the same plan will be able to join this transportationplan. When reservation quota is full enough with requests, system changes it status to fulland does not let people to join that reservation anymore. People will be able to share andreduce to costs for the transportation with the help of this feature of application.

Finally, Bilkent has a lot of foreign students and faculty members and sometimes theyexperience some difficulty to call a taxi and use it for transportation. With the help ofBilTaxi applicationforeign

people will be able to get a taxi in a very easy way.Application has cost calculator which gets departure and destination points and calculatesapproximate

cost. This helps users to aware of approximate cost which isuseful

forespecially foreign people. To reach that goal, the English language support of theapplication will be provided for all users.

7

2.Current Software Architecture

Taxi pooling applications and websites are extensively being used in many countries. Therearemany examples of these services. Some of them have many similar features with ourapplication. For example, Carpling service of United States is using Gmap, calculates thedistance, shows the route and presents users making reservation like our project [1]. There arealso many smartphone applications in AppleStore for iOS and Android Market for Android.One of them have an unique property which is community like our application. This Androidapplication is using community to share taxi reservations to reduce the cost and have ajourney with other people to make it more fun [2]. We can find many examples of theseservices around the world and in Turkey like “Taksi Bul” [3], “Alo Taxim” [4], etc. However;software architecture of none of these applications was publicly shared.

3.Proposed Software Architechture

This section of the report presents the proposed software architecture of BilTaxi application.It startswith the overview of the proposed architecture and continues with the subsystemdecomposition, hardware/software mapping, persistent data management, access control andsecurity, global software control and boundary conditions sections.

3.1.Overview

BilTaxi project is composed of three layers; Interface Layer, Application Layer and DatabaseLayer. Interface Layer is responsible of user interface part of the application. ApplicationLayer manages user operations and database connection. Database Layer does databaseoperations.

3.2.Subsystem Decomposition

In this part responsibilities of the layers, their subsystems and how they interact with echother is explained.

8

3.2.1.Interface Layer

Interface Layer and its subsystems are demonstrated in Figure 1 below.

Figure 1:Interface Layer of BilTaxi

Interface Layer is responsible for user interface part of the application. Related screen showsup thanks to Menu Manager being subsystem of this layer. The other subsystem MapManageris responsible for Gmap plugin integration when Gmap is required to be used.

3.2.2.Application Layer

Appliction Layer and its subsystems are demonstrated in Figure 2 below.

Figure 2:Application Layer of BilTaxi

Application Layer is responsible for database connections and managing interactions ofDatabse layer and Interface Layer. It has two subsystems to operate these processes.DBWrapper manages database connection in each time required. It provides connectionto9

database when inputs are required to send Database Layer to be stored and when an outputwhich should be taken from database, is required to show to user. AppEngine takes the inputsof user from Interface layer forwards them to Database Layer or similarly when an output isneeded to show to user, it takes the output from Database Layer.

3.2.3.Database Layer

Database Layer and its subsystem are demonstrated in Figure 3 below.

Figure 3:Database Layer of BilTaxi

Database Layer is for storing and retrieving data from database and managing databaseoperations. Operation management is handled by DBManager. Storing, retrieving, comparing,progressing, checking and many more operations are under responsibility of DBManager.

10

3.2.4.Overall System

The whole proposed layered structure of BilTaxi is shown in Figure 4 below.

Figure 4:Layered structure of Biltaxi

11

3.3

Hardware / Software Mapping

BilTaxi is a mobile application and going to be designed for Android OS as a beginning andcan be designedfor iOS as well for an extension. Network connection play a key role for ourapplication , since establishing communication between taxi station and people requiresconcurrent internet connection . After authentication of user , individually stored databaseshould be activated in order to keep track of user's all trips , reservations , individualinformations and encrypted version of user id and password . For all these ongoing process ,there must be client-server relation . For BilTaxi application , server side of our application isprovided by taxi station with using our server system of application . Server side isresponsible for collecting all taxi booking , reservations , destinations and other requiredinformations in order to respond user's desire .

The basic relations of hardware / softwarecomponents are illustrated below in the figure .

Figure

5

:

Basic representation of Hardware/Software Mapping

12

3.4Persistent Data Management

BilTaxi application must provide data storage and also control flow of data in system withusing most efficient DBMS . Increasing user satisfaction and satisfaction of user's demand ,data storage and transfer has to be faster as possible . Since , there is no one who except theserver respond more than expected seconds while database and server are interacting eachother . Firstly , when user sign-up our system , first individual database is created according tofilled information in sign-up page. Then , with creating unique user identity , we are going tokeep track of user's all trips and reservations with date , hour and other required info .Secondly , individual informations and encrypted version of user id and password will be kepton hand . If userface with any crash or error related to our program , our back-up service willsupply new password corresponding to user id and informations which are supplied by user .Finally , for avoiding data loss and having persistent data storage , before each modificationor update of database , previous version will be stored and back-up in order to be prepared forall situations.

3.5

Access Control Security

There are specific user groups who have different aim for using system , that's whyaccessibility is important to each task in system which should provides well-bounded user-interface . That is , authorization and security of application is important not only forbounding system but also protecting account and storing passwords . All of users have aunique id and encrypted version of password while log in system , the system controls theirpassword and unique id with checking 32-bit encrypted version of data in database .BilTaxiprogram has a two major user ; one of them is taxi station (server side) , another one is clientwho are reserve or booking a taxi (client side) . After authentication of each user , BilTaxiapplication provides different UI for them

so as to avoid user violation . Basically , clienthave a chance to sign-up , login , make immediate taxi call , make booking for future time ,share reservation with public , attend to a booking of another person , list shared bookings andcalculate distance and cost with using client side of our application. Taxi station have achance to view all orders , receive booking for future times , delete past orders , and confirm /respond user's orders with using server side of our application .

13

3.6

Global Software Control

BilTaxi application has variety of stakeholders corresponding to different tasks , which aredatabase manager , user interface manager , encryption and security manager , networkmanager and application manager (admin) .Database manager is responsible for storing eachof data and also control flow of data in system with using most efficient DBMS .UI manageris mainly focus on most remarkable and effective interface desing so as to attract much morepeople's attention to encourage them highlyunderstandable application .Encrytion andsecurity manager who plays a key role for creating encrypted data for each user's passwordand another secret info that shouldn't accessed by others, also are responsible for specific usergroups where accessibility is important to each task in system that should provides well-bounded user-interface . Network Manager is mainly focus on concurrency and connectivityof application for each user . Application manager (admin) is responsible for each task ofsystem .

14

Figure

6

:Structure of Software Control Corresponding to Stakeholders

3.7Boundary Conditions



While the BilTaxi is running to locate the location of the user by using gps, gps signalmay not be able to locate location of the user because of

weak signal. The systemshould give warning message that informs user about the weak signal and failure oflocate process. Then system should direct user to locate his/her location manually.

15



While the application is running and the battery of the cell phone dies, BilTaxi shouldbe terminated. If battery is charged and application is runned again, BilTaxi will forgetwhere it has left last time and start a new session for that user.

by enteringaddress information, the internet connection at the taxi center may be lost. Thus,system should inform user about the connection failure with the taxi center and maygive a choice to call the taxi center with the number in the system.



When taxi center approves a taxi request and sends a taxi to the user, taxi centershould send a confirmation to user by using the system at the taxi center. If sendingthe confirmation failures, system should warn the taxi center to resend confirmationmessage to user . Taxi driver should wait until the confirmation message sent to user.In this proccess, if the user cannot get a confirmation message from the taxi centerwithin a time period, user will be informed that confirmation is failed and user will beable

to make a new request to taxi center . The past request from the user that havefailed to confirm by taxi center will be canceled by the system at the taxi center.



If the system at the taxi center is under maintenance and any taxi request comes tocenter from any user under that condition, users should be informed that the system atthe taxi center is under maintenance.



If user cancels a taxi booking that is available for the usage of other users (taxipooling), each users that have joined to booking should be informed that the bookingcreator is canceled the taxi pooling request.



If taxi center may not be able to send a taxi to the user because of reasons out ofsystem problems such as lack of taxi car, weather conditions etc. , users should beinformedabout the problem by the taxi center.

4.Subsystem Services

BilTaxi has closed layered architectures with connected structures (user side systemand taxi center side system). The closed layered architectures should start from beginning andone layer should follow the layer below. This structure provides maintainability to the system.

16

Presentation layer is the top layer of the BilTaxi application. This is the layer that responsiblefor the visualization like displaying menus and interacting with users. Moving to the lowerlayer which is the application layer is done

if the interaction with the presentation layer iscompleted and processed. This method calls the takePhoto method that sends the taken phototo the application layer. To get the location of the user, the gps locator class is composed inapplication layer.

After detecting the location of the user, the location information is sent toagaing the application layer and then to taxi center's application layer.

Application layer is responsible for locating the location of the user, directing the locatedusers info to the taxi center system, creating taxi pooling request and sharing it with otherusers, allowing other users to join created and shared pooling request, cancel the poolingrequest.The application layer uses the information needed in database from the database layer.

Then completes the requested process interacting with the application layer of the taxi centersystem.

5.Glossary

Android:

Android is an operating systemthat is suitable for smart phones and tablets.

Android is one of the most popular operating system that is used by smart phones.

iOs:iOs is an operating system ,similar to android, that is designed for smart phones andtablets. iOs is among the first two most popular operating systems designed for smart phones.