MOBIGUIDE: AN ANDROID APPLICATION TO LOCATE NEARBY LANDMARKS Motivation Imagine, you are stranded in an unfamiliar area, clueless of the location, your car out of gas, you feeling hungry and it’s almost midnight, so you need a place to stay for the night. This situation is not unlikely to happen to someone. What would you do in such a case? Ask someone for directions? Dial 911 and look like a fool, not knowing directions to the hotel which was located just a block ahead? Or pray to god and spend the night, without food in your car and hope that you can hitch a ride the next morning? Well, this exactly is the motivation for our project this semester. We intend to develop a mobile application that will ensure that you spend the night in a warm luxurious hotel, well fed and with a guarantee from the hotel manager that your car will be refueled and ready for you in the morning. The Mobiguide is a mobile application that will tell the user the location of the nearest hotel, hospital, gas station, restaurant, etc. No doubt, we have Google maps which help us quite a lot in this direction. The elegance of this project lies in the fact that, though Google maps can get you the location and directions to an address, it is not straightforward to locate a restaurant closest to your place. This application will help the user locate the nearest amenities, and it also saves the user a lot of time and energy by giving him the location directly instead of asking him to surf through numerous web pages. Another big motivation to make this a mobile application is the fact that, though laptops have been the most used and popular electronic gadgets of this century, they have not yet come on par with the mobile phone’s flexibility or ease of use. One can easily carry a mobile phone in his pocket, without the slightest hindrance of its presence. A laptop on the other hand, as compact as it can be, would still need a case. Due to this reason, people generally tend to carry their mobile phones with them all the time and prefer to leave their laptops at their home or in their office. Designing this application for a laptop would hence obviate the motivation behind the project, since it is built on the fact that it should be useful to someone who is stranded at some unknown place. We don’t think most people would carry their laptop along with them to every place they go, so building this as a mobile application would make it far more practical and viable. Related Work Location based applications have been developed in the past and without a doubt, will continue to grow in the future. The only change remains the degree to which the applications can be of practical use to people. There have been several applications which have tried to pinpoint the location of a person, landmarks, monuments, etc. Most of these applications, however, have been developed for computers. Very few of them have been developed for use on mobile phones. With Google introducing Android phones, there began a renewed effort for location based applications on mobile phones. Students of MIT have worked on several projects in this direction. An application called ‘Flare’ is a geo-location tracking system with which companies can keep track of their employees. Another application called ‘Geolife’ is developed as a mobile reminder. It is linked with Google maps on which a user can mark spots for to-do lists. Later, when he goes to that place, he is notified of the work, with an alert on the mobile phone. The ‘Re: Public’ application is a social-networking based application, which connects people in a particular location. The application forms a network with a fixed radius around it, and users can rate other users as friends, acquaintances, etc. Other users can look up a person’s profile and get an idea about them. There is another application that uses hotspots and marks a location’s popularity. It is called ‘Snap’. Users visiting a particular location can mark it as a hotspot on a global map and post their comments about it. Any new user arriving at that location can access the global map and get a list of comments posted by other users. Proposed Work (MOBIGUIDE) In our project, we wish to develop an application which will get the user’s current location from him, and based on the user’s input, would get a list of the nearest service location to him. The user could use the application to lookup anything, like a gas station, or a hospital or even a pizza restaurant. The application works as follows. Once the user opens the application, he has to enter his current location into the mobile phone. After this, he can select the service he wants (hospital, restaurant, gas station, etc). The application would connect to the Internet and retrieve results which are then processed to get a list of the closest locations providing the service. This information is given to the user, either in the form of a map or as a list, with addresses. We plan to make use of Google maps to retrieve appropriate information regarding the location of nearby service centers. The architecture of the model is simple. There is a user with his Android mobile phone. He enters his location into the application, and the application connects to the Internet and retrieves appropriate information. Further processing is done by the application to give the results in a useful manner. The architecture can be represented using the following diagram. 1 2 USER MOBIGUIDE 6 5 3 4 This application would be built using the Android platform. We chose this platform for several reasons. First, it is new and has great potential to become a widely used mobile phone service. The platform is flexible to configure and easy to work with. It provides several inbuilt libraries that can be used to reduce complex coding. Currently, Android applications are developed using Java, which is one of the most common languages. This makes the platform easy to understand, learn and use. Lastly, there are not many applications developed based on Android and we feel that it would be a novel idea to explore an area that has not been touched so far. Resources/Technical Specifications We will be developing this project using the Android platform which makes use of Java as a programming language. The demonstration of the application will be performed using the Android emulator, which would run the application as though it were running on an Android phone. The requirements for installing the Android SDK can be found on the Android official website[1]. Schedule Week 02/09/09 – 02/16/09 02/16/09 – 02/22/09 02/22/09 – 03/02/09 03/02/09 – 03/10/09 03/10/09 – 03/17/09 03/17/09 – 03/24/09 03/24/09 – 03/31/09 03/31/09 – 04/07/09 04/07/09 – 04/14/09 04/14/09 – 04/21/09 Proposed Action Design Considerations Developing the architecture Building the client side Building the client side (contd.) Google maps connectivity Google maps connectivity (contd.) Combining the above parts Testing and Debugging Testing and Debugging (contd.) Preparation of Report Evaluation and Testing While developing we will do the standard unit testing of the code and component stress testing. The application will be thoroughly tested against all possible test cases. Error cases will also be tested. The intention is to release this as a service for all Google mobile users. Every care will be taken (in terms of testing for all test cases) before the project is released on the mobile phone. The application will be tested using the following criteria: Performance Reliable: The important feature of our testing will be based on providing reliable results to the user. We will test our application in remote areas where the availability of service would take a longer time. We will make sure that responses are provided to the user regarding the service within 20 to 30 seconds. Responsive: This is the time taken by the system from the time the address is sent to the time the service location address is received. Considering this, a response time of 20 to 30 seconds is proposed here. Logging will also enable responsiveness testing. The time stamps corresponding to the receipt of request and sending of response will be logged. User Friendly: The user friendliness of the system can be evaluated by getting feedback from the users. A feature will be added to provide the users with a way to provide feedback. Future Work As a part of our future work, we wish to integrate the location finder feature in our application. Thus our application will determine the current location of a person and find the nearest health service, gas station. Thus he would not have to enter anything. Our application will determine the person’s current location automatically and provide him with the location and address of the nearest service available. References [1] The Official Google http://www.code.google.com/android Android Website [2] The Android Development Community Board – http://www.anddev.org –