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


Release history Release notifications

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
nbhosting-0.1.0.tar.gz (15.2 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page