Tip:
Highlight text to annotate it
X
Hi, our project is Taxi Finder which is a mobile-based application. Taxi Finder is consisted
of two applications. The first one is for customers, which enables them to find the
closest taxis based on customer location at any time. The second one is for drivers, which
enables them to receive customer's requests and the driver can select one of these requests.
The customer application: if the customer wants to find a taxi he can select "find taxi
now", a map will be displayed showing customer's location and the nearby taxis. Each taxi has
an evaluation which shows how good the taxi was with previous customers.
After selecting a taxi, a screen shows up to specify the location where the customer
is going to. The location can be entered in two ways either by writing it using the key
bored or by selecting it using the map for example; we can select Khalid Bin Al Waleed
Street from the map and then click on request. After that, the request will be sent to the
driver's application.
The driver's application: the requests are transferred to this application by a web service
working in the background so that it is not required to keep the application open all
the time. Through the notifications which are going to be received from customers the
driver can know the customer's location and where he is supposed to go. The driver can
accept or reject any request. Once accepting any request, the distance between the customer
and the driver will be displayed on the customer application to enable the customer tracking
the taxi and the distance calculation will be updated frequently to make sure that taxi
is on its way to the customer. When the distance is less than 200m the taxi's plate number
will be displayed to the customer to know exactly which taxi is coming.
The driver's application contains a navigation map to know how to go to the customer location.
This feature helps the driver to arrive quickly to customers. For the purpose of this demo,
I will change the taxi location manually in the database to make it less than 200m just
to imagine that taxi has arrived to the customer. Now we should notice that the taxi plate number
and evaluation button are displayed in the customer application. Actually, the purpose
of this evaluation is to rate how speed the taxi arrives to the customer. If the taxi
didn't come the request will be canceled and the taxi will automatically take the lowest
score.
By default, the driver status is AVAILABLE which means he is on service right now. If
the driver does not want to work and he is not interested of getting requests, so he
can simply change his status into "unavailable". Changing into unavailable is approved if there
is no current accepted request from any customer.
If the customer wants to reserve a taxi at a specific time, he can simply click on "schedule
reservation". Here, he will be asked to enter the starting point and the ending point. For
example, we can select Kasem al Rimawi as a starting point and also select Isam Abu
Shattal where we want to go. If the customer didn't enter the time, the application will
not accept the reservation. After selecting the time and clicking on "reserve", he will
see a message saying "the reservation is added". For the driver to see all the requested reservations
he can select "show reservations" where he can select the best request which is suitable
to him. In fact, He can view the reservations either by time or distance between the taxi
and customers. If he accepts any of the available reservation requests, a message dialog shows
up asking him if the request is certainly accepted. He can select "approve". Once confirming
the acceptance, a notification message will show up on the customer application saying
that his reservation request was accepted by a specific taxi. In the customer application,
one of the available features is to see his unapproved reservations for modifying or deleting
them. Thank you for watching this video.