MoodBar/Design

'''This document is a work in progress. Comments are appreciated but this is not a final draft.'''



This document describes the design and behavior of a feature designed to enable new users to quickly provide feedback to the various Wikimedia Foundation project communities and to provide a view to that feedback for the community members themselves.

Hypothesis
Having a quick and easy way for new editors to give feedback on what is "making them happy" and/or "making them sad" will help increase awareness among more experienced editors of the issues new editors face.

Use Case
A new user encounters something that makes them happy, sad, confused, or is simply something they would like to provide feedback on.

An experienced user would like to see what issues new editors are having.

Note: the goal of this feedback tool is to surface community issues first and technical issues second. This feature is not designed to be used as a bug reporting mechanism.

Feature Requirements (Phase One)
Required
 * Provide a simple feedback mechanism for users to indicate their "mood" about a particular item or about the project as a whole.
 * This mechanism must include the ability for the user to indicate positive mood, negative mood, or confusion
 * This mechanism must include the ability for the user to elaborate about their mood with a short text field
 * The mechanism must be able to handle A/B testing for language choice and position choice

Stretch
 * Provide a "dashboard" to allow community members to easily read and understand feedback.
 * This dashboard should provide a running feed of feedback comments
 * Feedback comments, if included, should be subject to Oversight (to prevent publication of phone numbers, real names, etc.)
 * This dashboard should provide various filtering and searching mechanisms
 * This dashboard should provide the ability to view high-level rollups of the data over time

User Experience (Feedback)
The user will be given a new, top-level link to share feedback. The text of this link will be "$PROJECTNAME made me..." with a small icon. So, for Wikipedia, the text will be "Wikipedia made me..." and for Wiktionary the text will be "Wiktionary made me..." and so forth.

Note that the actual text of this link is subject to A/B testing; correct wording is key here. Options include:


 * "$PROJECTNAME made me..."
 * "While editing $PROJECTNAME I..."
 * "Share your mood"

Clicking on the link will open a NON-modal, specially shaped dialog box. The dialog is hard set to its location and will scroll off the screen if the user chooses.

The dialog may be closed by clicking on the "close" link within the dialog. Further, clicking anywhere on the screen other than inside the dialog will cause it to close.

The dialog starts with showing three options to the user with a headline:

"Wikipedia made me..."

And the three options, with icons:
 * Happy
 * Sad
 * Confused

Rolling over any one of the icons will cause it to change color.

Upon selection of an icon, the following will happen:


 * The background and icon will change to indicate the specific selection;
 * The dialog will resize to accomodate new elements;
 * Three new elements will appear:
 * Because... - a 140 character text feild entry box
 * Share anonymously - a checkbox
 * Share Mood - a submit button

The "Because..." text field will indicate the maximum number of characters remaining for the user to input.

The "Share anonymously" checkbox will have a "what's this?" hover link that will describe what sharing anonymously means.

The "Share Mood" button will be disabled until the user has entered text into the "Because..." text field.

Feedback Text
The user will be encouraged to include a short, free-form text block limited to 140 characters.

Upon submission, this text will be scrubbed and the following elements will be deleted:


 * External URLs (to prevent spamming)
 * Signatures
 * "Blue language" (simple regular expressions to filter offensive language)

The length of 140 characters has been chosen because it is about the length of two sentences and 140 is a common limitation (e.g., SMS blocks, Twitter, etc.).

Share Anonymously
There will be a checkbox that will allow the user to decide whether or not to share their feedback anonymously. The checkbox will default to "unchecked".

Duplication
If the same user provides the same feedback element within an hour, any duplicates will be discarded.

User Experience (Dashboard)
TBD

Filters:
 * Feedback/Mood type
 * Project
 * Language
 * Namespace
 * Article Name
 * Time Range
 * Keyword

Data Model
Each feedback entry requires the following elements to be captured:


 * Type of Feedback - Praise, Issue, Confusion
 * Language - The language of the project.
 * Project - The name of the project (Wikipedia, Wikinews, etc.)
 * User Name - The user name of the person providing the feedback
 * Namespace - The namespace of the page (Main, User, User_talk, etc.)
 * Page Title - The title of the page
 * Feedback Text - A freeform text field, limited to 140 characters.
 * Anonymous Bit - Is this feedback anonymous or not?
 * Timestamp - A standard MediaWiki timestamp
 * Operating System - The user's operating system
 * Browser User Agent - The user agent of the browser.
 * Locale - The locale of the browser (not the language of the WMF project)
 * Is Editing - a bit to detect if the page was being edited.
 * Edit Count - the Edit count of the user at the time of submission.
 * Bucket - which A/B bucket the user was in at the time of submission
 * Is Own Talk - a bit that indicates if this was supplied off the user's own talk page