This service is based on JupyterHub and lets you spawn a Jupyter notebook for a given uData resource.
At the moment, only CSV resources are supported. They're loaded into a Pandas dataframe for convenience.
Users are logged in to the JupyterHub instance via GitHub Oauth. A home directory is then created for them and theirs notebooks stored there.
Cf JupyterHub install instructions
python3 -m venv pyenv && . pyenv/bin/activate
pip3 install -r requirements.txt
npm install -g configurable-http-proxy
Create a file named jupyterhub_config_secret.py
and customize the GitHub settings:
c.GitHubOAuthenticator.oauth_callback_url = 'http://localhost:8000/hub/oauth_callback'
c.GitHubOAuthenticator.client_id = 'xxx'
c.GitHubOAuthenticator.client_secret = 'xxx'
c.Authenticator.admin_users = {'xxx'}
jupyterhub
Redirect users to http://<server>/services/launcher/<dataset>/<resource>
with
<dataset>
and <resource>
being the ids of the dataset and resource you want
to play with.