Grants:IdeaLab/Build/Tools
|
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.
Rationale Edit
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.
Pages Edit
- 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
- MediaWiki:Gadget-addMe.js: gadget javascript
- old pages (to be deleted)
- add pages you would like to be deleted, here
Current use case for Add Me Edit
- Primary
- Joining and endorsing an idea on the IdeaLab. See Grants:IdeaLab/Build/March-June_2014_sprint_plan#Join_.26_endorse
- Secondary
- 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.
requirements (out of date) |
---|
|
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.
requirements (out of date) |
---|
|
Bugs (out of date) |
---|
|
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).
Pages Edit
- 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
- MediaWiki:Gadget-formWizard.js: gadget javascript
Test pages Edit
Pages with a functional "create this (Idea/Request/Pattern) button"
Usage Edit
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
- Grants:IdeaLab/Build/March-June_2014_sprint_plan#Creating_an_idea
- Grants:IdeaLab/Build/March-June_2014_sprint_plan#Kit_for_expanding_an_idea
- Grants:IdeaLab/Build/March-June_2014_sprint_plan#Turning_ideas_into_project_plans
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.
requirements (out of date) |
---|
Idea title and infobox summary (required), problem statement (optional), solution statement (optional)
Idea roles (optional) and Icon (optional)
|
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.
requirements (out of date) |
---|
The first step contains two mandatory fields that elicit required information from the user.
Either dialog boxcan also contain any(?) number of multiline text fields.
Either dialog box can also contain any(?) number of single line text fields. Text the user inputs here will go into infobox parameters that are specified in the config.
Either dialog box can also contain any(?) number of multi-select checklists. Text the user inputs here will go into infobox parameters that are specified in the config.
|
Form wizard specification: expanding an idea Edit
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")
requirements (out of date) |
---|
|
8/9 IdeaLab Hackathon feedback Edit
- What people liked
- GrantsCat
- 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)
- Suggestions
- sub-ideas for milestones?
- when you create/join/endorse an idea, it should be added to your notifications
bug list (out of date) |
---|
|
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:
- w:Template:Project_information
- w:Template:Infobox
- w:Template:Infobox_project
- Template:Editor_Engagement_Project
Features Edit
- 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
Boxen Edit
requirements (out of date) | ||
---|---|---|
|
bug list (out of date) | ||
---|---|---|
|
Internationalization Edit
Each tool will need to support left-to-right and right-to-left languages, and interface elements will need to be translatable.
Notes Edit
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.