{ "info": { "author": "Thierry Parmentelat", "author_email": "thierry.parmentelat@inria.fr", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Programming Language :: Python :: 3.5" ], "description": "# notebook hosting architecture\n\nThis 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.\n\nFirst use case is for hosting notebooks in the context of MOOCs. See e.g.\n\n* [Python : des fondamentaux \u00e0 l'utilisation du langage on fun-mooc.fr](https://www.fun-mooc.fr/courses/inria/41001S03/session03/about)\n* [Bioinformatique : algorithmes et g\u00e9nomes on fun-mooc.fr](https://www.fun-mooc.fr/courses/inria/41003S02/session02/about)\n\n# *Open-edX* teacher side\n\nOn 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`.\n\n![](doc/edx-bloc.png)\n\n![](doc/edx-notebook.png)\n\n![](doc/edx-details.png)\n\n# *Open-edX* student side\n\nHere's what a student would see; \n\n![](doc/edx-student.png)\n\n# `nbhosting` side\n\nHere's the general principle of how of works\n\n* Open-edX forges a URL, like the one shown above, with `student` replaced with the hash of some student id\n* This is caught by nginx, that runs forefront; the `ipythonExercice/` prefix is routed to a django application, that primarily does this\n * create a linux user if needed\n * create a copy of that notebook for the student if needed\n * spawns a (docker) jupyter instance for the couple (course, student)\n * redirects to a (plain https, on port 443) URL that contains the (http/localhost) port number that the docker instance can be reached at\n \nAs a summary:\n\n![](doc/architecture.png)\n\n\n# TODO\n\nA lot remains to be done, incuding using github's issues for tracking what remains to be done ;)\nFor now see [doc/TODO-nbhosting.md](doc/TODO-nbhosting.md)\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/parmentelat/nbhosting", "keywords": "", "license": "See LICENSE", "maintainer": "", "maintainer_email": "", "name": "nbhosting", "package_url": "https://pypi.org/project/nbhosting/", "platform": "", "project_url": "https://pypi.org/project/nbhosting/", "project_urls": { "Homepage": "https://github.com/parmentelat/nbhosting" }, "release_url": "https://pypi.org/project/nbhosting/0.1.0/", "requires_dist": null, "requires_python": "", "summary": "An infrastructure for hosting notebooks beind an open-edX MOOC platform", "version": "0.1.0" }, "last_serial": 2833909, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "8f7c656ef342406292f55a2ac2310791", "sha256": "8418c5e5dbfdb757dae73538b3d41c45931ecc4502fa5087ab20d712f424c5eb" }, "downloads": -1, "filename": "nbhosting-0.1.0.tar.gz", "has_sig": false, "md5_digest": "8f7c656ef342406292f55a2ac2310791", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15239, "upload_time": "2017-04-27T08:20:39", "url": "https://files.pythonhosted.org/packages/f9/53/3b0233b7739a0df93979e4b2eda2f37bcd08a27941d405e6c9dea4999f3d/nbhosting-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8f7c656ef342406292f55a2ac2310791", "sha256": "8418c5e5dbfdb757dae73538b3d41c45931ecc4502fa5087ab20d712f424c5eb" }, "downloads": -1, "filename": "nbhosting-0.1.0.tar.gz", "has_sig": false, "md5_digest": "8f7c656ef342406292f55a2ac2310791", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15239, "upload_time": "2017-04-27T08:20:39", "url": "https://files.pythonhosted.org/packages/f9/53/3b0233b7739a0df93979e4b2eda2f37bcd08a27941d405e6c9dea4999f3d/nbhosting-0.1.0.tar.gz" } ] }