User:Drecodeam/GSoC 2012 Application

Identity
Name: Ankur Anand Email:drecodeam@gmail.com Project title: Integration of Flickr and Geolocation in UploadWizard

Contact/working info
Timezone: UTC+5.5(IST - India) Typical working hours:10 am to 3 am until July, 6pm to 3 am after July IRC or IM networks/handle(s): Drecodeam

Project summary
My project aims at implementing the following 2 parts:
 * Flickr Integration :
 * Providing an interface to allow user's to transfer images from Flickr where the Upload Wizard would extract the license and metadata from the photos, converting the license into a Commons License Template and passing on the metadata to the next step to generate the corresponding Wikitext.


 * Improving the Geolocation support
 * Implementing a JavaScript jQuery plugin which presents a map interface, which can be manipulated to select a particular location, and which can then report that location in code, preferably as wikiText containing a Location template. The plugin would take the use EXIF data contained in the media file to suggest an appropriate location and also can be manipulated to mark a new location for the media. I would further integrate it with the Flickr part to get the location information if provided.

The project would further improve the user experience of this extension, and hence the upload process on Wikimedia Commons as it is being used there. Also, i have already started working on implementing HTML Drag and Drop functionality, and would also tackle certain issues with the current code along the way. I believe that these changes would improve the upload process significantly and hence encourage more contributions to Wikimedia Commons.

Required deliverables

 * Integration with Flickr
 * Implementing an interface for the user to select images from a Flickr account or Photostream.
 * Extracting the license and metadata information from the selected photos. The license would then be converted into an appropriate Commons License Template and extracted metadata would be passed onto the "Details" step of the Wizard.
 * Transferring the images once done through the above steps


 * jQuery Plugin to provide an interface for the location of the uploaded media
 * Implementing the map interface according to the Geolocation specs given [1]
 * The map interface would take any existing information on location through the extracted metadata from media and also allow user to mark a new location through the interface.
 * It would then convert the co-ordinated into appropriate Location Template.
 * Would reuse the existing work done on this in the MediaWiki Maps extension

If time permits

 * Would work on integrating other services for automatic transfer of licensed media.

Project schedule

 * Community Bonding Period(24th April - 21st May)
 * Study the extension code in detail, understand its coding style and structure.
 * Lay down the UI mockups and structure of my project and discuss the same with the community and mentor.
 * Get familiar and study in details the Flickr API and MediaWiki Maps extension


 * 2 weeks (21st May - 4th June)
 * Implement the Flickr Integration interface according to the mockups discussed earlier.


 * 2 weeks(5th June - 18th June)
 * Working on extracting the license information from the selected images and validate it to the available Commons Licenses. Then converting the validate license into appropriate Commons License Template.
 * Getting all the available metadata of the selected images and passing the metadata to the "Details" step.


 * 2 weeks(19th June - 2nd July)
 * Writing unit tests using Jasmine for testing
 * Work on the documentation. ( i would be working on the documentation through out but would compile, review and format it in this time)
 * Committing code to Gerrit

Milestone 1 : Flickr integration complete. Leaving a buffer period of 3-4 days for any delay in the above schedule.


 * 3 weeks (6th july - 27th July)
 * Implementing Map interface according to the mockups discussed earlier.


 * 2 weeks(27th July - 10th August)
 * Writing unit tests and performing tests.
 * Complete the documentation
 * Committing code to Gerrit.

Milestone 2 : Implementing Map interface for Geolocation support complete.


 * 11th August - 20th August
 * Finish any remaining work.
 * If time permits i would work on improving the UI of the Upload Wizard according to the Design Recommendations and Mediawiki Style Guide

About you
I am Ankur Anand, a B.Tech, Computer Science Engineering student, from Jaypee Institute of Information Technology, India. I have been doing web development from the past 2 years and love studying about UX and design. I have experience in coding in JavaScript, CSS and PHP. I got interested in this project after i saw it in the list of ideas on the GSoC ideas page. It excites me to work on and design the interface of this extension as it improves the user experience of everyone who uses Wikimedia commons and in general this extension to upload media.

Participation
Whenever i am online i am logged into IRC, as i believe it is the best place for communicating with the community. On topics where i want to start a discussion or want feedback of the community, i would be communicating through the mailing list. Also i would be creating a repo for this project on GitHub for my daily progress. When i am done through a part or a section i would commit it to git repository on Gerrit.( I have already got familiar with the workflow of Wikimedia Gerrit).

Past open source experience
I am an active member of Open Source Developers Club in my university from the past 3 years. All the projects i do are open source and can be found on my Github profile.
 * I am in the process of completing an extension and a theme to The WordPress Community.
 * Contributed a GreaseMonkey Script.
 * I have organized several Open Source meetups in my university including OSSCamp 10.11, Firefox 4 Launch Meetup and few local meetups over Drupal, Firefox, Linux etc.
 * Contributed a patch to WordPress.
 * I have been also attending many local community meetups over open source including DrupalCamp, Wikipedia workshop, foss.in etc

Any other info
would be adding mockups and diagrams soon.