Customization in Openedx:
To Understand the customization in Openedx , First you need to understand
the What is Openedx?, Objective of Openedx ?,Modules in Openedx? etc.
the What is Openedx?, Objective of Openedx ?,Modules in Openedx? etc.
What is Open edX-:
“The Openedx is an open source platform that powers edX courses.
Any universities, institutions or colleges can host their own instances of
Open edX and offer their own courses or classes .”
Any universities, institutions or colleges can host their own instances of
Open edX and offer their own courses or classes .”
- The Open edX platform is a free and open source course management system
(CMS) and learning management system (LMS) that was originally developed by
edX. - The Open edX platform is used all over the world to host Massive Open Online
Courses (MOOCs) as well as smaller classes and training modules where
Instructor can manage courses, view the learners progress and learner can
attend the courses & online test managed by instructor.
You can get some basic idea from below diagram:
Openedx work Flow -:
Objective of Openedx-:
- The goal of Openedx is to grow the worldwide community of
Course teams, researchers, developers, learners and technologists
who share innovative solutions to benefit students by sittings from anywhere
in the world.
- To increase the number universities, colleges & institutions using the edx
by fostering innovation, creating an ecosystem for developing and
distributing content for broad use
- Further for anyone who does not wants to create a learning platform
from scratch for their colleges or universities , They can easily develop
their own organization or universities learning platform by creating the
instance of edx as a base.
- Provides easily integration of custom modules for newly created
feature. For e.g:- Custom Feature: Let say instructor need to create
a module where a learners can write the essay context based on the
essay-Title posted by instructor. Instructor should be able review &
rate the essay context submitted by students.
Solution: Now here Xblock comes in picture where you can develop
your module as per need and can easily integrate with edx instance.
- Allow Instructors to easily create the multimedia course content.
- Easy to monitor the learners progress
- It’s a full-suit learning framework , including online course materials (text, video, etc), advance assessments, discussions, wikis, metrics & many more.
Modules in Openedx -:
There are several modules provided by the openedx:
- Open edX Studio
- The Open edX LMS (Learning Management System)
- The capa_module XBlock, which implements a set of problem types
that are based on LON-CAPA problem types
- The ORA2 XBlock, which implements an open response assessment
problem type
- Discussion forum
- Open edX Insights
Customization in Openedx -:
Any Organization may be required custom modification in their edx instance:
- Apply custom-theme.
- Custom module integration
- Custom Xblock
- Apply custom-theme:
- To apply custom theme in learning platform, make sure that your
theme is located outside of openedx source directory
for e.g.-: /my-open-edx-themes.
- Within that directory, you create a separate directory for each Open edX
repository that you want to create a theme for, such as
edx-platform and ecommerce.
- Within each of those directories, you create another directory and name
it for your theme, such as my-theme. You can create a number of themes,
each with their own name. Within each theme directory, you create
directories and files to parallel the structure in the corresponding
Open edX repository.
- After you create these directories, you might have a structure like this
one. - my-open-edx-themes
├── ecommerce
│ └── my-theme
└── edx-platform
└── my-theme
├── cms
└── lms - Once you have the above directory structure, you can easily examine the
default UI files in the source repository of the component that you want to
apply by the theme. For e.g. The default Open edX theme includes
an image file named logo.png that appears in the header of most
LMS pages.The file path of that image in the edx-platform repository
is lms/static/images/logo.png.
The following example shows an absolute file path of the LMS
logo image in a theme directory.
logo image in a theme directory.
The file path after /my-open-edx-themes/edx-platform/my-theme/ matches the relative file path of that image in the default directory for the LMS UI.
/my-open-edx-themes/edx-platform/my-theme/lms/static/images/logo.png
- You need to configure the theme once done with above stepFor the LMS, you edit :- /edx/app/edxapp/lms.env.json to set
"ENABLE_COMPREHENSIVE_THEMING": true,
"COMPREHENSIVE_THEME_DIRS": [
"/my-open-edx-themes/edx-platform"
],
"/my-open-edx-themes/edx-platform"
],
"THEME_NAME": "Your-custom-theme-name"
- For Studio, you edit :- /edx/app/edxapp/cms.env.json
to set "ENABLE_COMPREHENSIVE_THEMING": true,
"COMPREHENSIVE_THEME_DIRS": [
"/my-open-edx-themes/edx-platform"
],
"/my-open-edx-themes/edx-platform"
],
"THEME_NAME": "Your-custom-theme-name"
- For the E-commerce service, you edit :- /edx/etc/ecommerce.yml
to set “ENABLE_COMPREHENSIVE_THEMING”: true,
COMPREHENSIVE_THEME_DIRS: ["/my-open-edx-themes/ecommerce"],
"THEME_NAME": "Your-custom-theme-name"
- Custom module integration:
- The custom modules can be easily added in Openedx,
adding a module in Openedx is similar to adding an app in your
existing Project - In openedx you need to integrate the app depends on the requirements .
For e.g.: - If you your app is going to be used throughout the application,
then you have to place that that app inside /common module.
Similarly if you need to limit the accessibility of your custom-module,
then you have to integrate that module specific to existing module.
Please refer the below diagram to get clear understanding:
- Custom Xblock
- What is an XBlock?
- XBlock is the SDK for the edX MOOC platform.
- It's a framework that allows the open source software development
community to extend and enhance edX to meet future needs and is
written in Python2 and is a little of one year old. - XBlock is one of the aspects of edX that makes it such a powerful
tool. - XBlock is a component architecture that enables developers to
create independent course components, or XBlocks, that are
able to work seamlessly with other components in the construction
and presentation of an online course. - Instructors are able to combine XBlocks from a variety of
sources - from text and video to sophisticated wiki-based
collaborative learning environments and online laboratories -
to create rich engaging online courses. - FYI refer link : https://youtu.be/dTS-nsf7d3Q
- How to create custom Xblock?
- To create custom xblock you should have basic
nowledge of the following technologies. - - Python
- - JavaScript
- - HTML and CSS
- - Python virtualenv
- - Git
- There are several steps are required to create custom blocks run
the following commands: - mkdir your_dir_name
- cd your_dir_name
- virtualenv -p /usr/bin/python2.7 venv # create virtual environment
- source venv/bin/activate # activate virtual enviroment
- Clone the XBlock Software Development Kit by executing commands:
git clone https://github.com/edx/xblock-sdk.git - cd xblock-sdk
- pip install -r requirements/base.txt
- cd .. # Return to the name_that_you_prefer directory, where you
will perform the rest of your work. - xblock-sdk/bin/workbench-make-xblock # this command will help to
create skeleton files for the xblock. - You will be prompted for two pieces of information:
- Short name: ‘myxblock’
- Class name: ‘MyXBlock’
- Once the skeleton of Xblock files are created the install it in the Xblock SDK.
- Pip install -e myxblock
- Create the SQLite database before running the XBlock SDK.
- python xblock-sdk/manage.py runserver. #run the SDK server.
- To check your XBlock SDK is running , go to http://localhost:8000. Now you should be able to see the below screen:
k