Dear Daniel,
Not quite an answer to the specific question, but the following might
be of interest for you or others with the same need: how to use
nbgrader for multiple courses on a single JupyterHub?
This question had been itching me for some time, with the additional
constraint that we want to decouple as much as possible the
maintenance of Paris-Saclay's JupyterHub from the course management,
to empower teachers doing the latter without depending on sysadmins
doing the former.
I considered for a while deploying an exchange service such as ngshare:
https://discourse.jupyter.org/t/ngshare-a-solution-for-using-nbgrader-with-jupyterhub-and-kubernetes/4724
until I realized that our university was already maintaining a general
purpose service with all the desirable features: namely our local
forge GitLab! It indeed does file sharing, time stamping, permission
management, secure code execution through CI. And of course much more.
With colleagues from UQAM and Paris-Saclay, we have been experimenting
with this concept since last May. This takes the form of a small
Python library with a command line interface which automates the
interaction with the exchange (release, fetch, submit, ...) through
calls to git and to the GitLab API.
https://gitlab.info.uqam.ca/info/travo/
Besides nbgrader, another source of inspiration was GitHub classrooms.
In fact, most of travo does not depend on Jupyter or nbgrader; as a
matter of fact, we use it for several courses with no Jupyter.
Pros:
- simplicity: no service to deploy
- ubiquity: instructors and students alike can use travo from any
computing environment they like (jupyterhub, physical computer lab,
binder, personal laptop, ...); all they need is travo to be
installed.
- students need not know git or gitlab, but they get exposed to them
Current status:
- it's used in production with a couple of large lower undergraduate
classes (200+ students, 6+ instructors)
- steps implemented:
- release
- fetch, submit, autograding by CI, fetching feedback from autograding
- collect, manual grading with nbgrader's UI, export grades
(release manual feedback still missing)
Altogether, it certainly is usable, and we would love to get feedback
from early adopters. It does have some rough edge though, and the
documentation on how to setup is still minimal. Happy to help you get
started!
Cheers,
Nicolas
--
Nicolas M. Thiéry "Isil" <
nth...@users.sf.net>
http://Nicolas.Thiery.name/