serving notebooks to a MOOC platform : is jupyterhub suitable for this ?

78 views
Skip to first unread message

Thierry Parmentelat

unread,
Jan 16, 2017, 8:31:13 AM1/16/17
to Project Jupyter
Hi there

I need to setup an infrastructure for hosting notebooks as an extension to a MOOC platform based on edx : https://www.fun-mooc.fr/

In a nutshell, the objective is for a MOOC author to be able to add a notebook as part of its course, in a plugin of edx

We have a running version of that, that was written 3 years ago by 2 colleagues, who have now gone to other projects
Their implementation did the job perfectly during that time, and we have run quite a few MOOC sessions thanks to this
It requires a major overhaul though, for various reasons, among which : was restricted to python2; could run only one course at a time; was using an old ipython engine; was not using docker; had php inside ...

So; I am trying to come up with a proof of concept for a new implementation that would
. of course still be compliant with the edx plugin
. support several courses at the same time; each with its own docker image
. and so, as a side effect, at least support python3, and anything else that has a docker image available

The interface with edx is as simple as it gets; edx issues a URL containing a triple (course, student, notebook) and displays that in an iframe
The expected behaviour is that each student has her own copy of the notebooks from the master published by the author
Also the student copy is made the first time that she navigates to that notebook - as opposed to copying the whole course the first the student shows up.
This is a requirement because a mooc is published week by week, so week one can start while week 7 is not yet written..  
Also there is no student registration, essentially every request coming from the known IP addresses is considered valid and students get created on the fly if they are not yet known (typically several thousands of them for one course)


So of course my first thought was jupyterhub; however it did not, at first sight, seem to fit too well, because

* we have this notion of a course, i.e. a set of master set of notebooks - typically in a github repo

* also, there is a need to catch spawner-related events - like start/stop the user's jupyter - which is supported in jupyterhub
  but also notebook-related events - like copy this notebook when it's requested - which seems harder to catch in jupyterhub

Is there a way to do something like this building on jupyterhub, and if so how would I go about doing that ?

Jessica B. Hamrick

unread,
Jan 16, 2017, 12:43:12 PM1/16/17
to Project Jupyter
Hi Thierry,

You might be interested in joining the Jupyter education mailing list: https://groups.google.com/forum/#!forum/jupyter-education

That would also be a good place to reach out and see if people have suggestions for you! A lot of people have been using JupyterHub with courses, though not in exactly the way you're describing. I know there have been people who have integrated edX with the notebook, though I'm not sure specifically if others have integrated it with JupyterHub. But, I'd definitely try reaching out to the Jupyter education mailing list -- that's probably where you'll find them, if so :-)

In terms of copying the notebook the first time the student accesses it -- you might check out Berkeley Data 8's interact plugin, which does exactly this: https://github.com/data-8/interact

Cheers,
Jess


--
You received this message because you are subscribed to the Google Groups "Project Jupyter" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jupyter+unsubscribe@googlegroups.com.
To post to this group, send email to jup...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jupyter/3932bf8b-301b-4ae1-a806-3ba1dae83817%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Fernando Perez

unread,
Jan 17, 2017, 8:19:26 PM1/17/17
to Project Jupyter
Thierry,

On Mon, Jan 16, 2017 at 9:42 AM, Jessica B. Hamrick <jessica....@gmail.com> wrote:

You might be interested in joining the Jupyter education mailing list: https://groups.google.com/forum/#!forum/jupyter-education

I second Jess' suggestion that you repost on the edu list: there are folks there highly interested and knowledgeable on these topics who may not be on the main Jupyter list, so there's a better chance of a good discussion there.  I look forward to the followup there, as I'm interested the topic.

Cheers

f
--
Fernando Perez (@fperez_org; http://fperez.org)
fperez.net-at-gmail: mailing lists only (I ignore this when swamped!)
fernando.perez-at-berkeley: contact me here for any direct mail

Thierry Parmentelat

unread,
Jan 18, 2017, 4:55:31 AM1/18/17
to Project Jupyter


On Wednesday, January 18, 2017 at 2:19:26 AM UTC+1, Fernando Perez wrote:
 
I second Jess' suggestion that you repost on the edu list: there are folks there highly interested and knowledgeable on these topics who may not be on the main Jupyter list, so there's a better chance of a good discussion there.  I look forward to the followup there, as I'm interested the topic.


Hi Fernando

Thanks for your interest; I did forward the message on the education list a couple days back already upon Jessica's kind suggestion

I guess my interests are twofold here

On the one hand, I'd be happy to elaborate on the general workflow and requirements that we need to have in the specific context of the MOOC platform, and I take it that discussion will be better hosted on the edu list indeed

On the other hand, my immediate concern was to gather hints and clues about how to achieve this with jupyterhub, and I thought at first that the present list would be the most fruitful place ? 

Either way, looking forward to deepen the matter -- Thierry
Reply all
Reply to author
Forward
0 new messages