Software Engineering of Geospatial Video Database iPhone Application

John McCoey

Department of Computing Sciences
Villanova University
Independent Study Project

Advisor:  Dr. Tom Way

Initial Proposal Idea

Software Engineering of Geospatial Video Database iPhone Application
Author: John McCoey
Advisor: Dr. Tom Way

Description: Currently, there is a large assortment of applications in the iPhone App Store which offer the ability to tag images with coordinate-based location metadata. This metadata gives users the ability to search for images which may be of i nterest based on location. However, while both images and video can be captured from the iPhone, there is no such available application for video media. Geospatially tagged videos can be an extremely useful source for understanding and virtually explori ng a given location with more detail than a map alone can provide. The YouTube API can tag geospatial locations to videos, however most currently on the site are improperly tagged, and are therefore can not be applied in a useful manner. I plan on using the agile software engineering approach to plan, design, and implement a geospatially tagged database which will allow searhcing of media captured from iPhone devices, which will ensure the proper geospatial reference information is used. The iPhone ap p will have two capabilities, to upload multimedia files, and to search through those files. The upload will allow users to tag and send videos and images to YouTube or Flickr, and store the location as metadata and in the database. The iPhone applicati on will provide an instance of a Google map to allow the user to search for both images and videos based on location. Initially, the database and app will support only videos and images. Additionally, if time allows, the application could also allow for the geotagging of other media, such as text, audio, calendar events, and Facebook or Twitter updates. This study will focus on software engineering a fully developed system which will allow the user to upload and search for geospatially tagged videos fr om the planning stages through testing. It will also include research into the performance of various databases and geospatial query performance, iPhone app development and the Objective C language, and network communications.


Project Schedule

This is a rough schedule, split into 4 sprints. As each sprint arrives, a more detailed schedule will be created based on progress, challenges, and needs.At the current time, all dates are subject to change.

Start Date Description Status

Sprint 0: Ramp-up

Schedule: PNG MSProject
5/19

Create and Upload proposal

Completed and approved
5/19

Create Website

Completed
5/20

Research and Design Database and System

Created System Architecture Design. Use Cases: Upload, Search, View. Also Created Database ER Diagram.
5/27

Create Database

Database Setup
5/30

Setup Beginning of Code, SVN, etc.

Used an existing source forge account with Tortoise SVN

Sprint 1

Schedule: PNG MSProject
6/2

Begin iPhone App Development

Completed three tab bar app View and the Upload Page. See the Begin Captire/Upload page of iPhone App task for more information.
6/4

Research Geotagging/YouTube APIs

Found PHP Youtube API. Should be able to send video from iPhone to PHP server and then from PHP server to YouTube. Still working on this aspect
6/9

Begin Capture/Upload page of iPhone App

Completed the Upload Page for user input of Videos and Images. Allows the user to select an existing image/video or record a new one using the camera. Also save a description and title.
6/15

Be able to upload geotagged video to database

Studied the YouTube API and set up MySQL database. Studied MySQL and determined a WKT String should be all that is needed to record the location of recorded video. Still working on the transfer of files from iPhone to PHP

Sprint 2

PNG MSProject. Had difficulties uploading video to YouTube in previous sprint and continued to have them in this sprint. Added a side upload by uploading via standard iPhone library and then adding atext field on the upload page for a fully uploaded youtube link. This link is then stored with the searchable entry in the database and the video can be retrieved in the search view.
6/16

Continue iPhone App Development. Begin Search Page

Finished a search options page. Due to time constrictions, functionality not complete, but can search for preset values natively. Made a map view that inserts pins at each videos location and the ability to playback the videos.

Vacation 6/20 - 6/28

6/28

Research performance of Geospatial search methods

Decided to use a GEOM spatial index in MySQL with input as standard WKT
7/7

Be able to search for Multimedia

Eliminated photos and search by keyword or user for sake of time. Can return all uploaded YouTube videos based on loction

Sprint 3

7/8

Test Program. Additional extensions if time allows.

Tested program and works to a protype extent. Still room for improvement and expansion, particularly the use of other users, other media, and different search options. However, videos can be uploaded to youTube via side upload, and tagged with current iPhone GPS data and user filled in information. Videos can than be searched for across the database based on location on the map and displayed as pins on the map view. Clicking a pin allows for playback of selected video.
7/12

Compile all sources, research, and efforts into completed paper

Began the writing portion of the essay a few days later than intended. May need to push back on the Project submission deadline. Still aiming to finish by end of next week, 7/23
7/19

Project Submission

Updated References. Working on draft and revision of paper. Should be ready for submission and first full revision by Friday 7/23.
7/24

Make any necessary revisions

Submitted a First Draft to Dr. Way. Need to make any revisions, and will upload Xcode project shortly.
8/2

End of Semester

Submitted Final Draft. Project source code available for download here.

References

[1] I. Sommerville, Software Engineering, 8th ed., New York, New York: Addison-Wesley, 2007.

[2] Apple, Inc. "iPhone Dev Center", Apple Developer Pages, 2010. [Online Software Download]. Available: http://developer.apple.com/iphone/index.action. [Accessed: May 12, 2010].

[3] J. Ray and S. Johnson, J. Ray and S. Johnson, Sams Teach Yourself: iPhone Application Development. Indianapolis, Indiana: Sams Publishing, 2010.

[4] C. Dempsey, "Methods for Creating Spatial Databases," GIS Lounge. Sept. 29, 2006. [Online]. Available: http://gislounge.com/methods-for-creating-spatial-databases/. [Accessed: May 21, 2010].

[5] Wikipedia, "Open Geospatial Consortium", Wikipedia: The Free Encyclopedia. June 4, 2010. [Online]. Available: http://en.wikipedia.org/wiki/Open_Geospatial_Consortium. [Accessed July 19, 2010].

[6] R. Bourdon, Wamp Server 2.0i. GPL License, July 11, 2009. [Online Download]. Available: http://www.wampserver.com. [Accessed: May 23, 2010].

[7] Dyn Inc., "Dynamic DNS Free", Dynamic DNS. Dynamic Hostname. 2010. [Online Software]. Available: http://www.dyndns.com. [Accessed: May 23, 2010].

[8] CollabNet. "Tortoise SVN," Tigris.org. Subversion 1.6, May 2010. [Online Software Download]. Available: http://tortoisesvn.tigris.org/. [Accessed May 24, 2010].

[9] Geeknet, Inc. "SourceForge," SourceForge.net. May 2010. [Online Software]. Available: https://sourceforge.net/. [Accessed May 24, 2010] Project Link: https://team5hangman.svn.sourceforge.net/svnroot/team5hangman/MediaMap/.

[10] Oracle, "Introduction to MySQL Spatial Support," MySQL Documentation. 11.16.1, 2010. [Online]. Available: http://dev.mysql.com/doc/refman/5.0/en/gis-introduction.html. [Accessed: June 16, 2010].

[11] Oracle, "Introduction to MySQL Spatial Support," MySQL Documentation. 11.17.1 - 11.17.7, 2010. [Online]. Available: http://dev.mysql.com/doc/refman/5.1/en/spatial-extensions.html. [Accessed: June 16, 2010].

[12] "Setting up Fields in your phpMyAdmin database tables," PHP Tutorials, [Online]. Available: http://www.homeandlearn.co.uk/php/php12p3.html. [Accessed: May 24, 2010].

[13] "How to transfer recorded video from iPhone 3GS," iPhone Development Exchange, Sept. 13, 2010. [Online]. Available: http://www.iphonedevx.com/?p=192. [Accessed: June 18, 2010].

[14] Google, "Developer's Guide: PHP," YouTube APIS and Tools, Uploading Videos, 2010. [Online]. Available: http://code.google.com/apis/youtube/2.0/developers_guide_php.html#Uploading_Videos. [Accessed: July 3, 2010].

[15] Apple, Inc., "iOS Reference Library", Apple Developer Pages. 2010. [Online]. Available: http://developer.apple.com/iphone/library/navigation/index.html. [Accessed: May 15, 2010].

[16] ohiyo1234, "Have problem with base64 Endcoder/decoder," iPhone SDK Development Forum, Oct. 27, 2008. [Online]. Available: http://www.iphonedevsdk.com/forum/iphone-sdk-development/5752-have-problem-base64-endcoder-decoder.html [Accessed: June 17, 2010 ].

[17] K. Yong, "YouTubeAPIS + iPhone = Cool mobile apps," YouTube API Blog: News and Notes for Developers, Feb. 5, 2010. [Online]. Available: http://apiblog.youtube.com/2009/02/youtube-apis-iphone-cool-mobile-apps.html. [Accessed: July 2, 2010].

[18] Google, "GData Objective-C Client Library," Google Code, Google Data APIS Objective-C Client Library, Release 1.10.0, Date of publication. [Online Download]. Available: http://code.google.com/p/gdata-objectivec-client/downloads/detail?name=gdata-obje ctivec-client-1.10.0.zip&can=2&q=. [Accessed: July 2, 2010].

[19] pdm, "Google's GData Objective-C Client Library - iPhone SDK," iPhone SDK Development Forum, Aug. 29, 2008. [Online]. Available: http://www.iphonedevsdk.com/forum/iphone-sdk-development/3148-googles-gdata-objective-c-client-library-iphone-sdk.html [A ccessed: June 29, 2010].

[20] Digital Fish, Inc., "HTTPFileUploadSample," CocoaDev, Dec. 3, 2008. [Online]. Available: http://www.cocoadev.com/index.pl?HTTPFileUploadSample [Accessed: June 15, 2010].

[21] W3Schools, "PHP Tutorial", w3schools.com, 2010. [Online]. Available: http:// www.w3schools.com/php/default.asp [Accessed: June 25, 2010].

[22] Rupert, "iPhone Note #14: Drawing a Point, Line, Polygon on top of MKMapview," iPhone And GIS Development Notes, Oct 2, 2009. [Online]. Available: http://www.gisnotes.com/wordpress/2009/10/iphone-devnote-14-drawing-a-point-line-polygon-on-top-of-mkma pview/. [Accessed: July 7, 2010].

[23] J. Barros, "Getting Oriented with MapKit: Everything you need to get started with the new mapping framework," slideshare, Nov. 2009. [Online]. Available: http://www.slideshare.net/360conferences/getting-oriented-with-mapkit-everything-you-need-to-get -started-with-the-new-mapping-framework. [Accessed: July 12, 2010].

[24] Boydlee, "Auto playing a YouTube video inside WebUIView iPhone Objective-C SDK," Lemonade Stand, Feb. 3, 2010. [Online]. Available: http://blog.lemonadestand.com.au/post/auto-playing-a-youtube-video-inside-webuiview-iphone-objective-c-sdk/23. [Access ed: July 14, 2010].

[25] Troy, "Set the Zoom Level of an MKMapView," Backspace Prologue: Mistakes and learnings of an iPhone developer, Jan. 22, 2010. [Online]. Available: http://troybrant.net/blog/2010/01/set-the-zoom-level-of-an-mkmapview/. [Accessed: July 10, 2010].

[26] "Tutorial: Using phpMyAdmin to manage mySQL," Vision Master Designs, July 25, 2008. [Online]. Available: http://visionmasterdesigns.com/tutorial-using-phpmyadmin-to-manage-mysql/. [Accessed: May 24, 2010].

[27] B. Wilson, "Google opens its APIS to iPhone SDK," CNET, Mar. 20, 2008. [Online]. Available: http://reviews.cnet.com/8301-19512_7-10115433-233.html. [Accessed: June 29, 2010].


Last updated 07/29/2010