Specifications for tools to help facilitate activities in IdeaLab.
We want to make the experience of participating in the IdeaLab easier and more engaging, so that we can elicit more ideas from a larger and more diverse group of Wikimedians. We also want to make it easier for people to realize their ideas—as grant funded projects, volunteer-driven initiatives, or even research projects. A few well-placed technical tools will help us streamline existing workflows and encourage collaboration.
Not every part of the IdeaLab user experience needs to be automated or assisted by special tools. Basic interactions (such as editing or commenting on an existing idea) can be accomplished by clicking the "edit" button. However, other interactions that many users might find confusing or tedious can be gadgetized without disrupting the editing experience for other folks who want to edit the wiki in the normal way.
Our decisions on which aspects of the IdeaLab experience to support with special tools focus on these types of user actions:
- actions that are performed frequently
- actions performed by users in many different roles
- actions that are commonly performed by inexperienced editors
- actions that are unfamiliar to most users
- actions that require editing complex markup
- actions that are meant to be performed quickly
- actions that require a series of distinct steps
Add Me gadgetEdit
A gadget that lets you quickly and easily show your support for something presented on a wiki-page, without leaving that page or editing markup directly. Gadget needs to be built flexibly for multiple uses: we should be able to deploy this to different sorts of pages: IdeaLab ideas, Grant proposals, learning patterns, etc.
- Meta:AddMe: documentation
- Meta:AddMe/Config: translatable configuration file for outputted page text (endorse/join message prefix, output section headings)
- Meta:AddMe/InterfaceText: translatable configuration file for the text elements in the dialogue box
- MediaWiki:Gadget-addMe: gadget description page
- MediaWiki:Gadget-addMe.css: gadget css
- old pages (to be deleted)
- add pages you would like to be deleted, here
Current use case for Add MeEdit
- Joining and endorsing an idea on the IdeaLab. See Grants:IdeaLab/Build/March-June_2014_sprint_plan#Join_.26_endorse
Add Me Specification: EndorseEdit
Add Me Specification: JoinEdit
A wizard that provides a structured, step-by-step workflow for creating a new wiki-page and populating it with content.
As with AddMe above, this wizard should be made modular and extensible so that it can be adapted to other contexts beyond the initial use case (IdeaLab, TPS, IEG, PEG).
- Meta:FormWizard: end-user documentation
- configuration pages (one per portal): translatable configuration file for specifying the interface text, form elements, default output values, and portal-specific configuration requirements
- MediaWiki:Gadget-formWizard: gadget description page
- MediaWiki:Gadget-formWizard.css: gadget css
Pages with a functional "create this (Idea/Request/Pattern) button"
1. Create a new IdeaLab idea page, and a /Toolkit subpage that contains useful information for developing the idea 2. Expand that page with new sections and infobox params, to turn an Idea into a grant proposal
- Use cases
Form wizard specification: creating an ideaEdit
Form wizard configurationEdit
The gadget uses an external configuration file to specify elements of the interaction and information display that users will want to customize to build different workflows.
Form wizard specification: expanding an ideaEdit
Overall, this is very similar to the functionality of create an idea. The biggest differences are that
- the gadget is adding sections to a page, rather than creating a new page.
- the gadget needs to change the value of existing infobox parameter, not just add parameters
- the gadget will be triggered by a button on the idea page itself, or on a subpage (For the IdeaLab, the subpage will be "Grants:IdeaLab/MyIdea/Toolkit")
8/9 IdeaLab Hackathon feedbackEdit
- What people liked
- join forces with the Hackathon. Get developers involved.
- What people disliked
- problem/solution parameters were too short (char limit)
- summary was limited (char limit)
- why is the solution right up front? the solution is what you are going to work on.
- perhaps solutions should not be mandatory?
- roles are not entirely clear to people. (tooltip AND information page linked clearly in the Form Wizard)
- sub-ideas for milestones?
- when you create/join/endorse an idea, it should be added to your notifications
A configurable infobox framework built in Lua that is intended for use with the AddMe and Form Wizard gadgets. Probox provides an infobox framework that can be configured for multiple types of project pages such as IdeaLab Ideas, Learning Patterns, Grant proposals and Research projects. Each probox instance can support any number of named parameters, as well as numbered parameters (for the participants section).
Related (non-Lua) examples:
- add/remove categories based on parameter values
- use numbered "role" parameters to display a list of participants in that role (volunteer1=, volunteer2=, etc)
- display or hide "join" button
- integration with AddMe gadget
- advertise open roles (roles with open, numbered parameters in the infobox template)
- set CSS styles at the level of the box, section, field, or text span
- set CSS values for particular types of element globally
- all interface text is translatable
- provide default values for empty params
- provide default values for required params which are left out of the infobox template
- declare the order for all fields within section
- unit testing infrastructure
Each tool will need to support left-to-right and right-to-left languages, and interface elements will need to be translatable.