Discussion Forum Needs

TODO: These should probably be re-expressed as user stories.

The ideal discussion forum needs the following features.

Whether Open edX Palm currently meets these requirements is denoted by a ✅ or ❌ for visibility.

  • To define areas of the discussion to post into, called Topics in Open edX (and we shouldn’t fundamentally change discussion terminology between versions) ✅

  • To allow users to post discussion threads (posts in Open edX) ✅

  • To allow users to respond to those posts, and to reply to each other (responses and comments in Open edX) ✅

  • Moderation features to allow staff to:

    • Restrict who can post into a topic ❌

    • Lock posts so that a conversation ends, or does not start unnecessarily ✅

    • Edit/Delete all elements (topics, posts, responses, comments) ✅

    • Set pins, to allow posts to be highlighted to users ✅

    • Move discussions from one topic to another ✅

    • Split discussion responses into their own threads when the conversation diverges ❌

    • Manage problematic content flagged by learners ✅

    • See posts in cohorts they are assigned to ❌

    • See posts in each/all cohorts ✅

    • Post to specific other cohorts ✅

    • Ban users from participating in discussions ❌

  • Highlighting of staff-endorsed content ✅

  • The ability to ask questions and select answers (a la Stack Overflow) ✅

  • Post following, to ensure new activity in interesting discussions is easy to find ❌

  • User following, to be notified and easily find content from users of note (such as staff) ❌

  • Email and/or in-app notifications for new activity in followed posts ✅

  • Summary emails of activity since the user’s last visit to promote engagement ❌✅

  • Search and filtering functionality to find posts ✅

  • Auto-moderation to define things like banned words, spam filters, and automated actions to take when a discussion is posted (such as automatically responding to let a learner know there’s a problem with their post) ❌

    • Auto-locking to prevent threads from being resurrected after a period of time has passed ✅

    • Protection from “flooding”, preventing an individual learner from posting to the same discussion thread repeatedly in a short time span ❌

  • “Liking” to allow learners to express their support for a comment ✅

  • “Disliking” to allow learners to disagree with a comment or signal that an answer may be incorrect without having to respond directly and potentially start an argument ❌

  • Mobile-friendly display and interface ✅

    • Mobile push notifications ❌

  • Social media integrations to make it easy to share posts publicly ❌

  • Analytics dashboards to break down and present dashboards and data on discussion usage ❌

  • Anonymous discussion and response posting ✅

    • Time-bound anonymity, hiding identities until the discussion has picked up, removing potential poster bias ❌

    • Anonymity bypass for staff to optionally be able to see who has posted anonymously ✅

  • “Competition mode”, where likes are hidden until a certain time passes, and responses are sorted randomly ❌

  • Emoji-based post reactions ❌

  • Contextualised inline discussion embedding to integrate discussion into learning ✅

    • Discussion instructions integrated with the discussion to direct posts towards a specific task or activity ❌

  • Grade awardable by staff for discussion participation ❌

    • Due dates for graded discussion participation ❌

  • Automated discussion participation grading based on posting, responding, commenting, liking, and being liked by others ❌

  • Permalinking - Providing an easily accessible link for each post and reply ❌

  • File attachments for learners to share files from a restricted list of types ❌

  • Word counts, for learners to see how many words they have written (for assignments such as “Share at least 150 words on your favourite cheese”) ❌

  • Lock dates, for when a discussion will no longer accept responses ❌

  • Blackout dates, for when discussions cannot be used, for things like exam periods ❌

  • Automated accessibility checking and issue flagging for learner submitted content (such as “You’ve shared an image which does not have alternative descriptive text”) ❌

  • Post read/unread status tracking for learners to see when there are new posts ✅

    • Manual control to mark posts read/unread for later ❌

  • Access to deleted replies for staff to review malicious activity or recover accidental loss ❌

  • Support for much smaller collaborative group discussions ✅

  • Support for feeding out discussion posts as an RSS feed ❌

  • “Post before viewing” - a setting to require learners to make a substantive post before they are allowed to see the responses of other learners ❌

  • Draft saving and copying for staff to pre-prepare learner messages ❌

    • Pre-scheduled messages included in future course runs to send the same announcements to discussions at the same point in the course ❌