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:30 (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 2 main 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 or location data retrieved from Flickr to suggest an appropriate location and also can be manipulated to mark a new location for the media.

Other than implementing the above 2 features, i would also like to work on enhancing the design according to the Design Recommendations and MediaWiki style guide. I also aim to implement HTML5 drag and drop support of the files, on which i have already started working on.[3 ]

Since this extension is already used to upload media on WikiMedia Commons, i believe that implementing these changes and features would improve the user experience of all the people uploading media on Commons ( and other places where this extension is used ) and make it more intuitive. Integration of flickr would further encourage more contributions from the users. I would also work on this project after GSoC to integrate other services hence making it easier to contribute licensed media from other sources.

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.


 * 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


 * Shorter deliverables
 * Complete my ongoing work on implementing HTML drag and drop.[2]
 * Improving the Interface according to the Design Recommendations and MediaWiki style guide.

If time permits

 * Would work on integrating other services like Picasa for automatic upload from them.

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
 * Get done with HTML5 drag and drop feature and work related with improving the interface.
 * Fix certain open issues to gain a deeper understanding of the code.


 * 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.
 * Start working on other services like Picasa.

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 3 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). Also since my project requires at implementing new features, i would be taking regular feedback from the community over my Interface designs through mockups and prototypes, either through the mailing list or by creating a Wiki page for the discussions.

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.Contributed a patch to WordPress. I am in the process of contributing a plugin and a theme to The WordPress Community. I have also contributed a GreaseMonkey Script and an Add-on to the AMO. 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. and have been 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.