From Meta, a Wikimedia project coordination wiki
Jump to navigation Jump to search

Specifications for tools to help facilitate activities in IdeaLab.

These tools will also be repurposed for Individual Engagement Grants, and Travel & Participation Support, Learning Patterns and more.


See also Grants:IdeaLab/Build/March-June_2014_sprint_plan#Goals

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 gadget[edit]

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.


old pages (to be deleted)
  • add pages you would like to be deleted, here

Current use case for Add Me[edit]

Joining and endorsing an idea on the IdeaLab. See Grants:IdeaLab/Build/March-June_2014_sprint_plan#Join_.26_endorse
Endorsing a learning pattern, research project, IEG proposal or TPS proposal.

Add Me Specification: Endorse[edit]

A JavaScript gadget that displays a single dialog box in which the user enters an endorsement message to be added to a section of the page they're on, along with their signature.

Add Me Specification: Join[edit]

A JavaScript gadget that displays a single dialog box in which the user selects from a list of roles in which they can join a project, then enters a message to be added to the "Participants" section of the page they're on, along with their signature.

Form wizard[edit]

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

Test pages[edit]

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 idea[edit]

A JavaScript gadget that displays a series of dialog boxes in which the user enters structured input to create a new wiki page using a small number of standard form elements.

Form wizard configuration[edit]

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 idea[edit]

Overall, this is very similar to the functionality of create an idea. The biggest differences are that

  1. the gadget is adding sections to a page, rather than creating a new page.
  2. the gadget needs to change the value of existing infobox parameter, not just add parameters
  3. 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 feedback[edit]

What people liked
  1. GrantsCat
  2. join forces with the Hackathon. Get developers involved.
What people disliked
  1. problem/solution parameters were too short (char limit)
  2. summary was limited (char limit)
  3. why is the solution right up front? the solution is what you are going to work on.
  • perhaps solutions should not be mandatory?
  1. roles are not entirely clear to people. (tooltip AND information page linked clearly in the Form Wizard)
  1. sub-ideas for milestones?
  2. when you create/join/endorse an idea, it should be added to your notifications

Probox Module[edit]

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).

The Module lives Module:Probox and the template at Template:Probox.

Related (non-Lua) examples:


  1. add/remove categories based on parameter values
  2. use numbered "role" parameters to display a list of participants in that role (volunteer1=, volunteer2=, etc)
  3. display or hide "join" button
  4. integration with AddMe gadget
  5. advertise open roles (roles with open, numbered parameters in the infobox template)
  6. set CSS styles at the level of the box, section, field, or text span
  7. set CSS values for particular types of element globally
  8. all interface text is translatable
  9. provide default values for empty params
  10. provide default values for required params which are left out of the infobox template
  11. declare the order for all fields within section
  12. 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.


Users who do not have Javascript enabled within their browser, or who have turned the gadget off in their preferences, should be offered a fallback idea-creation workflow which is invoked by the same user action (button press). Example, if JS is not enabled for user, clicking the "create an idea" button triggers a preload/editintro workflow where the user can add basic information to a preloaded page template in an edit window, and then create the new page with that content.

See also[edit]