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:
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":
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
.
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:
You will have to launch your own JupyterHub cluster separately from Open edX. Your cluster should support:
- LTI authentication via ltiauthenticator.
- LTI authentication must accept the key and secret defined in the course LTI passport (see above).
- Pulling git repositories via nbgitpuller.
- Iframe embedding in your LMS/CMS, via the "Content-Security-Policy" header.
- Grading is not supported at the moment.
- It is not possible to pull notebooks from a raw URL -- only from a public git repository.
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.
This work is licensed under the terms of the GNU Affero General Public License (AGPL).