Forums v2

Forums v2

This document was originally created by @Jim Abramson (Deactivated) in November 2013. It has been migrated from the old wiki: https://edx-wiki.atlassian.net/wiki/display/FOR/V2

PRELIMINARY DRAFT

Definition

Goals:

  1. Decouple from edx-platform

    • change and release forums independently of LMS, Studio etc

    • reduce complexity and size of edx-platform

    • move toward service-based ecosystem

  2. Consolidate and standardize

    • merge entities and logic presently split across two separate code repos

    • use a single language

    • move away from special-case deployment (Heroku / add-ons)

  3. Revisit data models and storage

    • data is split across three apps / database types

    • mongo is suboptimal fit for forums data model & access patterns; this causes a need for more application code/complexity to close the gaps

    • search index tightly coupled to mongo; search functions very limited

  4. Improve product quality and extensibility

    • make it easier to understand and maintain the forums

    • make it easier to add key new features such as: moderation, ...

    • make it easier to operate and troubleshoot the forums (by eliminating opaque components and points of failure)

    • design for integration and interoperability: XBlock, LTI, alternate forums implementations (pluggability)

Constraints

  1. Ensure continuity for past/present courses; do not interrupt service or data access for active courses in cutting over

    1. may have more flexibility with past / archived courses

    2. possibly start new courses on v2 while maintaining v1 for old?

  2. Ensure continuity for research partners

    1. might be tricky, e.g. may be doing research over the span of a course, or comparing two courses assuming same version of forums, etc

    2. solve this going forward

  3. Preserve baseline interoperability with alternate discussion systems (Piazza, SE, etc)

    1. maybe a non-issue - can alternate discusison providers be implemented with their own tabs?  more about how LMS links to other apps.

  4. Be transparent to OSS community

  5. Support / guide other platform deployments through a transition

 

Scope

User-Goal Matrix

Forums v2

I want to...

Sara

Nico

Amman

Michelle

Lily

Oliver

ask other users for clarification of a problem

 

 

 

 

provide clarification of a problem

 

 

ask other users for hints on a problem

 

 

 

 

provide hints on a problem

 

 

find the most helpful hints and clarifications for a problem

 

help other students find the most helpful hints and clarifications for a problem

 

 

alert staff to technical issues with the course

 

inform students of technical issues and resolutions

 

 

 

 

 

fix typos in my posts

avoid seeing abusive content

discover questions that have not yet been answered

 

 

 

 

This table is in progress. Still need to add other use cases in to understand feature 
variation across personas. currently on hold as we explore broader product considerations. 

Social Dialogue Software at MOOC Scale

Forums v2

 

Use cases (based on v1)

area

use case

v1 status

v2 status

student

create / edit / delete threads

 

 

 

create / edit / delete posts

 

 

 

upload files in a post (as linked attachments)

images only

 

 

flag / unflag a post

 

 

 

upvote / de-upvote a post

 

 

 

view posts in a thread

 

 

 

browse threads by commentable, or entire course run

 

 

 

browse threads using "more like this"

not implemented

 

 

browse threads by most recently active

not implemented

 

 

browse threads by "trending" (tags)

not implemented

 

 

see if/when user last viewed a thread

 

 

 

post / view posts with anonymity

 

 

 

search for content using text / filters

 

 

 

view user profile / activity

 

 

reputation

-

 

 

notifications

follow / unfollow a thread

 

 

 

follow / unfollow a commentable

not implemented

 

 

follow / unfollow a user

not implemented

 

 

get notifications (activity in things a user is following)

 

 

tags

use tags

not implemented

 

moderator / community TA

delete all threads in a commentable

 

 

 

close / reopen a thread

 

 

 

pin / unpin a thread

 

 

 

endorse a post

 

 

 

edit / delete others' posts

 

 

versioning

versioning of posts

not implement

 

administrator

grant / revoke moderator role on a user

 

 

abuse / quality control

disallow posting specific content

backend only

 

 

manage disallowed content

backend only

 

 

disallow posting content matching rules

not implemented

 

 

manage disallowed content rules

nto implemented

 

cohorting

use cohorts for a course run

 

 

 

assign users to cohorts

 

 

 

show only content in a cohort

 

 

Integration Requirements

Platform (common)

  • User model - identity, student profile, preferences

  • Course-level constructs - course, course run, "commentable," cohort

  • Course run lifecycle

  • Course Enrollment events and course-level roles / access control

Studio

  • automatically initialize forums for new course run

  • create / modify / delete commentables

  • inline thread preview

  • export forum content in course run export

  • import forum content with course run import

LMS

  • discussion tab (desktop/browser app)

  • inline thread view

  • ajax endpoints (HTTP API)

Analytics

  • emit student events

  • provide bulk exports, partitioned by course or institution

LTI

TBD

XBlocks

TBD

 

System Requirements

Ops Requirements

UI and Accessibility Requirements

Capacity Requirements

Performance Requirements

Licensing Requirements

Relevant Business Targets (FY14)

  • 180 Courses

  • 2.3M Users

  • 35 Universities + 5 B2B

 

Present (V1) Architecture

click for full-size view.

Forums V1 Architecture

Build Versus Buy

Considering the nearly innumerable variety of third-party / off-the-shelf options for discussion forums products, why consider building?

Assuming that build was NOT an option, which of the existing products / competitors would be the best fit for us?  What is lacking from the best-fitting offering(s) that motivates us to choose our own implementation instead?

If we did choose to use a third party implementation, what impacts would that have on deployment, maintenance, and evolution of the rest of the platform?  On data integration?  Research capabilities?

(TBD: matrix in progress)

 

Type

Examples

description

license

interface

fit notes

Social Streams

Twitter, Discourse.org, Branch.com

  • Semi-structured, emergent conversation format with references to concepts (hashtags, tags, etc) and people (@mentions, etc)

  • Relies on notifications for return engagements.