I would like to use jupyter notebook in my employee training to let the participants solve several tasks on different topics. For this purpose I have created several notebooks, which of course need several packages in addition to some nb_extensions.
Now of course it doesn’t make much sense if every participant has to download jupyter notebook or docker first and install everything. The optimal solution would be to simply link to the notebooks, which are already running on pre-installed kernels and of course each participant gets a copy of the notebook.
Binder would be the perfect way to do this I think, unfortunately due to company policies the notebooks are not allowed to be in a public repo, but only in a private or company internal gitlab.
In our demo scenario, we deploy the notebook-like RetroLab to a Git(La|Hu)b pages branch in CI. Other approaches include ReadTheDocs (used by the main repo).
We’re very close to being able to host everything (including wheels for the python kernel) offline, so no external CDN calls would be made… unless the user asks for it, e.g. fetch('http://malicio.us')… but they could have done that anyway with a real kernel.
User code is actually executed within the user’s browser. There aren’t a lot of guardrails (as always, very easy to call custom JS) so it’s important Lite sites are served from a separate domain than the main Git(La|Hu)b API… or not, if that’s the whole point of the thing.
We don’t have a solid assessment story at the end, however: one could imagine any number of approaches, from redirecting to existing stores of opportunity e.g. issues, pull requests, mailto links, etc.
Thanks mate for your tips!
If I’m getting it right - I would need to configure a user per participant with (littlest) JupyterHub in order to guarantee that each participant gets a “copy” which he can modify without changing the original file, correct?