Skip to main content

Jupyter XBlock for Open edX

Project description

Jupyter XBlock

This is an XBlock to integrate JupyterHub notebooks to your Open edX learning management system (LMS).

Features:

  • Integrate JupyterLab notebooks to the Open edX courseware.
  • Fully editable notebooks and student workspaces.
  • Simple integration of notebooks from public git repositories.

Here is a screenshot of the Jupyter XBlock in action:

Usage

To use this xblock with Tutor, use Tutor-jupyter plugin as this will automatically be installed with it. In your course "Advanced Settings", add "jupyter" to the "Advanced Module List":

Studio advanced module list

Configuration

JupyterHub base URL

The JupyterHub cluster can be configured separately for every XBlock, but this can be quite tedious for course instructors. Instead, a default JupyterHub cluster URL can be defined globally by adding the LTI_DEFAULT_JUPYTER_HUB_URL setting to both the LMS and CMS settings.

For instance:

LTI_DEFAULT_JUPYTER_HUB_URL = "https://hub.myopenedx.com"

If this setting is undefined, the base URL will default to https://hub.LMS_HOST.

LTI passport ID

Similarly, the LTI passport ID can be defined globally for all Jupyter XBlock instances. When a passport ID is not explicitely defined in an XBlock, it will default to the LTI_DEFAULT_JUPYTER_PASSPORT_ID setting. If this setting is also undefined, then it will default to LTI_DEFAULT_PASSPORT_ID. The fallback value is "jupyterhub".

To define a global LTI passport ID to be used by all Jupyter XBlock instances, add to your LMS/CMS settings:

LTI_DEFAULT_JUPYTER_PASSPORT_ID = "myjupyterhub"

Then, the corresponding passport must be created in the course advanced settings, as described in the Open edX documentation:

Studio advanced LTI settings

Configuring JupyterHub

You will have to launch your own JupyterHub cluster separately from Open edX. Your cluster should support:

Known limitations

  • Grading is not supported at the moment.
  • It is not possible to pull notebooks from a raw URL -- only from a public git repository.

Troubleshooting

This XBlock was kickstarted by Matthew Brett (@matthew-brett) and funded by a grant from the Chan Zuckerberg Initiative. This project is maintained by Muhammad Hassan Siddiqi from Edly. Community support is available from the official Open edX forum.

License

This work is licensed under the terms of the GNU Affero General Public License (AGPL).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jupyter-xblock-17.0.0.tar.gz (17.0 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page