S12-92-CLAS Literature Review Southern Illinois University Carbondale Find My Classroom App Lauren Adams Sakeeb Ahsan Dennis Dobson II Gerrid Rose Brian Serrano Manuel Suarez Ariel Thomas 3/1/2012 Table of Contents Title Page 1 Table of Contents Page 2 Abstract- B.S. Page 3 Index Terms- A.T. Page 3 Introduction- D.D., M.S. Page 4 Sections 1. Program and API- G.R. Page 4 2. Software Interactions- D.D., M.S. Page 5 3. Google Maps -S.A. Page 6 4. Similar Mobile Applications -L.A Page 7 5. Patents- A.T., B.S. Page 7 Conclusion- S.A. Page 8 References Page 9 AbstractResearching the different computer languages and comparing similar tools and technology available to build and create an effective mobile application that will benefit a University and its students. Index Terms ADT- Android Development Tools Android- Linux based operating system for mobile devices API- Application Programming Interface BIOS- basic input/output system CSS3- computer language GPS- global positioning system HTML- computer language IDE- Integrated Development Environment JavaScript- computer language JDK- the Java Development Kit PhoneGap- is an open-source mobile development framework developed by Nitobi Software WAAS- wide area augmentation system. Introduction The creation of “Find my classroom app” is software with the ability to facilitate directions on campus to new students. How is this different from a GPS? It directs the user to specific places and classrooms on campus, something that a regular global positioning system does not do. The research involves finding the easiest way to create the application and making it more cost efficient, research other schools that have implemented a mobile application and how they use it, determining how to work with Google maps or any other company that provides data for maps and streets, Application Programs Interfaces, programming language and other software tools that would be beneficial to the project, as well as device software and hardware interaction. I. Programs and Language The development of the SIUC Find My Classroom app is going to be required to be built for and supported by multiple brands of mobile devices. The big problem is that Android is based on Java and us having zero experience with Java and mobile programming will create a major barrier for production of the team since it would be required learn both a new programming language enough to create a fully capable app such as is being attempted and at the same time become familiar with the various operating systems on each mobile device platform. The main concern is to develop for the Android platform obviously, nevertheless, if there is a way to bridge across mobile platforms easier, it must be taken. Found on mobile.tutsplus.com, a tutorial by Abbas Suterwala [5] mentions a way to program for a phone using JavaScript by using Phonegap. More literary research done on Phonegap's home page [4] gives a clear path of the intentions for the project. Phonegap is an open-source mobile development framework developed by Nitobi Software. Phonegap enables software programmers to build applications for mobile devices using JavaScript, HTML5, and CSS3, instead of often less-known languages such as Objective-C. This is ideal since code.google.com [3] says that to use Google Maps in mobile devices, JavaScript is needed. So what this means is that instead of conforming to the standards of each mobile device operating system, utilizing Phonegap, it will conform to the programming style. Using JavaScript to code the program is necessary as it will be seen in a few paragraphs. The only choice based on the capabilities of both the team and what is available is Phonegap. The first step to be able to make an Android app using JavaScript and Phonegap according to Abbas Suterwala's tutorial, is to download and install the Java Development Kit (JDK). With JDK, there is an ablility to develop applications using the Java programming language which is the language that the Android OS uses and recognizes. The next step according to Suterwala is to start development, it is needed to download the Android SDK. The Android SDK provides the tools and APIs(Application Programming Interface) necessary to begin developing applications on the Android platform using the Java programming language according to the Android home page [2]. Following the last instruction, Suterwala says is to download and install the Software Development Kit (SDK) Eclipse. This is a good choice even though there are large amount to choose from for such a task. What is being sought is a very expandable SDK with easy adaptation across multiple platforms. The SDK that fits the bill, by known experience within the group, Eclipse SDK will work. It is a powerful SDK that branches across multiple operating systems and has various plugins for different programming languages. Installing the Eclipse Android Development Tools (ADT) plug-in is the next step announced by Suterwala. ADT, the tutorial says, is a complete Integrated Development Environment (IDE) via Eclipse to develop an Android application. It is able to utilize the Android SDK and its tools effectively from in Eclipse. After ADT, Suterwala moves on to the next instruction which is to use the Android SDK to download the most recent Android platform released. This is the current platform that all Android phones are updated to. The next two tutorial steps in Suterwala's directions are to download and install both Apache Ant and Ruby (both programming languages). Apache Ant, according to wiki.phonegap.com [1], says that Apache Ant is a program that is used to automate software build processes. Ruby is a programming language which Phonegap must use in its framework [6]. Finally, Suterwala says that then can Phonegap be downloaded and implemented into Eclipse. Then a workspace for Phonegap applications must be created. After starting a project and adjusting certain files given in the tutorial, and making a web page via HTML5, JavaScript, and CSS3, the app can be built. When built, the emulator tool (called Android Virtual Device or AVD) downloaded in the Android SDK, will emulate an actual Android device on a PC. To build an app relative to the one that is being aimed for, it must have access to some form of Google Maps and the API needed to utilize it effectively in the JavaScript code. The team needs to download the Google Maps JavaScript API v3 according to code.google.com. By using that API in the Android Virtual Device which in turn recognizes the libraries of Google Maps based on the JavaScript code in Eclipse, and be able to call Google Maps and its functions into the app. II. Software Interactions When discussing computers or technological device, it can always be broken down into two categories: hardware and software. Most people think that they just hit keys and the computer magically works. There is a lot of theory behind it. The interaction between hardware and software makes all of this happen. Hardware itself has a lot of different kinds and subdivisions. Software can be broken down into operating systems, basic input/output system (BIOS) and application software. Most devices are built as a series of levels, starting from the hardware building up all the way to the operation system or software. As technology keeps on growing there is always the usual questions that users ask themselves on a regular basis [9]. How does software and hardware work together? How do they interact? To answer this question there are a lot of things that need to be reviewed. Most people have a very poor understanding of how these two technologies connect to make electronics work. Sometimes most of the people do not understand that hardware and software are technologies that work in junction but are not the same; they have boundaries working within each other. Hardware is divided in two categories: Storage and connection; and Software refer to information, signal and operation [7]. Hardware storage it refers to how much capacity a device can have to store information; the bigger the storage capacity the larger the amount of information that can be stored in it. Connection refers to the way that the information is carried through the device. It can be anything from a wire, a signal, or any device with the ability to carry data. When referring to software, it will fall into the information category. This explains what the software does, it guides what the hardware is supposed to store, and it directs files through the connection device using a signal to make sure the file or program gets to the right place. Operation refers to anything that has to do with the operation of the hardware through the software, as well as transference of signals from digital or analog devices depending on the specific requirements [8]. Many know that hardware and software are different, but are not exactly sure how or why. Hardware refers to a device that is physically there, that can be seen, touched, and manipulated with hands. Software on the other hand, is something that can manipulated through a computer to work with the hardware, is not something that it can be consider physical. It helps direct the hardware reach the task assigned. Both of these must be used in conjunction with the other. III. Google Maps a. Goal Explore how to modify the source maps with the extra information/map objects that are required by the project. So far, Google Map Maker [10] is a Google-supplied tool that seems like the best way to add map objects." b. Google Map Maker Google Map Maker allows you to add and update geographic information for Google Maps and Google Earth. Updates will be reviewed and once approved, will be incorporated into maps.google.com. For the purposes of the project, it can improve the definition of our focus map area. In essence, adding sidewalks, specifying building names and other map objects. Map Maker's review process is based on other users approving an edit. The first time a Map Maker user makes edits to a map, the edits may require review and approval before the edits will be published. Once a Map Maker user has made a few approved edits, most of the subsequent edits will go live automatically. However, some types of edits or edits in specific regions will always require review, regardless of how experienced the mapper is. In addition, some edits may require multiple reviews before the edits appear on Google Maps. c. Google Base Map Partner Program This is a map-enriching avenue that Google runs with data from organizations that have “authoritative vector data”. Vector data means GIS software modified maps (such as from ESRI GeoDatabase). This seems to be more of an option for a full-fledged mapping company that have the resources to substantially improve the “base” map that google uses. For the purposes of the project (or rather because of the limited map score), this option for incorporating the changes might be overkill. IV. Similar Mobile Applications The University of Oregon [11] uses a similar app, only as an iPhone app, to help their students find their way around campus. The app is designed to help new students navigate their way through the campus during the university’s Week of Welcome Orientation. Over the last 20 years, their InfoGraphics Lab gradually built its database with geographic information about the school to help fulfill the university’s operational needs (such as showing maintenance crews where the circuit breakers are located) and populate its digital maps with features. In 2007, the lab decided to create an interactive web map of the campus to help new students and faculty members familiarize themselves with their new environment. This specific school does not use Microsoft or Google maps but customized their own map. They used their data collection, including aerial photos of the campus, from the past few decades and created their map. The free app plays a major role in the university’s Week of Welcome. The app helps the students find their dorms, bookstores, registration events, and classrooms. The developers used the iPhone GPS to give walking directions to find all the buildings on campus, which they called the “Walk Me” feature of the app. This feature displays the start/end positions on the map and estimated walking time. The University of Colorado [13] also uses a similar app, as iPhone and Android app, but provides so much more. This school offers their entire website as an app. The CU Denver mobile app includes the following: Interactive map of the campus Downtown Denver weather updates Campus news, events, updates and safety alerts Contact directory for academic and student service offices Checklists for new students, financial aid applications, graduation procedures Social media such as Twitter feeds, YouTube videos, and student polls Info on Admissions, campus resources, student policies, tuition and funding, and registration Quick links to webmail and Blackboard This app can be used all year and by all students. The CU Denver mobile app access fine location sources such as the Global Positioning System on the device, where available. The University of Connecticut [12] uses a similar concept but is not an actual app. The university simply linked everything together with different websites. If you have any device that can get an internet connection you can access the campus map. The university uses Google maps for both their desktop and mobile version. The difference with this school is that you can search for buildings by the code, name, department, or category (arts/culture, food/cafes, residence halls). It also shows photos and descriptions of the building so you know exactly what you are looking for and know when you have arrived. The school also provides detailed driving directions in case you want to use your own GPS. If you are driving the website will provide details information on public parking for popular facilities. Penn State [14] also uses the same concept as the University of Connecticut, not an actual app but a website with everything linked together. However, Penn State provides a little more information. The school uses Google maps with custom code to show icons for buildings with available computers. Using the mobile app, balloon markers for the buildings will be shown in green, yellow, and red depending on the percentage of open computers. Mobile text pages are available so you may select a campus, then building and room will show room details, and it will show who utilizes that room along with their contact information. The website will show when the room is scheduled to be used, whether it is for a class or a meeting. V. Patents There have been many previous applications of pedestrian mapping and escort systems used on college campuses. One such application patented the Wireless Virtual Campus Escort System [15] was designed by Mark D. Laird and Michael Glier, uses a mobile device such as a mobile phone and a web interface to follow a set of rules and direct the user of the program to their destination. This application uses positioning systems such as the global positioning system, hereafter referred to as GPS, and the Wide Area Augmentation System, hereafter referred to as WAAS, to find the users position and direct them to the safest and quickest route from a starting point to a destination point. This application sends and receives signals to and from the mobile handset and satellites to correct the position and path of the user. This application also can detect changes that would affect the current path such as dangerous weather, attack threats and health issues by monitoring the emergency call. Another such application patented Pedestrian Mapping System was created by Arup Banerjee [16] uses a GPS system to direct a path for pedestrians using any device with a wireless internet network. The server generates the directional path for the pedestrian to use while finding the quickest route using public transportation, biking, walking, or driving. This application also uses routes that can go through a building or landmark rather than travel around it. Both of these inventions are optimized for use on college campuses. CONCLUSION Needless to say, the design and implementation of the project has a considerable number of hurdles and components to it. Very essential design choices need to be made regarding what will be needed to implement in the project from a cost-benefit perspective. It has been explored extensively what other similar designs have already been implemented in other university complexes. Fortunately, there are a few completed products out there for us to examine. They offer an excellent avenue to consider modifications/new features to further assist the end-user. One crucial aspect is the programming segment of the project that actually allows us to have software that can be run on the targeted device(s). To this end, the team has explored how to best connect the hardware and the software platforms. The team has also looked into the easiest way to “port” the coding onto the various platforms without having to code for each platform from scratch. Currently, the project’s source maps are to be linked with Google Maps. As of right now, Google Maps does not offer the level of detail we require. As the project proceeds, one of the objectives is to collect and submit changes to Google Maps in order to bring them up to speed with requirements. References [1] D. Johnson. (2011, October). Getting Started with Android Phonegap in Eclipse. [Online]. Available: http://wiki.phonegap.com/w/page/16494774/Getting%20started%20with%20Android%20PhoneGap% 20in%20Eclipse [2] What is Android? [Online]. Available: http://developer.android.com/guide/basics/what-isandroid.html [3] The Google Maps Javascript API v3. [Online]. Available: http://code.google.com/apis/maps/documentation/javascript/ [4] PhoneGap. [Online]. Available: http://phonegap.com/ [5] A. Suterwala. (2010, Sep. 8). Created an Android “Hello World” Application with PhoneGap. [Online]. Available: http://mobile.tutsplus.com/tutorials/phonegap/creating-an-android-hello-worldapplication-with-phonegap/ [6] Ruby, A Programmer's Best Friend. [Online]. Available: http://www.ruby-lang.org/en/ [7]N. Steiner and P. Athanas, (2005, April), ”Hardware-software interaction: Preliminary observations,” Proceedings of the 12th reconfigurable architectures workshop. RAW 2005. Publication. [Online]. Available: http://www.ccm.ece.vt.edu/papers/steiner_2005_RAW05_hsi.pdf [8] N. Steiner, (unknown), Hardware Software Interactions.[Online] Available: http://www.ccm.ece.vt.edu/hsi/ [9] N. Steiner (unknown) Software and Hardware Interactions. Lecture. [Online] Available: http://ece.wpi.edu/~wrm/Courses/EE3803/Notes/lec09.pdf [10] Google, (ongoing), MapMakerpedia. Website [Online] Available: https://sites.google.com/site/mapmakerpedia/ [11] M. DeMerritt, (2011, Feb.), Campus iPhone App Helps University of Oregon Students Negotiate Their Way around Campus. ArcWatch Magazine. [Online]. Available: http://www.esri.com/news/arcwatch/0211/feature.html [12] L. Lalancette, (2011, Sept. 16), Campus Map Goes Mobile. UConn Today Magazine. [Online]. Available: http://today.uconn.edu/blog/2011/09/campus-map-goes-mobile/ [13] Uniersity of Colorado Denver, (2011, Dec. 1), University of Colarado Denver, Mobile application. [Online]. Available: http://www.ucdenver.edu/life/Pages/CU-Denver-Mobile-Application.aspx https://market.android.com/details?id=com.u360mobile.cudenver [14] PennState (2010, Feb. 11) Computer Availability. Penn State University. [Online]. Available: http://clc.its.psu.edu/labs/locations/computeravailability [15] M.D. Laird, M. Glier, “Wireless Virtual Campus Escort System” U.S. Patent 2005/0075116A1, April 7, 2005 [16] A. Banerjee, “Pedestrian Mapping System” U.S. Patent 8 000 892 B2, August 16, 2011