Skip to main content

Customization's in OpenedX


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.
 

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 .”

  • 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:
  1. Apply custom-theme.
  2. Custom module integration
  3. Custom Xblock
  1. Apply custom-theme:
    1. 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.
    1. 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.
    1. 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.
    1. After you create these directories, you might have a structure like this 
      one.
      1. my-open-edx-themes
        ├── ecommerce
        │   └── my-theme
        └── edx-platform
           └── my-theme
               ├── cms
               └── lms
    2. 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.
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

    1. You need to configure the theme once done with above step
      For 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"
],
"THEME_NAME": "Your-custom-theme-name"
      1. 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"
],
"THEME_NAME": "Your-custom-theme-name"
      1. 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"

  1. Custom module integration:
    1. The custom modules can be easily added in Openedx
      adding a module in Openedx is similar to adding an app in your
      existing Project
    2. 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:
  1. Custom Xblock
    1. What is an XBlock?
      1. XBlock is the SDK for the edX MOOC platform.
      2. 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.
      3. XBlock is one of the aspects of edX that makes it such a powerful
         tool.
      4. 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.
      5. 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.
    1. How to create custom Xblock?
      1. To create custom xblock you should have basic 
        nowledge of the following technologies.
        1. - Python
        2. - JavaScript
        3. - HTML and CSS
        4. - Python virtualenv
        5. - Git
      2. There are several steps are required to create custom blocks run
         the following commands:
        1. Setup the Xblock SDK in a virtual environment, by executing
           following commands:
          1. mkdir  your_dir_name
          2. cd your_dir_name
          3. virtualenv -p /usr/bin/python2.7  venv   # create virtual environment
          4. source venv/bin/activate # activate virtual enviroment
          5. Clone the XBlock Software Development Kit by executing commands:  
            git clone https://github.com/edx/xblock-sdk.git
          6. cd xblock-sdk
          7. pip install -r requirements/base.txt
          8. cd ..  # Return  to the name_that_you_prefer directory, where you 
            will perform the rest of your work.
          9. xblock-sdk/bin/workbench-make-xblock # this command will help to 
            create skeleton files for the xblock.
          10. You will be prompted for two pieces of information:
            1. Short name: ‘myxblock’
            2. Class name: ‘MyXBlock’
          11. Once the skeleton of Xblock files are created the install it in the Xblock SDK.
          12. Pip install -e myxblock
          13. Create the SQLite database before running the XBlock SDK.
          14. python xblock-sdk/manage.py runserver. #run the SDK server.
          15. To check your XBlock SDK is running , go to http://localhost:8000. Now you should be able to see the below screen:
k

Popular posts from this blog

How to read or extract text data from passport using python utility.

Hi ,  Lets get start with some utility which can be really helpful in extracting the text data from passport documents which can be images, pdf.  So instead of jumping to code directly lets understand the MRZ, & how it works basically. MRZ Parser :                 A machine-readable passport (MRP) is a machine-readable travel document (MRTD) with the data on the identity page encoded in optical character recognition format Most travel passports worldwide are MRPs.  It can have 2 lines or 3 lines of machine-readable data. This method allows to process MRZ written in accordance with ICAO Document 9303 (endorsed by the International Organization for Standardization and the International Electrotechnical Commission as ISO/IEC 7501-1)). Some applications will need to be able to scan such data of someway, so one of the easiest methods is to recognize it from an image file. I 'll show you how to retrieve the MRZ information from a picture of a passport using the PassportE

How to generate class diagrams pictures in a Django/Open-edX project from console

A class diagram in the Unified Modeling Language ( UML ) is a type of static structure diagram that describes the structure of a system by showing the system’s classes, their attributes, operations (or methods), and the relationships among objects. https://github.com/django-extensions/django-extensions Step 1:   Install django extensions Command:  pip install django-extensions Step 2:  Add to installed apps INSTALLED_APPS = ( ... 'django_extensions' , ... ) Step 3:  Install diagrams generators You have to choose between two diagram generators: Graphviz or Dotplus before using the command or you will get: python manage.py graph_models -a -o myapp_models.png Note:  I prefer to use   pydotplus   as it easier to install than Graphviz and its dependencies so we use   pip install pydotplus . Command:  pip install pydotplus Step 4:  Generate diagrams Now we have everything installed and ready to generate diagrams using the comm

How to Remove course from Open-edX

Go to vagrant  => 1. In the edx-platform directory:  - cd /edx/app/edxapp/edx-platform 2. Run the following Django management command:   - sudo -u www-data /edx/bin/python.edxapp /edx/bin/manage.edxapp lms dump_course_ids --settings aws    - sudo -u www-data /edx/bin/python.edxapp /edx/bin/manage.edxapp lms dump_course_ids --settings=devstack 3. Find the course ID which you'd like to delete in the resulting list of course IDs. 4. Copy the course ID into the following command and run it:  - sudo -u www-data /edx/bin/python.edxapp /edx/bin/manage.edxapp cms delete_course <COURSE_ID> --settings aws  -   sudo -u www-data /edx/bin/python.edxapp /edx/bin/manage.edxapp cms delete_course <COURSE_ID> --settings=devstack  - You'll be asked to verify the deletion . To verify the deletion, run the command from step 2 above and ensure that the course ID is not in the list. Help reference : https://openedx.atlassian.net/wiki/spa