User:YuviPanda/Mobile campaigns

Campaign support based on UploadWizard's UploadCampaigns for the Mobile Commons apps. Lets people discover avenues for contributing original images, and then lets them contribute with minimal hassle.

Use Case
Saika is a college student who has heard about 'Free Knowledge', 'Wikimedia Commons', and all that jazz, and downloads the app to try it out. She has no idea what she can contribute, however. She opens up the app, and first sees a tutorial explaining what Creative Commons means. As she goes past that, she sees that there are several 'Upload Campaigns' running near her. She finds that there is one called 'Temples of Hong Kong', and opens it. She sees information about what kinda temples this campaign aims for, and realizes that there are a few nearby. She walks over, uses the 'contribute to campaign' feature to add an image of the temple to the campaign. She also browses the various other images other people have contributed, and explores hitherto unknown (to her) areas of the temple.

Features
There are primarily three major new features that need to be implemented
 * 1) Easily browse currently running Campaigns
 * 2) Easily browse images other people have contributed to each Campaign
 * 3) Prominently display metadata about each Campaign, to help people understand what they ought to contribute

Phase 1
This would be fixing backend of UploadCampaigns to work for our needs better. Specifically, this would need to support the following: This should be done by implementing Phase 1, 2, 3 of the Campaign namespace proposal.
 * 1) Extensible data definitions, so we can define rich campaign metadata (such as 'featured images', 'help', etc)
 * 2) Easy way to get 'Images uploaded via this campaign' (Done by forcing a (hidden?) tracking category)
 * 3) Way to search for campaigns by various criteria (open time, name, description, etc)

This is purely server side work.

Phase 2
Implement Campaign contribution on Mobile apps. Displays images people have contributed in reverse chronological order. Lets users upload new images to campaign. Adds appropriate categories, etc. No support for 'custom ID' fields.

Phase 3
Implement Campaigns discovery on Mobile apps. Display various campaigns in a browsable format. Let people search for campaigns.