Classroom management dashboard for JupyterHub
Project description
JupyterHub Classroom Manager
Classroom Manager is a FastAPI web dashboard, built as a JupyterHub service for classroom management for teachers. It provides an intuitive dashboard for non-technical staff to manage a cohort ot students on Jupyter notebooks.
Classroom Manager allows staff to add students, manage their server statuses, and assign students to classrooms.
Deployability
This doesn't need a database, so there's no extra infrastructure overhead - JupyterHub manages the deployment.
Authentication is managed by JupyterHub itself, so if you want to use something like Microsoft Azure authentication, or Google OAuth, configure this with JupyterHub as you'd usually do.
Requirements
- JupyterHub 5.x+
- Python 3.10+
Installation
pip install -r requirements.txt
jupyterhub -f jupyterhub_config.py
JupyterHub Configuration
Add this to your jupyterhub_config.py:
c.JupyterHub.services = [
{
"name": "classroom-manager",
"url": "http://127.0.0.1:10101",
"command": ["python", "/path/to/classroom-manager/app.py"],
"oauth_client_allowed_scopes": ["identify"],
},
]
c.JupyterHub.load_roles = [
{
"name": "classroom-manager-role",
"services": ["classroom-manager"],
"scopes": [
"list:users",
"read:users",
"admin:servers",
"admin:groups",
"read:groups",
"list:groups",
],
},
{
"name": "user",
"scopes": [
"self",
"access:services!service=classroom-manager",
],
},
]
# Pre-create the teachers group
c.JupyterHub.load_groups = {
"teachers": [],
}
nbgitpuller
We use nbgitpuller on our instance to make it easier to pull from our Jupyter notebook Git source! It's a fantastic tool for one-click setup, through links configured on nbgitpuller's documentation.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jupyter_classroom-1.1.0.tar.gz.
File metadata
- Download URL: jupyter_classroom-1.1.0.tar.gz
- Upload date:
- Size: 13.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00d76415f8fe3a5221d22a02283cd8145577b3e7407e8b7308dd4aef8e4e7b44
|
|
| MD5 |
fdb570a1cc62e1222423ac34814a4c01
|
|
| BLAKE2b-256 |
65053151924a648bbc4bedb2169a06b21e7745fdb4787d3a6789008c4e9f74c7
|
Provenance
The following attestation bundles were made for jupyter_classroom-1.1.0.tar.gz:
Publisher:
publish.yml on leowilkin/jupyter-classroom
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jupyter_classroom-1.1.0.tar.gz -
Subject digest:
00d76415f8fe3a5221d22a02283cd8145577b3e7407e8b7308dd4aef8e4e7b44 - Sigstore transparency entry: 1155043711
- Sigstore integration time:
-
Permalink:
leowilkin/jupyter-classroom@937dc937a0d839742b3fb33cd148e12c1b0590ec -
Branch / Tag:
refs/tags/v1.1.0 - Owner: https://github.com/leowilkin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@937dc937a0d839742b3fb33cd148e12c1b0590ec -
Trigger Event:
release
-
Statement type:
File details
Details for the file jupyter_classroom-1.1.0-py3-none-any.whl.
File metadata
- Download URL: jupyter_classroom-1.1.0-py3-none-any.whl
- Upload date:
- Size: 18.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be54f12f359f662f1b88910168d82e5d1f4c8044b84be3cad145fe882101486e
|
|
| MD5 |
690f77cd4e891c67ce19297674fae78c
|
|
| BLAKE2b-256 |
a5b0972ce30b8df6bcd9b455be28bf74451f03d9e3e1e0485cd2da8b3a3d765f
|
Provenance
The following attestation bundles were made for jupyter_classroom-1.1.0-py3-none-any.whl:
Publisher:
publish.yml on leowilkin/jupyter-classroom
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jupyter_classroom-1.1.0-py3-none-any.whl -
Subject digest:
be54f12f359f662f1b88910168d82e5d1f4c8044b84be3cad145fe882101486e - Sigstore transparency entry: 1155043715
- Sigstore integration time:
-
Permalink:
leowilkin/jupyter-classroom@937dc937a0d839742b3fb33cd148e12c1b0590ec -
Branch / Tag:
refs/tags/v1.1.0 - Owner: https://github.com/leowilkin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@937dc937a0d839742b3fb33cd148e12c1b0590ec -
Trigger Event:
release
-
Statement type: