How chen2mg/python_learning_repo works
This is a self-hosted learning platform: students sign in to JupyterHub, open their isolated JupyterLab workspace, study stage-and-chapter notebooks, and can take quizzes whose scored attempts are saved; admins can review results. User accounts are provisioned from a CSV, while Hub configuration determines access and mounts student folders at spawn time. The graph reflects the README and sampled configuration and service code; notebook contents and the omitted quiz-service routes were not inspected, so their internal behavior is not expanded.
Main entry points: jupyterhub_config.py JupyterHub · quiz_service.py Quiz Service · bootstrap_users.py Account Bootstrap · chapter01.ipynb Student Workspace
Components 14
Hub and Access
- JupyterHub
jupyterhub/jupyterhub_config.py - NativeAuthenticator
jupyterhub/jupyterhub_config.py - Account Bootstrap
jupyterhub/bootstrap_users.py
Learning Workspaces
- Student Workspace
app/Bella/stage1/chapter01.ipynb - JupyterLab
jupyterhub/jupyterhub_config.py - Stage Chapters
app/Bella/stage1/chapter01.ipynb
Quiz System
- Quiz Service
jupyterhub/quiz_service.py
Platform State
- Credentials CSV
jupyterhub/credentials/users.csv.example - Hub Database
- Quiz Questions
jupyterhub/quiz_data/s1c1.json - Attempt History
jupyterhub/quiz_service.py
Other components
- Student
- Admin
- Cloudflare Tunnel
Connections 18
- Admin → Credentials CSV: maintains accounts
- Account Bootstrap → Credentials CSV: reads credentials
- Account Bootstrap → Hub Database: creates or updates users
- JupyterHub → Hub Database: uses Hub database
- JupyterHub → NativeAuthenticator: authenticates users
- JupyterHub → Student Workspace: scans user folders
- Student → JupyterHub: signs in
- JupyterHub → JupyterLab: spawns workspace
- JupyterLab → Student Workspace: mounts folder
- Student → JupyterLab: opens lessons
- JupyterLab → Stage Chapters: reads notebooks
- JupyterHub → Quiz Service: starts and proxies
- Student → Quiz Service: takes quiz
- Quiz Service → Quiz Questions: loads questions
- Quiz Service → Attempt History: scores and saves attempts
- Admin → Quiz Service: views results
- Quiz Service → Attempt History: reads and manages attempts
- Cloudflare Tunnel → JupyterHub: provides public access