JupyterCon 2023

e2xhub: Simplifying Course Setup and Management in Education with JupyterHub at Scale
05-11, 13:40–13:50 (Europe/Paris), Poster Placeholder

Reminder - The date and time of this sessions are placeholder due to the limitation of the conference software.
All Poster will be presented during the Poster Session from 6:30 to 8:00 on Thus 11th,



Jupyter Notebook has been widely used in academia for research, teaching and examination. JupyterHub enables multi-user Jupyter Notebook environments, making it an ideal tool for educators. However, configuring nbgrader, a popular tool for managing assignments, for multi-course and multi-grader systems can be challenging and often requires a sysadmin to provide the necessary environment. We propose e2xhub as a solution to simplify this process, allowing educators to easily set up courses and environments using the Jupyter ecosystem without having to deal with the complexities of configuration.

We achieve this by providing a user-friendly JupyterHub configuration to allow graders to easily create courses and specify their requirements. We use YAML, a well-known declarative configuration language, to allow graders to set up courses, environments and resource allocation. Our JupyterHub is deployed on a Kubernetes cluster in order to provide isolation for users and improve scalability and maintainability. Isolation is important for our system to ensure security during examinations.

We use Zero to JupyterHub with Kubernetes (Z2JH) to deploy JupyterHub on our Kubernetes cluster. Our software extends the capabilities of Z2JH, allowing us to deploy a more customizable JupyterHub. The main objectives include providing the ability to create or load courses for individual users, creating personalized profiles for each course e.g. personalized image and resource allocation (CPU, RAM, and GPU), and enabling multi-course and multi-grader support. All of these modifications can be easily made using YAML, without the need for a sysadmin to update the configuration. In addition, we also maintain continuous integration and deployment to ensure that any updates to the upstream environment created by graders can be easily delivered to our system.

We have developed e2xhub for use at our university. Since our initial JupyterHub deployment in 2018, we have used it for 27 courses and 41 examinations, involving a total of 3569 students working on assignments and 1878 students taking exams. The flexibility to transfer our system to different cloud providers makes it easy to scale and support more courses and students. Overall, the configurability and maintainability of our system not only make it easier for sysadmins to manage, but also allow graders to create and manage courses more easily. This could potentially encourage wider adoption of the Jupyter ecosystem in education.

Mohammad Wasil is a research associate and PhD student at Hochschule Bonn-Rhein-Sieg, Germany. he works on the project e2x where the main goal is to provide constructive alignment in education. His role in the project is to build an infrastructure for teaching, examination, and machine learning research in general.

This speaker also appears in:

I work as a research associate at Hochschule Bonn-Rhein-Sieg, University of Applied Sciences with a focus on developing tools for E-Assessment and Natural Language Processing.

GitHub: @tmetzl

This speaker also appears in: