Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

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
    • 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

Browser

Then, Kevin, a contractor took on some of this work.

June 2013 -> Aug 2014, Forums team was formed: Greg, Jim, and Kevin (just for a few months).

  • Forums performance improvement: 5 second timeout between LMS and Comments Service happening for over 1% of the requests.
  • 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.

 

 

  • No labels