In this essay, a deep dive was done into the Open edX project, to ascertain its product vision. This vision describes what the system aims to do, and for who. While also keeping the future in mind. For a short introduction into Open edX and what it aims to do, see our intro page.
End-user mental model
When designing software, the end-user’s value should always be kept in mind. The main goal of Lean, actually, is to “create a value stream, every one of whose activities adds value to the end user” 1. Mental models consist of beliefs, not facts. It is about what they think or expect from a given system, not what actually will happen. We will go over what we believe to be the two main mental models that exist for the Open edX system.
Teachers are a big part of the end-user base for the Open edX system, as they design, maintain and teach the courses available on it. Their beliefs can be specified as follows:
- The ability to design courses using videos, slides, quizzes and assignments.
- The ability to set deadlines for assignments, including penalties.
- The ability to query important statistics about their course and its participants, as well as past participants.
- The ability of the system to do assessments automatically based on defined rules.
- The ability to send out announcements to all participants, or particular subgroups, of a course.
Learners beliefs can be summarized as follows:
- The ability to enroll for a given course.
- The ability to browse courses systematically (filters, categories).
- The ability to view all enrolled courses, upcoming deadlines and course announcements centrally.
- The ability to approach teachers and teaching assistants with ease.
- The ability to interact with courses on any device.
- The ability to receive credentials for passing a course.
Key capabilities and properties
In this post we provide a short summary of the key capabilities and properties that the Open edX system provides and discuss some of the main features that it has to offer.
The main goal of Open edX is to deliver inspiring learning experiences on any scale. This means delivering online campuses, instructor-led courses, degree programs and self-paced courses using a single coherent platform. In order to achieve this goal, the Open edX platform needs to easily and confidently scale from supporting small learning to thousands of simultaneous learners.
The key capability of the Open edX platform lies in its ability to empower learners and instructors with the tools they need for either learning or facilitating the learning process. This directly translates in the tools the platform provides with examples such as support for interactive forms and discussion boards, advanced learner and instructor dashboards and live video conferencing capabilities. Moreover, the platform provides cross-device as well as cross-platform capabilities with the ability to seamlessly integrate with other third party tools such as Salesforce. In today’s world where most of the online traffic is taking place on mobile devices, offering support for these types of features is therefore very important.
Users of the Open edX platform are also able to customize their learning platform within minutes, having access to a set of tools that offers a rich authoring experience. From interactive content with adaptive video streaming, multimedia animation and simulation to AR and VR support, the Open edX service truly caters for all use cases an instructor might have. The intelligent analytics provided by the platform also offer instructors and researchers key insight and real-time data analysis over their courses and how students enrolled in those courses perform.
In the tables below we present the most important features of the Open edX platform.
|Add a new user||Active directory/LDAP integration||Block management|
|Archive users||Custom user login page||Language settings|
|Browse list of user||Manual accounts||Media embedding settings|
|Bulk user actions||No login||Multilanguage support|
|Custom/Mandatory user fields||SAML2/API integration|
|Upload users||Self-Registration w (or w/o) admin confirmation|
|Activity grading||Certificate management||Gamification||Learning types||Format||Security|
|Course History||Certification life-cycle||Badge customization||Asynchronous Instructor-led||Course Discussions||Anti-spam|
|Gradebook||Manage certification templates||Badges||Asynchronous Self-paced||Anti-virus|
|Gradebook audit trail||Predefined certification templates||Blended Learning||Learner Upload||IP Blocker|
|Gradebook comments||Unique Certificate by Course||Synchronous Virtual Classroom||LIVE Chat Option||Restrict registration to specific domains|
|Manual Grading (“Marking”)||Unique Certification by Curriculum||Levels||LIVE Videoconferencing / Webinar||Strong passwords|
|Multiple grading scales||Social Format|
Note: crossed out fields are features which are not currently supported by the Open edX platform.
To get a clear picture of all the relevant entities that might have an interest, or concerns with the realization of the Open edX platform, a stakeholder analysis was performed. This was done with the classes of stakeholders defined by 2 in mind. Some classes are omitted due to irrelevance in the context of Open edX.
Open edX is based in the United States, which means that the legal conformity of their platform according to American educational laws would ultimately be assessed by entities such as: the Office for Civil Rights of the Department of Education, the Department of Justice, the Department of Labor and the EEOC 3. For GDPR laws, national bodies have been selected as assessors.
Since Open edX is open source, developers could be people from all over the world. In practice, however, active frequent contributors are mostly part of the edX team. Other developers include coders from other MOOC platforms which implement Open edX as their backbone. Including educational companies DataQuest and Labster.
See Appendix A for current developers to approach about the Open edX system.
To setup your own platform using Open edX, two options are offered: self-managed and fully-managed.
Self-managed solutions include distributions of the Open edX platform with added functionality. Open edX lists 3 suppliers who offer such distributions, namely: IBM, Tutor and Bitnami. When hardware is not available/feasible, cloud providers such as AWS, Google Cloud or Microsoft Azure would be a popular choice.
Enrollments across all edX courses are over 70 million4, which is not including rebranded MOOC platforms implementing the Open edX platform.
Besides that, edX lists 57 partnered schools and universities of which 16 are stated to be contributors4. Some of these universities include: MIT, Harvard, TU Delft, Boston University and Berkeley University.
Several other MOOC Providers exist, such as:
Of these platforms only Canvas is also open source.
The context view is used to delimit the system from all its communication partners. To be more precise, in this section the relationships, dependencies and interactions between the Open EdX platform and the external are specified.
A short explanation of some of the components in the context view model:
Developers: As an open source project Open EdX gives the opportunity to individual developers to contribute to the project. Active GitHub users can take part in adding new features and in code maintenance.
Databases: Courses are stored in MongoDB. Per-learner data is stored in MySQL. The analytics that occur from events describing user’s behavior are also stored in MySQL.
Documentation: The edX Developer Documentation is created using RST files and Sphinx.
Communication: Technical questions posting and chatting with the community can be achieved at the Open EdX discussion Forum. Moreover, JIRA is used as an issue tracker by the developers. Finally, real-time conversations are available on Slack.
Open edX roadmap
Open edX creates named releases which are different from the daily deployments with a longer release cycle on the order of six months between every release. The named releases are tested by the edX and Open edX community in order to ensure early detection of bugs and fix issues quicker.
Future Version: Juniper
The upcoming version is called Juniper5 and it contains several architectural differences:
Changes to architecture regarding login credentials:
Login and Registration is now solely handled by the LMS component. Studio redirects to the LMS for registration[^StudioSignIn/Out]. A new component called learning portal is being introduced.
Documentation necessary for:
Gradebook Proctoring ORA-2 Course Dates
A new feature component called frontend-app-publisher:
Frontend-app-published integrates between course discovery, ecommerce, and Studio services and can be used to create new courses and course runs that will be pushed out to Studio for content authoring 6.
- “there is no standard process for installing Micro frontends, but Publisher is still being provided so the community can become more familiar with it and possibly configure and install it on their own.”
Additions to studio:
Reorganizing data structure for course metadata7: Each course run now holds a record of the seats in the course, and E-commerce products in the course metaData.
The addition of multiple LMS modes such masters being available now, it has created a divergence between the seats in the course and e-commerce product attached to it. The course run now will hold the ground truth in the meta data. This allows to easily add new LMS modes or products.
Juniper main references features:
This table lists the most active developers working on Open edX from the edX team.
Coplien, J. O., & Bjørnvig, G. (2011). Lean architecture: for agile software development. John Wiley & Sons. ↩
Nick Rozanski and Eoin Woods. Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives. Addison-Wesley, 2012, 2nd edition. ↩
National Association of College and University Attorneys (NACUA). (2019, 22 oktober). Higher Education Compliance Matrix. Consulted on March 5th 2020, van https://www.higheredcompliance.org/compliance-matrix/ ↩
, https://openedx.atlassian.net/wiki/spaces/COMM/pages/940048716/Juniper ↩
, https://github.com/edx/frontend-app-publisher/ ↩