/
Forums Braindump from Greg
Forums Braindump from Greg
History
- In the beginning, there was Asbot for the first version of 6.002x.
- When we made a site for multiple courses, we discovered that Asbot didn't support multiple courses with different discussion forums well.
- Amondo Fox from Berkeley decided to write something.
- So originally written by a team (grad student and undergrads) at Berkeley.
- They set up the original architecture, which we still have.
Comments Service (basically a data store from the LMS perspective)
- written in Ruby
- data store in Mongo
- text search in Elastic Search
- all updates need to update both Mongo and Elastic Search
LMS
- originally written by Dave to provide a higher-level interface
- lms/lib/comment_client
- handles all communication to comment service
- lms/djangoapps/django_comment_client
- provides the django views
- common/djangoapps/django_comment_common
- shared between studio and lms
- studio uses it to seed the roles table when a course is created
- has role and permission data
- stored in RDS (mySQL) in its own tables
- table of very granular permissions
- e.g., open/close thread
- in practice, only (really) 2 roles with 2 permissions each
- Student
- Privileged User
- Administrators
- Moderators
- originally, all permissions, except grant/revoke moderator role
- but, these roles are managed in instructor dashboard so no need for separation between Moderator and Administrator
- Community TAs
- same as moderator role, except surfaced role name is different when displayed on a thread
- shared between studio and lms
- LMS uploads images to S3
Browser
- UX designers: Marco and then Brian
June 2013 -> Aug 2014
- Forums team was formed: Greg, Jim, and Kevin (a contractor just for a few months).
- Forums performance improvement: 5 second timeout between LMS and Comments Service happening for over 1% of the requests.
- Heroku is not great for scaling.
- Introduction threads didn't perform well. They would get 1000-2000 comments for just saying "Hi!"
- supported them with infinite scroll rather than paging
- UX issues: front-end wouldn't tell you if there was an error. The UI would just continue to spin. There are still some front-end deficiencies there.
Discussion Content
- Markdown
- We use an open-source markdown editing tool.
- markdown format stored
- White-list of HTML tags
- honored on the browser-side when rendering the content
- possible to store non-white-listed tags if hackre circumvents browser, but the browser on the reader's end will filter out those tags
- Mathjax
- math formula renderer implemented in JS on the client-side
Future
Brian worked on designs to fix the navigation experience.
Need to improve search UX.
, multiple selections available,
Related content
Forums v2
Forums v2
More like this
Discovery - Discussion Redesign
Discovery - Discussion Redesign
More like this
Discussion Forum Feature Comparison
Discussion Forum Feature Comparison
More like this
Discussions
Discussions
More like this
New discussions forum experience
New discussions forum experience
More like this
Discussions
Discussions
More like this