Hi, teachers and administrators who use nbgrader:
We're team KALE, and we want to introduce to you a service we have created that lets you use nbgrader in a JupyterHub cluster.
nbgrader is a tool that facilitates creating and grading assignments in the Jupyter notebook. It allows instructors to easily create notebook-based assignments that include both coding exercises and written free-responses. nbgrader also provides a streamlined interface for quickly grading completed assignments.
nbgrader was known to use an exchange directory to release and collect assignment, submission and feedback files. nbgrader by default does not work when used in combination with JupyterHub and Kubernetes because on a Kubernetes setup users have their own private filesystem.
We have spent a couple of months creating
ngshare, a service that handles course management and exchanging assignments between instructor and students without an underlying shared filesystem. It can be installed in Kubernetes easily using a helm chart. Even if you aren’t using a container orchestration platform, you can still install ngshare as a JupyterHub managed service and streamline course creation rather than having to play with filesystem permissions. Installation guides are available on
Read the Docs. Any suggestions or feedback would be greatly appreciated.
Please see this video for a brief overview of our work:
https://www.youtube.com/watch?v=FdK0AGwxkSwWe have also done some work on porting the nbgrader nbextensions to JupyterLab. The relevant GitHub issue is
https://github.com/jupyter/nbgrader/issues/1006, and you can find some sample screenshots in
https://ngshare.readthedocs.io/en/user-guide/appendix/jupyterlab_extensions.html. We are looking for contributors who want to take over our project.
We would like to thank Professor Christopher Nitta and Professor Jason K. Moore from UC Davis for their advice on this project. We would also like to thank the Jupyter community for their help (
https://github.com/jupyterhub/zero-to-jupyterhub-k8s/issues/1556).
Team KALE