How we integrated Discourse with Open edX for a more Collaborative Learning Experience

What was the Challenge?

Our customers needed help in creating an efficient edX learning platform that prioritized peer-to-peer interaction and social learning, f

ocusing more on cross-course collaboration instead of course specific collaboration.

What we Researched

Online courses offer the opportunity to create a highly social learning environment and participating in group discussions have shown to help students to learn better through the concept of Community of Inquiry (CoI). This concept explains that the key indicators of a successful online learning environment are – Social Presence (ability of learners to project their personal characteristics through debates and discussions), Teaching Presence (having teachers to give directions and provide learning contents) and Cognitive Presence (ability for participants to construct meaning through knowledge exchange and collaboration).

What we Discovered

We observed that Open edX’s current default discussion feature provides a basic solution to facilitate interaction between students and it enables learners to experience Social Presence and Teaching Presence, however it needs a more engaging cross-course collaboration tool with a wider scope for students to learn better through improved Cognitive Presence.

Our Methodology

  1. We researched various third-party tools that integrated well with Open edX for richer discussions and these tools include Google Groups, Discourse, Django BB, Misago, Machina and Slack.
  2. We concluded that Discourse is the most suitable tool to encourage active cross-course discussions. If you want to know more about the metrics we used for course comparison, view our detailed analysis here.  

Our Technical Approach: How we integrated Discourse with Open edX

We carried out the following steps towards integrating Discourse with Open edX

  1. Deployed a separate instance of discourse
  2. Changed the theme in order to make it look more consistent with the rest of the Open edX platform
  3. Made it more amenable to an embedded user experience by changing the layout of the Discourse page. For eg. eliminating the Top Navigation
  4. Packaged this Discourse Customization as a Discourse Plugin:
    https://meta.discourse.org/t/using-the-pluginapi-in-site-customizations/41281
  5. Created groups on the platform based on themes given by our clients – planned leadership, regional and cross-functional group
  6. Pre-registered users using their emails on the Discourse platform. We plan to automate this in the future via Google Single Sign-on which auto-provision users through login
  7. Added users to their respective groups
  8. Used Google oAuth to enable single sign feature where users can use their Google account to login to their Open edX account.
  9. Integrated Discourse homepage under a special cross-course Discussion tab as an iFrame. Tip: To enable embedding of such nature, change the xFrame settings on the Discourse server
  10. Created a widget from Discourse’s ‘recent discussions’ feed and integrated it on the main Dashboard homepage. This allows users to see information about their discussion activity without having to specifically visit the Discussions tab
  11. Integrated Discourse notifications into the main Open edX top nav notifications, federated with the standard Open edX notifications

What were the results?

We were able to create an efficient collaborative tool that allowed learners to interact and discuss about what they learned from different courses. Cross-course communication has proved to be valuable in helping learners to learn more effectively and we managed to achieve our customer’s goal of creating a productive edX learning platform through Open edX – Discourse integration.