{'fraction_non_alphanumeric': 0.026143790849673203, 'fraction_numerical': 0.0, 'mean_word_length': 5.5, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Educational software-as-a-service based on JupyterHub and nbgrader running on Kubernetes

We present our cloud-based software-as-a-service (SaaS) solution for educational purposes deployed within the Engineering faculity of our university. Its foundation is the open source Jupyter Notebook project with a web application providing an online environment for various programming purposes. These Jupyter Notebooks have evolved into the JupyterHub project. JupyterHub enables multi-user capabilities and allows students and researchers to have their individual Notebook environments hosted on an online platform. This paper presents our experiences with JupyterHub together with nbgrader, which allows the creation and grading of assignments. This powerful educational SaaS solution has been validated for multiple programming related courses, such as Python, C, C# and Java, throughout the past two academic years. Feedback from students and academic personnel is positive. JupyterHub is currently actively developed for deployment on the popular cloud-based Kubernetes container orchestrator platform, providing nearly infinite cloud-based scaling potential. This open source platform-as-a-service (PaaS) solution can be consumed from various public cloud providers, or it can be set up on-premise. We introduce the means to do the latter on a data center within the university.