A Richer Discussion Experience in Open edX

For some institutions interested in using Open edX, student discussions may be an afterthought, while others find it quite important to use discussions for peer learning. The default discussion feature offered by Open edX brings a decent out-of-the-box solution for facilitating interaction between students. However, to get a more robust, cross-course discussion experience it may be worth considering a third-party app integration.

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

  1. Cross-Course Discusions: Ability for students to have one destination to access discussions for multiple courses. 
  2. User Groups: Ability for students to be a part of multiple assigned educational groups. 
  3. Private Discussions: Ability for students to create there own groups with classmates of their choosing. 
  4. Private Messaging: Ability for students to message other students/ instructors in the system privately. 
  5. Multi-Format File uploads: Ability for students to upload files to discussions in a variety of formats. 
  6. Student Directory: Ability for students to be able to access a directory of all students in the system/ see what groups they belong to. 
  7. Advanced Student Profiles: Ability for students to add video/ other multimedia to their profile page. 
  8. Restricted Login/ Signup: Ability to restrict signup/ login to users who have a specific email domain.   
  9. 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

  1. Create and Assign Groups: Ability for an instructor to create groups and assign students to them.
  2. View/ Manage All Groups: Ability to see all groups and edit/ add/ delete members. 
  3. Moderate posts: Ability to manage posts based whether promoting positive posts or flagging/ deleted negative posts. 
  4. Rate Student posts: Ability for an instructor to rate a students post/ provide feedback on their post. 
  5. Private Messaging: Ability for an instructor to be able to message students. 
  6. 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:

  1. Google Groups
  2. Discourse
  3. DjangoBB
  4. Misago (another Django Forum)
  5. Machina
  6. 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
Who would we go with?

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:

  1. 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.
  2. 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.
  3. 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).
  4. 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.

Picture

Open edX Dogwood: New Features & Highlights

​Open edX is an open source course management system that is used to author and deliver online courses. Two kinds of courses, MOOC (massive open online courses) and SPOC (small private online courses) can be created. The fourth Open edX release, Dogwood, brings a host of features with several enhancements.
edX rolls out stable tested releases inclusive of upgrade instructions every 4-6 months. Released on February 11, 2016, Dogwood has a host of new features to empower course makers with new and efficient tools. Fun fact: Dogwood happens to be named after a tree like prior Open edX releases (Aspen, Birch, Cypress and the upcoming Eucalyptus release)

“Students learn much better when they are interacting with the material. Self-pacing can be very helpful for learning. Another idea is instant feedback. We applied gamification ideas to learning.
–  Excerpts from a TED talk by Anant Agarwal, CEO, edX.

A significant change in the Dogwood Release is an upgrade to Python from 2.7.3 to 2.7.10. The Django framework has also been upgraded from 1.4 to 1.8.7.
 
Here’s a summary of some of our favorite new features:
 
Mobile App Features: The key, critical additions are new mobile app features.the improvements are a big step forward in a mobile first world. To preview mobile behavior,  log in to edX.org running on Dogwood, browse courses registered for, attempt assessments, view videos, handouts and announcements. You can practically use most common features in mobile that the desktop website allows you to do. More advanced features like drag-and-drop are not yet available on mobile, basic assessments are available on the mobile app. On a more technical note, xBlocks, the extensible framework used to develop advanced learning units, do not yet have mobile support built in. Mobile support needed to be developed by the implementer of the feature, making mobile support for all learning units even more complicated.
 
E-commerce Service: There is a more comprehensive e-commerce service, Otto, now available, beyond the basic shopping cart and cybersource implementation available earlier. A Django application, the e-commerce service will manage product catalog orders. Adding ECommerce to your Open edX install can be achived using a Course Administration Tool (CAT, a web app) and a Django administration site. CAT is part of the ECommerce service, it enables you to manage and configure course-related products as part of your edX learning management system .
 
Partial Credit: Earlier edX versions evaluated the assessment answers to be either right or wrong. In Dogwood, you can award a minimum of 0.25  points to the learner. This occurs when the learner chooses the second-most likely answer out of the provided four options.
 
LTI XBlock: The new LTI XBlock edition will replace the LTI XModule. Apart from existing module features, users can configure learning tools interoperability (LTI). There are a few options to render content: embedded in a course page, in a modal window or in a separate web browser window. Remote learning tools like textbooks and applications can also be integrated into your course, thanks to LTI components. Embedding a variety of third-party tools and plug-ins is now easier, thanks to LTI. 
 
More LTI uses:

  1. Remote LTI tools can be used for content display only. These do not require a learner response.
  2. The same remote LTI tools can aid in stages that require a learner’s response.
  3. The LTI component can also act as a placeholder for remote grading system synchronization.

 
Specific Student View: An instructor can preview how a particular course looks to any particular student by just typing in their email id or user name. This is a useful addition for troubleshooting and grading.
 
Certifications: Dogwood allows you to create HTML web certificates. You can fill in the details, preview the design and take a print out, giving youmore flexibility on how students canview their certificate. It also allows you to purchase a verified certificate (proof that you took the course) and verify student identity..        
 
Instructor Dashboard: Dogwood provides a more dynamic application, for example – allowing viewing of invoices of all students taking the course. The dashboard is now loaded with a great set of tools giving  the instructor  an all-round view of the set up. This includes course info, analytics, student admin, certificates, enrollment codes and course seat purchases.
 
Student Notes: A nice handy new feature, allowing students to take down notes, highlight text, tag the selected text, edit or delete them. A ‘Notes’ tab allows you to search through your collected notes and find the one you want.  
 
Bulk Enrollment: In cases where employees from an entire organization have to avail a course, Dogwood has eased the initiation process. It allows learners to access the courses through bulk enrollment codes and unique URLs. Any paid course can be set up in the back end, with a simple interface allowing you to either edit or create a brand new course altogether. The course name, course type, course price, course upgrade deadline and certificate deadline can all be selected with ease.
 
Paid Courses: Reviewing paid courses is a lot more easier now. A simple drop-down allows you access to user and product analytics, among other things. The entire set up is on an open source e-commerce framework, called Oscar.      
 
edX Insights: A feature that has been around for a while, this analytics edX section is now easier to run. Testing a course, evaluating its effectiveness are just a part of it. Sharing student data, their course assignment details, daily course enrollment, active students percentage, video-watching percentage are all filtered down to the minutest details (how many videos were watched end-to-end, etc), helping edX administrators and course authors gather a 360 degree comprehensive data view of the course.      
 
‘Search’ is now default: The search feature is now default in Dogwood. It allows you to search all your courses in your course catalog, with an advanced search option allowing search with regard to course language, type (example: Video with transcript), etc.
 
Summary

Besides the features above, learners with Facebook or Google accounts can enroll into courses more easily, with social login being made easier to integrate. Features like ‘Wiki Notifications’, ‘Studio Checklist’, ‘Legacy Instructor Dashboard’ and ‘Shoppingcart’ are set to be removed in the next version release, presently deprecated in Dogwood. Several improvements to aid readability and navigability have been made. Learn more about Dogwood features here.   
    

Reliable Email on Open edX

Probably the most common issue we hear about Open edX installs is that emails are not being received or go to spam over 90% of the time. This is the nature of operating a mail service on your own server: with so much spam on the internet, there are several measures put in place by email services and other providers to prevent spam. Particularly emails from some mail server on a random AWS instance. 

For this reason, it’s advisable to sign up for a reliable email service like Sendgrid or Mandrill, and to configure your email to work with this service. This has the added benefit of being able to see email analytics and use a variety of features that come with these services. 

Here are steps to set this up with your own Open edX instance:

1. Create an account on a services like Sendgrid or Mandrill

2. Obtain the SMTP server details ie server name, username and password.

3. On your Open edX instance, the default email settings will have to be configured to use the SMTP backend provided by yourDjango App instead of the default console backend.

4. These setting variables can be set/modified in following file on your Open edX repo/local instance:
Path:  edx-platform/lms/envs/common.py

5. The suggested changes to variable settings are as follows:

a. There is a setting for EMAIL_BACKEND 
The default setting is:
EMAIL_BACKEND = ‘django.core.mail.backends.smtp.EmailBackend’
This should be changed to: 

EMAIL_BACKEND =django.core.mail.backends.smtp.EmailBackend’

b. There is a setting for EMAIL_HOST
The default setting is usually:
EMAIL_HOST = ‘smtp.gmail.com’
Change this to the SMTP server setting provided by your email provider eg
EMAIL_HOST = ‘
smtp.sendgrid.net’

c. There is a setting for EMAIL_PORT
The default setting is usually
EMAIL_PORT = 587
Change appropriate port recommended by your SMTP provider

d. There is a setting for EMAIL_USE_TLS
The default is usually:
EMAIL_USE_TLS = True
Keep the value as 

EMAIL_USE_TLS = True

e. Set the EMAIL_HOST_USER setting to the username from your mail service.
Eg if the email/login of your mail service is [email protected], set this value for your EMAIL_HOST_USER
EMAIL_HOST_USER = ‘[email protected]

f. Set the EMAIL_HOST_PASSWORD setting to the SMTP password set on your SMTP service
EMAIL_HOST_PASSWORD = ‘setpasswordhere’

g. For the DEFAULT_FROM_EMAIL, set your SMTP email or chosen from email here 
eg
DEFAULT_FROM_EMAIL = ‘[email protected]

6. Note that you will need to change EMAIL_BACKEND in a couple other places ie
edx-platform/lms/envs/content.py and edx-platform/lms/envs/devstack.py (For your dev environment)

7. An alternate approach is to set/modify the variables in json setting files ie lms.env.json and cms.env.json.
The respective paths on your deployed instance are
 /edx/app/edxapp/lms.env.json and /edx/app/edxapp/cms.env.json

The json settings variables will override the settings sets in common.py.

8. After setting the variables restart edxapp and edxapp worker services.
sudo /edx/bin/supervisorctl restart edxapp:
sudo /edx/bin/supervisorctl restart edxapp_worker:

That should do it, you users should now receive email much more reliably!

Here is an example of settings, when Sendgrid is the chosen email provider:

Python common variable file settings:

edx-platform/lms/envs/common.py:

   EMAIL_BACKEND =  “django.core.mail.backends.smtp.EmailBackend”
   EMAIL_HOST  = “smtp.sendgrid.net”
   EMAIL_PORT  =  587
   EMAIL_USE_TLS = True
   DEFAULT_FROM_EMAIL =  “[email protected]
   EMAIL_HOST_PASSWORD = “setpasswordhere”
   EMAIL_HOST_USER = “setusernamehere”

JSON file settings:

lms.env.json and cms.env.json:

    “EMAIL_BACKEND”: “django.core.mail.backends.smtp.EmailBackend”, 
    “EMAIL_HOST”: “smtp.sendgrid.net”, 
    “EMAIL_PORT”: 587, 
    “EMAIL_USE_TLS”: true, 
    “DEFAULT_FROM_EMAIL”: “[email protected]”, 

lms.auth.json and cms.auth.json:

    “EMAIL_HOST_PASSWORD”: “setpasswordhere”,
    “EMAIL_HOST_USER”: “setusernamehere”

Open edX For Corporate Use

edX is known to be widely used at universities and other educational institutions. However its rich feature set, usability and openness offer compelling uses in a corporate learning environment.

edX Vs. Op

en edX

First, let’s distinguish between edX and Open edX

edX is the Organization, offering approx 850 MOOC courses online on edx.org. Open edX is the open source software, which is free to install and customize and develop your own Learning Management System
edX was originally developed for higher education self-paced courses. There are 2 ways that corporations can work with edX:

  • Option 1: Partner with edX to host courses on edx.org
  • Option 2: Use Open edX to host courses on customized learning experience

Option 1: Partner with edX

While edX primarily partners with Universities, it also partners with corporations to develop and host courseware . edX creates a white-labeled partner branded powered by edX. Full list of partners here
In this model, edX: 

  • Hosts courseware on edx.org with standard out-of-the-box features
  • Assists with aspects of course production

There are 2 models for a University or Corporate Partner to work with edX in the first option.
Option 1→ MODEL 1: Self-Service

  • Partner uses edX as a free LMS for a course with a revenue sharing agreement
  • The courses are created by Partner without course-production assistance from edX
  • Once the course is live on edx.org, edX will collect
    • The first $50,000 generated by the course, or
    • $10,000 for each recurring course
  • edX and Partner will each get 50 percent of all revenue beyond that threshold

Option 1 → MODEL 2: edX-Supported

  • edX is consultant and design partner, offering production assistance to universities for their MOOCs.
  • edX charges a base rate of $250,000 for each new course, plus $50,000 for each time a course is offered for an additional term.
  • Partner gets 70 percent of any revenue generated by the course

Option 1: Example of Corporations that have worked with edX in this model

  1. Tenaris
    1. Tenaris, a global steel manufacturer worked with edX to expand training and education for almost 27,000 Tenaris global employees.
    2. Through this collaboration, edX provided training and consulting for online course development for Tenaris University, the company’s corporate training center
  2. International Monetary Fund
    1. The IMF was the first non-university partner with Open edX in June 2013
    2. The IMF uses edX to offer training courses in macroeconomics and finance to IMF and interested policy makers and finance professionals
  3. Microsoft
    1. Microsoft is offering courses for users to acquire the core development skills needed to be successful in the cloud-first, mobile-first world


Option 2: Use Open edX

The second way that corporates can work with Open edX is to use edX’s open source software, Open edX. Here are some benefits of Open edX:

  • Install your own version of the latest edX software (Open edX)
  • Host it in your own data center or public/private cloud
  • Customize it per your needs
  • Integrate it to work seamlessly with your corporate systems
  • Open edX is free to use and customize
  • This option is used by several corporations including
    • McKinsey
    • J&J
    • MongoDB
    • Pivotal

Benefits of Open edX

  • Intuitive user interface (studio and LMS)  
  • Flexible assessments/labs/homework – learning by doing  
  • Platform supports modular learning  
  • EDX.org operational with 850 courses / 5M users   
  • Corporate Proof Points (McKinsey, J&J, Pivotal and more)
  • Modern technology architecture
  • Allows advanced customization
  • Testing on EC2/Azure shows proven platform stability  
  • Active global developer community
  • Support from core edX team to open source community
  • Free/no cost to use


In-Built Advanced Corporate Compatible Features 

  1. Fully web-based allowing for integration/link from other corporate web properties
  2. Support for standard single signon (SAML, Shibboleth etc)
  3. Advanced support for dynamic course modules including video, assessments, images and more
  4. Support for advanced engagements analytics (edX Insights)
  5. Access to several 3rd party xBlocks to allow for extended functionality (eg Polls, Google Docs, Google Hangouts)
  6. Support for 3rd party courseware (LTI compatible)
  7. Highly customizable open source : “Anything is possible”

Security of an Open Source Platform

For large corporations, security of an Open Source Platform is usually a major concern. These concerns with Open edX are addressed as follows:

  • Software can be installed on-premise or on public/private cloud (as secure as data center / private cloud environment)
  • Generally more secure than an open SAAS platform built with unknown software
  • Open source allows for whitebox inspection to further evaluate security
  • Security scans and pen tests are conducted by edX Team on Open edX builds
  • edX publishes security log to announce any new security issues
  • Occasional custom packages can be re-compiled to integrate security fixes for components in the Open edX environment/OS
  • SSL certificates supported to encrypt web content over https
  • Unused edge ports can be blocked by setting up firewall rules

In summary, edX offers several advanced LMS features out of the box, has a modern and highly usable interface and is constantly getting better. And given that it is open source and supports courseware interoperability (eg LTI) , it is wide open in terms of its ability to be integrated with any corporate environment.

SAAS LMS vs Open edX

A common question that comes up when evaluating Open edX is how it compares to other SAAS LMSs (eg schoox, d2l). 

Pros of a SAAS LMS

  • Built for corporate use case (vs. edX for higher-ed)
  • Rich set of corporate specific features and integration options
  • Good for hierarchical/geographically distributed employee management

Cons of a SAAS LMS

  • Primarily SAAS model, limited on-prem model
  • Out of the box as-is model, advanced customization not available

Open edX gives you your own set of core LMS features out of the box, with the ability for you to customize the platform to really any feature set you want. The trade off is you need to be equipped with a full stack Python development team to correctly customize the platform for your needs.

For a more detailed comparison feature by feature of Schoox vs. Open edX see this document.

schoox-vs-edx.pdf
File Size: 185 kb
File Type: pdf

Download File


Bulk Enrollment for Organizations

So you’ve launched your MOOC and you’re in the market. You’re pushing your B2C/SEO/Social strategy and it’s working well but you know organizations who want to take your courses for a bulk fee. This B2B approach sounds promising! But how do I make this happen? Do I need to create a separate Signup code management solution? 

The good news is that you can configure all this in the eCommerce Module on Open edX, using the Enrollment Codes feature. For more info, see: 

open-edx-enrollment-codes.pdf
File Size: 169 kb
File Type: pdf

Download File


Using Open edX Studio

We are often asked how to to create courses on Open edX. It is actually quite simple, the edX Studio (content management system) is intuitive and easy to get started with quickly. For the power-user course creator, there are several advanced features including Libraries, Custom Courses, Cohorts and more.

The edX Team has put together a comprehensive guide to learn how to get the most out of Open edX Studio. You can access this document here, and start creating hyper engaging courseware.

Direct link: ​https://perpetualnyc.com/wp-content/uploads/2016/01/open-edx-building-and-running-a-course.pdf

Open edX Cypress Release: Default features vs need configuration

When setting up new installations for our clients, we are often asked what Cypress release features are available by default, and which features need configuration.  

Here are the list of Cypress features that need configuration

  • Badges
  • Course Search
  • Creative Commons
  • Third Party Authentication
  • Uploading ORA2 Files to Alternative Storage Systems
  • Custom Courses

And here are the list of features that are ready to use as soon as you install Cypress

  • ​Cohorts
  • Course Certificates
  • Grade Report Enhancements
  • Feedback and Hints in Common Problems
  • HTML Spell Check in Studio
  • Learner Profiles
  • LTI Provider
  • New Studio Templates
  • Original Open Response Assessment Problems Deprecated
  • Poll and Survey Tools
  • Problem Appearance Changes
  • Problem Grade Report
  • Randomized Content Blocks
  • Report of Not-Yet Enrolled Students
  • YouTube API 3.0 API Key

Open edX Interoperability (LTI, SCORM and more)


Open edX supports Interoperability with external course standards, with varying levels of configuration and customization needed.

xBlocks: xBlocks are specially built for Open edX, so these are fully supported and require no software customizations, however do require setup and configuration


LTI: LTI (Learning Tools Interoperability) is supported,and follows the IMS Global LTI 1.1.1 standards. This allows any LTI 1.1.1 compatible courseware to be supported 


OLI: OLI is supported by Open edX, via LTI. LTI allows instructors to create a link from their LMS course to their OLI course. When the link is clicked, the LMS encodes parameters about the user into the link and redirects the user to OLI. OLI verifies the parameters provided by the LMS and directs the user to the appropriate OLI course. The user will see an OLI launch page within the LMS window from which they can access the various features of their course.


SCORM: Scorm is not yet natively supported and requires some customizations. SCORM compatible content can be packaged as a standard embeddable component using a tool like Storm Cloud. This packages the Scorm content as an LTI 1.1.1. compatible module. The LTI 1.1.1. module can then be incorporated into an Open edX course