Skip to main content

An infrastructure for hosting notebooks beind an open-edX MOOC platform

Project description

# notebook hosting architecture

This git repo contains a collection of utilities, that together make up the architecture behind nbhosting.inria.fr that is designed as a notebook-serving infrastructure.

First use case is for hosting notebooks in the context of MOOCs. See e.g.

# Open-edX teacher side

On the edx side, teacher would create a bloc typed as ipython notebook - note that the present repo does not address the code for the edx extension that supports this type of blocs (ref?); it is reaily available at this point (jan. 2017) at fun-mooc.fr.

![](doc/edx-bloc.png)

![](doc/edx-notebook.png)

![](doc/edx-details.png)

# Open-edX student side

Here’s what a student would see;

![](doc/edx-student.png)

# nbhosting side

Here’s the general principle of how of works

  • Open-edX forges a URL, like the one shown above, with student replaced with the hash of some student id

  • This is caught by nginx, that runs forefront; the ipythonExercice/ prefix is routed to a django application, that primarily does this * create a linux user if needed * create a copy of that notebook for the student if needed * spawns a (docker) jupyter instance for the couple (course, student) * redirects to a (plain https, on port 443) URL that contains the (http/localhost) port number that the docker instance can be reached at

As a summary:

![](doc/architecture.png)

# TODO

A lot remains to be done, incuding using github’s issues for tracking what remains to be done ;) For now see [doc/TODO-nbhosting.md](doc/TODO-nbhosting.md)

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

nbhosting-0.1.0.tar.gz (15.2 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page