Technology details
This section provides information on how to setup the different parts of the course. This is a working document to keep track of the technology stack and how to configure the parts.
uv
As part of the course python code has to be executed. All requirements are managed via virtual environments. The dependencies are managed using uv. For installation information see: https://docs.astral.sh/uv/getting-started/installation/
The virtual environment can be setup via:
uv venv
uv sync
To activate the virtual environment use
source .venv/bin/activate
or the corresponding command for your operating system. The environment should be set as python interpreter in vscode and pycharm.
Quatro
Information about installation is available from https://quarto.org/docs/get-started/.
This documents were created with the prerelease version quarto-1.7.21-linux-amd64.deb
available from https://quarto.org/docs/download/prerelease.html.
Documentation for the pre-release is available at https://prerelease.quarto.org/.
VS Code Plugin
Information on the visual studio code integration is available here: https://quarto.org/docs/tools/vscode.html
For executing the python code the python interpreter must be set and the jupyter plugin must be installed.
Github actions for publishing
The output can be automatically generated using github actions. https://quarto.org/docs/publishing/github-pages.html#github-action
Rendering and preview
The content can be rendered to the respective output format using the render
command.
quarto render notebooks/hello.ipynb --to html
quarto render notebooks/hello.ipynb --to pdf
quarto render notebooks/hello.ipynb --to revealjs
quarto render notebooks/hello.ipynb --to pptx
To execute the notebooks use the execute
flag
quarto frender notebook.ipynb --execute
To preview the HTML use the preview
command.
quarto preview notebooks/hello.ipynb
Render to reveal.js and book
Necessary to render to different target types: Presentation (reveal.js) -> hosted on Github.io; necessary to render to a different target; see https://github.com/quarto-dev/quarto-cli/discussions/1433; see https://github.com/quarto-dev/quarto-cli/issues/2200. By using different profiles these information can be combined.
Open edX
Open edX is a thriving open source project, backed by a great community, for running an online learning platform at scale. Open edX comes with an LMS (Learning Management System) where students access course contents, a CMS (Content Management System) that course staff uses to design courses, and a few other components to provide more services to students, course staff, and platform administrators.
A local installation of OpenEdx can be setup with tutor: https://docs.tutor.edly.io/index.html. This requires a working docker installation: https://docs.docker.com/engine/install/.
source .venv/bin/activate
tutor local launch
This results in
All services initialised.
The platform is now running and can be accessed at the following urls:
http://local.openedx.io
http://studio.local.openedx.io
http://meilisearch.local.openedx.io
http://apps.local.openedx.io
Creating a new user with staff and admin rights
You will most certainly need to create a user to administer the platform. Just run:
tutor local do createuser --staff --superuser matthiaskoenig konigmatt@googlemail.com
Importing the demo course
After a fresh installation, your platform will not have a single course. To import the Open edX demo course, run:
tutor local do importdemocourse
View status of containers
You can view your platform’s containers:
tutor local status
Open edX notebook/jupyter integration
Tutor plugin for running Jupyter notebooks.
- name: jupyter
src: tutor-jupyter>=19.0.0,<20.0.0
url: <https://github.com/overhangio/tutor-jupyter>
author: Edly <hello@edly.io>
maintainer: Edly <abdul.muqadim@arbisoft.com>
description: |
Run Jupyter notebooks right in your LMS.
Launch a JupyterHub single-node cluster and install the Jupyter XBlock in the Open
edX LMS/CMS. This makes it very easy to launch student-editable code editors rights
in your courses.
- openedx notebook integration: https://github.com/parmentelat/nbhosting ?!
- https://github.com/overhangio/jupyter-xblock JupyterHub hosts Jupyter instances with authentication (e.g. OAuth; IDK about using edX users as JupyterHub users with individual Docker image instance containers with nbgrader/xblock) The new jupyter-viewer-xblock (https://github.com/ibleducation/jupyter-viewer-xblock) allows to embed notebooks dynamically from a public URL. Demo here! https://www.youtube.com/watch?v=K8jhWgQnxvI
- https://github.com/overhangio/tutor-jupyter; This is a plugin for Tutor that makes it easy to integrate Jupyter notebooks in Open edX. It achieves the following: 1. Install the official jupyter-xblock in the Open edX LMS and Studio. 2. Run a Docker-based JupyterHub instance with a Docker spawner.
H5P
Open edX supports integration of H5P. - Play H5P content in Open edX using h5pxblock - https://github.com/edly-io/h5pxblock
edX course creation
HarvardX Course Template Builder
Allows to create some template structure of the course https://harvardx.github.io/edx_course_templater/index.html
A while ago I created the HarvardX Course Template Builder for our project leads. You answer some questions about your course (length, structure, desired template) and it builds you a blank course that you can import to Studio. It really speeds up the process of clicking “New Unit” over and over.
You are welcome to use it as much as you like. My bosses have ok’d releasing this into the wild, including our usual boilerplate (intro pages and a few sample items). The code is available on a GitHub repo if you want to make your own custom version or just see how it works.
XNF conversion
https://git.upv.es/serpucga/xnf2edx_cli/-/tree/master https://discuss.openedx.org/t/script-to-create-complete-open-edx-courses-from-a-template-in-an-excel-file/8520
https://discuss.openedx.org/t/programmatically-create-courses-including-all-xblock-children/9206
Mu
Common Cartrige (CC)
https://github.com/openedx/cc2olx
OBS
- add video source
- add filter (chroma key green)