A client recently approached us with a need for creating an edX environment that was largely influenced by peer and social learning. Their requirements for social features included the following:
Student
- Cross-Course Discusions: Ability for students to have one destination to access discussions for multiple courses.
- User Groups: Ability for students to be a part of multiple assigned educational groups.
- Private Discussions: Ability for students to create there own groups with classmates of their choosing.
- Private Messaging: Ability for students to message other students/ instructors in the system privately.
- Multi-Format File uploads: Ability for students to upload files to discussions in a variety of formats.
- Student Directory: Ability for students to be able to access a directory of all students in the system/ see what groups they belong to.
- Advanced Student Profiles: Ability for students to add video/ other multimedia to their profile page.
- Restricted Login/ Signup: Ability to restrict signup/ login to users who have a specific email domain.
- Widget Dashboard: Ability to use discussion data to drive a widget dashboard that would display content such as Top Groups, Discussions, Teacher Announcements, etc.
Instructor
- Create and Assign Groups: Ability for an instructor to create groups and assign students to them.
- View/ Manage All Groups: Ability to see all groups and edit/ add/ delete members.
- Moderate posts: Ability to manage posts based whether promoting positive posts or flagging/ deleted negative posts.
- Rate Student posts: Ability for an instructor to rate a students post/ provide feedback on their post.
- Private Messaging: Ability for an instructor to be able to message students.
- Widget Dashboard Management: Ability for an instructor to manage widget dashboard/ post content to dashboard.
Examining the required feature set revealed that the current default Open edX Discussions solution did not cover a lot of what the client was looking for. Using cohorts and groups along with some platform customizations could be a viable solution. However, our client required minimal to no platform customizations in order to make future upgrades as seamless as possible. This is pretty common as the further you deviate the platform from it’s original state, the harder it becomes to upgrade. This means that you’ll eventually be losing out on new free features that edX rolls out.
It became apparent that a third party tool would best suit our clients needs.
There are many tools available that would integrate well with edx for richer discussions. The ones we evaluated included:
- Google Groups
- Discourse
- DjangoBB
- Misago (another Django Forum)
- Machina
- Slack
We did a feature analysis, posted below for your review.
Student Feature | Default Open edX | Google Groups | Discourse | DjangoBB | Misago | Machina | Slack |
Cross-Course Discussions | No | Yes | Yes | Yes | Yes | Yes | Yes |
User Groups | Using Cohorts | Yes | Yes | No | Yes | No | Yes |
Private Discussions | No | Yes | Yes | No | Yes | No | Yes |
Private Messaging | No | Through Gmail | Yes w/ Plugin | Yes | Yes | No | Yes |
Multi-Format File Uploads | No | Yes | Yes | Yes | Yes | No | Yes |
Student Directory | No | Not Cross Group | Yes | Yes | Yes | No | No |
Advanced Student Profiles | No | No | Yes | No | No | No | No |
Restricted Login/ Signup | No | Yes | No | No | No | No | No |
Widget Dashboard | No | Yes | Yes | No | No | No | Ywa |
Instructor Feature | Default Open edX | Google Groups | Discourse | DjangoBB | Misago | Machina | Slack |
Create and Assign Groups | Yes | Yes | Yes | No | Yes | No | Yes |
View/ Manage All Groups | Yes | Yes | Yes | Yes (No Groups) | Yes | Yes (No Groups) | Yes |
Moderate Posts | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Rate Student posts | No | No | Yes | No | No | Yes | Yes |
Private Messaging | No | Via Gmail | Yes | Yes | Yes | No | Yes |
While a Slack + Open edX integration sounded super exciting and something we want to pursue in the near future, after carefully considering all of these options, we decided to go with Discourse for a few different reasons:
- Feature richness: Discourse has many features that were required by our client. Just a few include Post Metrics, Groups, SSO, Multiple file attachment formats, and many more.
- Open source: Like Open edX, Discourse is completely open source which means it’s completely free and can be edited/adapted as needed. It's built in Ruby on Rails, the same technology stack as the current Open edX discussions solution.
- Active Community: The open source community that revolves around discourse is extremely active with releases coming every couple of weeks and sometimes as often as every few days. See their github here: (https://github.com/discourse/discourse).
- API: Discourse comes with a comprehensive API which allows it to seamlessly integrate with Open edX. This was helpful in this particular case because it allowed for data to easily be picked up for the required dashboard.
Prototype
Click on the prototype below which imagines discussions heavily integrated into Open edX using Discourse, based on our clients' needs.