User:Drecodeam/Notes on my GSoC project

Hi, this is Ankur Anand's (Drecodeam) notes from his Google Summer of Code project [1] on Integrating Flickr and Geolocation in Uplaod Wizard. Here I would be posting my notes regarding the project, updates on my work and my thoughts related to the project. I would love to hear feedback and respond to any question regarding this project.

Flickr Integration
Providing an interface which allows the user to transfer images from Flickr where the UploadWizard extracts license and metadata from the images, converts the license into a Commons License Template and passes on metadata to the next step to generate corresponding WikiText.

Features

 * User can import images from Flickr.
 * The imported image would be checked for appropriate license information and user notified of the same.
 * Other details, like description, tags and Geolocation would also be fetched using the flickr API.
 * The image would be uploaded on the wiki and the owner of the image would get a comment or a mail regarding the use of his/her image on the respective wiki.

Under The Hood
The process is explained in the following steps :


 * User provides input
 * The user provides the URL for the image(s) sources.
 * Image URL
 * Photo Stream URL
 * User profile URL


 * Fetch image thumbnails
 * Case 1 : User provided a Single Image URL.
 * No change and progress to the next step
 * Case 2 : User provided a Photostream or User profile URL.
 * User is presented with thumbnails selected from the source, from which the user can select the images to upload.
 * Once the user has selected the images to upload, proceed to the next step.


 * Fetch license information for the selected images
 * License information for all the images is fetched in the background, while the UI is updated to show the selected images. The license information is pre-filled in the Deeds section of the Upload Wizard.
 * For images which do not have proper licenses, user is provided with the appropriate error message and a link to the License information
 * A progress circle in front of every image is shown to show the process of checking the required information
 * The upload button is activated once the Process is completed.


 * Uploading images 

The upload of the images start as per the previous working of the Upload Wizard, and images are added to the temporary stash

Other useful resources

 * http://commons.wikimedia.org/wiki/Special:Upload?uselang=fromflickr
 * Existing Flickr Tools
 * Flickr tools
 * Magnus' tools
 * flinfo
 * bryan's tool
 * Review Process
 * Creative commons : about licenses
 * discussion on mailing list
 * Flickr mass upload

Improving the Geolocation support
Some work has already been done in this field by < > < >. I would be extending it to provide a map interface to the user for selecting the location of the image and passing it on to the next step.

Other Resources

 * Geolocation Specs
 * Guidelines for Commons geocoding
 * Geolocation Use Cases

My thoughts on the Improving the interface

 * Stronger call to action buttons
 * Using icons as given in the Wikimedia Style Guide
 * Implementing drag and drop support (Bug 9133
 * Using HTML5 File API (Bug 16752)
 * Support batch editing (Bug 26065 and Bug 35280)
 * Implement backward navigation, and support to re-iterate on the steps and make changes to existing content.
 * Bug 29594
 * Bug 26504
 * Bug 24760 - Browser Back support can now be implemented using HTML5 History API
 * Bug 27423
 * https://bugzilla.wikimedia.org/show_bug.cgi?id=27274 Bug 27274]
 * Bug 30687
 * Bug 32247
 * Improving the user experience of the details form
 * Bug 30225
 * Bug 30649
 * Bug 34337

Use of Puzzly in Upload Wizard

 * Puzzly has the potential to be a very powerful, user-centric ally.
 * Using Puzzly in error messages and dialogs.
 * Adding Puzzly according to the suggestion in the Design Recommendation in various steps.
 * Some examples already given in the Design Recommendations

Upload Wizard related

 * User Requirements and specifications
 * UI design Docs
 * Design recommendations
 * Software Design
 * Test Plan