This problem is for those who aren't necessarily coding directly: it's hacking a spec, though a good code hack could make huge progress. Update: Those who want to join a project to actually code this, can check TaskMeUp
Contents |
A design and architecture document and as much code as possible outlining the detailed scenarios, functionality, workflow, schema, API and even UX for a web site and service that tracks and facilitates job tasking to support job “turking” for systems like OpenStreetmap and also incident follow-up for systehttp://wiki.rhok.org/skins/common/images/button_italic.pngms like Ushahidi. It should also consider the pro/cons of this system vs Crowdflower.
Present some mockups and or functioning code.
RHoK 2010 NYC: TaskMeUp
Make it work in code!
the system should ideally support the following “Haiti” like scenarios:
1. Open Streetmap turking: distribute/queue a number of parallel tasks across a set of users.
a. Background (not in problem): There’s an earthquake (think Haiti) and the Open Streetmap (OSM) community steps up and starts helping out. Volunteers from all over the world ask “How can I help”. They go to the OSM website and see a button that says “Help by digitizing a road, camp or other feature”.
b. In problem: The user is taken to a signup page where they enter some minimal set of details (email) and click “get started”. They then get a web-page with a map segment and a task description. They work on this and hit “submit” along with some comments. They then get to say “I’m done for now” or “give me another one”.
c. System requirements: a web service and set of API’s that OSM can build around to setup, prioritize, distribute/manage, and track users and their tasks and any validation steps required.
2. Ushahidi turking: a queue of translation tasks.
a. Background: user comes to Ushahidi site and sees a link “How can I help”.
b. In problem: This link takes them to a list of tasks [translate|geolocate|…]. They pick one and get their instructions on what do to translate/geocode ushahidi input: including the information/input, the output, and somewhere to provide a comment when they’re done.
c. System requirements: a set of web-services and API that Ushahidi can program against to enable this with their choice/queue of tasks.
3. Ushahidi report follow-up: tracking what happened after a report was submitted to Ushahidi (or similar system). Basically an issue-tracker.
a. Background: User comes to Ushahidi and sees a report “orphanage needs food”. In the report is field that lists “status” as [unclaimed|Mercy Corps is working on this]. If unclaimed there’s a button to “do something about this”, and if claimed there’s a link to “contact Mercy Corps”
b. In problem: user clicks “do something” and they get a form where they state who they are, their contact details and what they’re doing about it. They can come back at any time and add a status report or chance the status to [dealt with|no longer an issue|bad report|working on it|doing an assessment|validating|…]. Other users can add comments to this report.
c. System requirements: Ushahidi can specify in the system via the API’s or account setup what the options/states are, and call the API’s to show the current state of a report.
Congratulations! Great work at NYC RHOK. In looking at your interface two things come to mind. 1. I think it would be easier and more useful UX to have each button be the destination/submit. Prevent dropdown selectors; code every option as a self titled submit. In cases where more than one option is required, have a few 'submits' and an 'all done'. This would greatly facilitate fast 'Turking' and keep people going. 2. the 'take me to another' link (button) should be at cursor x,y or near where they clicked last, again, to reduce mouse travel.
These things may seem trivial but make the difference between me Turking five or fifty jobs in a session.
Along the lines of 'gaming' to keep it interesting... Would you consider an "8 bit" bar graph along the left margin showing current user's total turks as height and colorize it by Turks/minute?
We have some very rough code and some screen mockups for an possible design that would handle implement a AMT like system, but throw in a little Stack Overflow for flavour. We have a github repo and wiki started which is pretty rough at the moment, but may have more in there in 24 hours time :)