GCab Entry
by admin- Published:April 19th, 2008
- Comments:8 Comments
- Category:Android
What is GCab?
GCab is a networked client-server application utilizing the unique features of the Android platform to allow users to quickly hail a cab from the device. This eliminates the usual steps of finding the phone number of the local cab company and making a call in situations where talking on the phone may not be appropriate or possible. GCab sends all the relevant information which is used by the local cab company to dispatch a cab to the user’s location, thereby making this an indispensible application for the person on the go.
Purpose
The purpose of GCab is to make it convenient for users to get a cab without having to know the phone number of a local cab company or even having to make a phone call. GCab makes it easy to quickly get picked up from wherever they may be.
Design
GCab is designed to be a quick, easy to use, and simple application to hail a cab. GCab only collects the most basic information required from the user in just three steps. Leveraging Androids features, GCab is able to provide a local cab company with a pickup address, desired pickup time, vehicle type, payment method, and cell phone number. The cab driver is dispatched through the normal channels and goes about his business as usual. GCab checks to see when the cab has been dispatched and notifies the customer automatically. Details about the cab such as the company name, cab number, and phone number are displayed in a notification screen for reference.
Features
• Designed with touch screen use in mind
• Simple three screen interface
• No account creation or login required
• Seamlessly utilizes Android’s always-on networking to send and receive data
• Utilizes GPS to locate user and shows location on Google map
• Provides cab company with pickup address using reverse geocoding
• Uses Android’s notification system to inform user when cab is on its way
Technology
GCab is part of a client-server application software solution.
Client
The GCab application runs on any device that is Android enabled with support for networking and GPS.
Communication
The client communicates with the GeoNames web service and utilizes their reverse geocoding feature to translate from GPS coordinates to street address. This was done as a workaround for the ADC (Android Developer Challenge) until the Android platform’s reverse geocoding is fully developed.
The client also communicates with the GCab server and sends user requests consisting of the following information:
• Desired pickup time
• Address
• Vehicle type
• Payment method
• Phone number
Server
The server is written in PHP and is responsible for receiving requests from clients, storing them in a MySQL database, responding to queries from clients, and providing additional information about the cabs as they are dispatched. For the purpose of the ADC the server automatically "dispatches" a cab from the Yellow Cab Cooperative. In actual use the intent is for a dispatcher at a particular cab company to interact with the GCab web application. Utilizing Google Maps this application shows incoming requests and allows the dispatcher to send a response to the user with an estimated time and cab number in just a few simple clicks.
Android
Platform technologies featured:
• Always-on networking
• Location based service (GPS)
• Notification system
• Touch screen GUI
Usage Examples
Use Case 1:
Three young women in their early 20’s go to a dance club in the city to party and have a few drinks. At the end of the night they realize its past midnight and their ride left without them. The music is loud so one of them uses GCab to request a cab to pick them up right away.
Use Case 2:
A group of 6 college students is preparing to attend the big football game across town. They’ve started tailgating at their fraternity house and had a few drinks. One of them requests a van to pick them up in 30 minutes so they can continue the festivities.
Use Case 3:
A 38 year old internet startup executive finishes giving a presentation in front of a group of venture capitalists. He forgot to call a cab to take him to the airport right after the meeting to catch his flight. As the last presenter is speaking he discreetly uses the GCab application and requests a cab in 15 minutes with the option to pay using his company credit card.
Comments/Suggestions?
I’d be interested to know what everyone thinks of the idea and what I’ve described here. Could you see using this in real life? Any other comments and suggestions welcome.












8 Comments
Hey,
Good job…i have also submites 3 apps…but urs is cool one…n novel, i tried my hand at Google maps, but was unsuccessful…
i would be gratful if u can send me your source code on my e-mail addresss…
All the best 4 contest…God bless
Hi!
Very interesting this app - think it could work good. Cross the fingers for the chellenge!
Have the same group of people in mention because I’m making a diploma thesis of android for mobile communities at the telematic area. So i want to create a mobile community. Maybe you could give me some answers of your implementation.
- Your Server has implemted a webservice in php?
- Which technologies did you use? SOAP XML RPC ? Normal XML? For the communication between android and the Server
- How did you parse the answer in Android or did you make this with a sms and an intent receiver of this incoming thing?
Thanxx a lot for answering!
CU
Christian
- Germany -
@Parth, thanks for the comment and good luck as well. Sorry I am not distributing the source code but feel free to ask any questions and I’ll try to answer.
@Christian, Sounds like an interesting project you are working on. Here are some responses to your questions:
- The server is implemented in PHP, for no particular reason, it was just convenient because of my hosting provider.
- I’m using normal XML, there is not alot of data being exchanged and I wanted to keep it lightweight.
- The data is parsed on the Android side using the Simple API for XML (SAX).
Hope this helps and thanks for visiting!
Hello,
Actually we are building the relevant application called Taxi Ride Sharing where based on the user location, the system will display no of users who want to share the ride when they have same destination. This is very typical case in metro cities like San Francisco and NY..
I will higly appreciate if anybody has relevant material.
My email is mjshah85@yahoo.com
Once we are done with this app, we will post it here as well anddev.org
Hello Admin,
Is it possible if you can share the code where I can make request to Servlet using HTTP connection on Apache web server?
I have function as belows:
private void invokeServlet(URL url) {
// TODO Auto-generated method stub
HttpURLConnection hc =null;
hc = new HttpURLConnection(url);
InputStream is = null;
OutputStream os = null;
StringBuffer b = new StringBuffer();
try
{
hc.connect();
}catch(Exception e)
{
e.printStackTrace();
}
}
Here it doesnt allow me to call the constructor
hc = new HttpURLConnection(url);
@Maulik,
Interesting idea, let us know how it goes. As for the question regarding connecting to the web server, I use the URL’s openConnection() method like this:
URLConnection conn = url.openConnection();
You can then set it up for input or output and use I/O streams for reading/writing. I’ve seen other ways as well but this one seems easy to me. Hope this helps and good luck!
Hey thanx for answering.
Just have one more questions …
in which way do you get the acceptanze back from the taxi server? SMS or what notification intent is the android app listening? (last 3 screenshots)
Thanxx
Christian
@Christian,
Currently the app on the device polls the server with a unique ID that it received when it made the request. This could easily be changed to use SMS but the current implementation hopefully makes it easier for the competition judging since they don’t have to simulate an SMS message being sent to the device for it to work. Since the focus for the ADC is on the device end user experience I decided to keep it as simple as possible.