JupyterCon 2023


Computer Engineer at Université Lyon 1, France.
From physical servers to software development through system administration, I run, maintain and develop the JupyterHub platform funded by the Include project for Université Lyon 1 and INSA.

The speaker's profile picture


Flexible course management and validation system using Jupyterhub with additional services using Flask
Thomas DUPRIEZ, Marc Buffat, Sarah Di Loreto Pollet

Using multiple tools from the open-source ecosystem such as JupyterHub, Nbgrader, Python, Flask, and Pandoc, we designed a flexible platform for courses using jupyter notebooks and python to support the student's learning process at Lyon 1 University.

Our platform provides a virtual JupyterHub server for each year from undergraduate to graduate. Each virtual server hosts all the classes of that year. This lets us optimise and customise the servers depending on the use case:

  1. numerous students (>1000) for the first undergraduate year, with low memory and CPU needs (discovery of python and notebook in science)
  2. a few students (~30) for the last graduate year, with large memory and CPU needs (modelling, simulation, machine learning in mechanical engineering)
  3. all the courses remain active all the semester, and are accessible 24 hours a day, 7 days a week by students using only a web-browser.

Our platform augments the classical Jupyter experience by offering features helping teachers run and manage courses, such as:
1. simple sharing of documents (notebooks, data, python library..) back and forth between teachers and students
2. multiple courses on the same JupyterHub server with the ability to set which students see which courses. Also useful to divide a course in groups for practical work
3. automatic grading of notebooks, python code, ...
4. simple evaluation of students work (notebooks, reports in markdown or LaTeX...) directly in the web browser without download or file transfers
5. plagiarism test on the students work
6. link with TOMUSS, the educational monitoring platform of the Lyon 1 University, to input student lists and output student grades

Our platform is made of three main components: JupyterHub, nbgrader, and a custom web application written in Flask running as JupyterHub services. To implement it, we have followed the Unix philosophy KISS, by using simple components such as bash scripts and python programs. The documentation written in French using Jupyter-book is available here: https://perso.univ-lyon1.fr/marc.buffat/2022/BOOK_VALIDATION.

This platform has grown as a prototype in the Mechanical Engineering department of the Lyon 1 University. Thanks to the AMI INCLUDE project, it is being refined, redeployed on new servers and will eventually be available to other educational institution around Lyon.

During the talk, a live demonstration will illustrate how students and teachers use the platform. Finally, we will share feedback from teachers that have run courses on the platform.

Jupyter in Education
Louis Armand 1