Feedback Dashboard/Phase 1

'''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 the dashboard associated with MoodBar, 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.

The MoodBar dashboard is designed to enable experienced members of the greater Wikimedia project community to easily view issues, confusions, and praise sent by newer users and provide a simple mechanism to make responding to these issues easy and intuitive.

Hypothesis
Having a quick and easy way for experienced editors to provide answers to feedback (of all kinds) will promote new editor retention.

Use Case
An experienced user would like to see what issues new editors are having and provide aid, explanation, or encouragement to new editors.

Note: the goal of this 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 "dashboard" to allow community members to easily read and understand feedback.
 * This dashboard should provide a running feed of feedback comments
 * This dashboard should provide a mechanism for experienced editors to easily respond to issues.
 * 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

Stretch
 * This dashboard should provide the ability to view high-level rollups of the data over time

(Stretch goals will comprise version 2 of this tool, should they not be met with version 1.)

User Experience (Dashboard)
An experienced editor will navigate to "Special:MoodBarDashboard" or similar url. At this point they will be given a screen with two main elements:


 * A Filter Box
 * A Feed of Comments

For the purpose of this document, a single "MoodBar Entry" shall be considered a comment, regardless of its type (praise, confusion, sadness).

Filters
The filters box will affect the comments which are displayed in the feed. By default, all comments of all types are displayed.


 * By Comment Type (Praise, Issue, Confusion)
 * By Keyword
 * Only show unanswered comments

Ideally, the system will remember which filters have been set in the future (via cookies) so as to reduce user frustration.

In the future, additional filters could be added:


 * Project
 * Language
 * Namespace
 * Article Name
 * Time Range
 * Keyword

Feed Behavior
For phase one, it is not required that the comment feed auto-matically update or indicate that new comments have been added. If this can be accomplished during the sprint, however, it would desirable to indicate to the user that new comments have arrived (via a banner at the top of the feed).

Comments will be stacked in chronological order according to whatever filters have been activated. Upon initial load, only the 20 most recent comments will be loaded. The comment feed will have a "More" link at the bottom of the page that will load the next 20 entries in the stack via AJAX call (to the bottom of the stack).

Comment Elements
Each comment, as displayed, will have the following elements:


 * The Type of comment (happy, sad, confused)
 * The UserName of the comment submitter
 * The Comment Text, if available
 * How Long Ago the comment was submitted (while we store timestamps, converting this number into a format like "X minutes ago" will be more useful to users)
 * A View Response or Respond to this Control
 * If "View Response", a short text indicating who gave the response and when they gave it will be there as well.

Viewing Responses
If a comment has been responded to by a member of the experienced community, a "View Response" link will be present.

Clicking on the "View Response" link will cause the response to be displayed inline, below the original comment.

The response is standard wikitext. The notification as to who provided the response moves to the bottom of the response text.

Clicking the "View Response" link again will close the response display. The responder notification will then move back to its original position.

Respond to this
If a comment has not recieved a response, a "Respond to this" link will appear beneath the comment itself.

Clicking on this link will open and expand a small editor pane below the comment. This will be a simplified editor (e.g., no edit toolbar). All wikitext will be allowed. If a signature is included, it will be stripped out automatically (the tool itself will provide the signature for the responding user).

Responses will have a maximum size of 5,000 characters. There will be a character counter that shows the user how much text they have remaining. Once the user has provided text into the textarea, the "Send Response" button will become active (move from disabled to active state).

If the user exceeds the character count, the counter will turn red and bold, indicating that the user has exceeded character allotment, and the "Send Response" button will become disabled (until such time as the response has been trimmed).

When the response is finished, and the user clicks the "Send Response" button, the system will (via AJAX) post the response to the commenting user's talk page. This comment will also have the user's signature applied as well as a small template indicating that the response is due to their MoodBar submission.

Ideally, an email will be sent to the user with a slightly different format than what is normally given when a talk page is modified. Something friendly and user-readable, along the lines of:


 * JohnDoe has responded to your feedback about editing! The text of their response is as follows:
 * "Sed posuere consectetur est at lobortis. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum."
 * You can continue the conversation on your "talk" page here."

Responses may only be sent by registered users. Anonymous users will not be shown the "Respond to this" link (they will, however, be able to view existing responses).

Data Model Modification
The primary data model of MoodBar remains, however, support must be enhanced for the following elements:


 * Response Date - the date a response was sent
 * Responder ID - the user id/name of the person who has sent the response
 * Response Text - a 5,000 character maximum text field that contains the response itself

This data can (and probably should) be kept in a secondary table. Ideally, this could be LQT-driven (to support threading and possible future enhancements wherein multiple responses can be considered).

Future Thinking
It would be nice if the receiving user were able to mark responses as being "helpful" or "insufficient." How we might be able to do this is include a parser hook on the talk page comment that provides a simple yes/no mechanism that gets saved to the response.