Scheduling in JupyterHub

Hello Community,

I am working on a University project and we are setting up a learning infrastructure with our LMS to integrate with JupyterHub for providing exercises and auto-graded assignments. Currently, we are exploring the provision to have a scheduler with a calendar containing time slots so that students can access and book their preferred slot whenever they want to take up their task. Is there any way to have this functionality in JupyterHub (alternatively JuptyterLab) ? Appreciate your time.

As I nderstand it, This doesn’t really map onto JupyterHub, so you’d mostly be building it from scratch. You could integrate with JupyterHub in terms of using it as an auth provider and/or provide some UI via a JupyterLab extension, but for the most part this should probably built quite independently from JupyterHub.

How do you forsee the booking system interacting with e.g. server launching or permissions? Would this set a deadline for starting/terminating servers? That’s where your JupyterHub integrations might get deeper.

1 Like

The other thing is how deep you’d want it to work with an underlying calendar management/identity system. This could span from

  • a home-rolled CRUD service that accepted POST requests and wrote to a file (not really recommended), to
  • use of a bespoke managed service like calendso, to
  • direct integration with an existing CalDav server

But to Min’s point: actually making JupyterHub pre-create servers (and/or not allow creating servers when not scheduled) is a whole other ball of wax, and we don’t have enough info yet to assess…

Hello @minrk,

Thanks for addressing.

“How do you forsee the booking system interacting with e.g. server launching or permissions?” - We would like to send back the grades from the grade book to our LMS for record purposes from the nbgrader tool after auto-grading.

“Would this set a deadline for starting/terminating servers?” - Yes, we have similar plans to schedule users so that to avoid any form of lock-in in our servers.