The learnr package to turn any R Markdown document into an interactive tutorial.The gradethis package for “grading” student exercises in learnr tutorials. The rstudio primers constitute great examples of learnr tutorials.
Sources :
install.packages("remotes")
::install_github("laderast/decampr") remotes
library(decampr)
library(usethis)
::create_course_repo() decampr
Ines Montani has developed a course platform that runs R and Python code on Binder, which turns a git repo into a collection of interactive notebooks. Binder allows you to create custom computing environments that can be shared and used by many remote users.
How does it work? It takes advantage of mybinder.org’s ability to run R in a Docker container. The website itself is hosted on a service such as Netlify, which handles the lesson material, code submission, and displaying results. The code is submitted via JavaScript to the Docker container and results (such as data.frames and ggplot2 figures) are returned to the user on a webpage. The course repository works with two components: Gatsby (front-end), and Binder (back-end).
Cons :
Pros :
Two branches in the repository :
exercises/solutions/tests chapter.md files slides (using reveal.js)
data/
comprenant les chemins vers les données.install.packages("tidyverse")
install.packages("rjson")
et un fichier runtime.txt qui ressemble à r-2019-04-10
.
One note on the Docker container, that is built on mybinder.org: while the install.R method works, we recommend building on existing work through using a Dockerfile.
Si les tutoriaux sont ditribués comme recommandés par les auteurs de learnr
, c’est à dire dans le dossier inst/tutorials/
d’un package, on peut créer un binder très facilement via mybinder.org et déployer des serveurs Rstudio à la volée via le lien fourni de type (https://mybinder.org/v2/gh/mahendra-mariadassou/L1fdvGenetics/master?urlpath=rstudio). Le suffixe ?urlpath=rstudio
permet de lancer une instance de rstudio dans le binder.
binder
(qui se met à jour lentement) pour éviter de reconstruire un binder à chaque commit “cosmétique”runtime.txt
(pour avoir les bonnes versions de package)
Comment faire en pratique ?
Details pour faire tourner l’app en local
On commence par installer Gasby, générateur de site web ainsi que ses autres dépendances avant de lancer le serveur, qui sera sur localhost:8000.
A noter qu’il est nécessaire d’avoir Node.js installé au préalabl et que les versions disponibles par défaut dans les dépôts apt sont obsolètes (8.5.x). Sous Ubuntu 18.04 LTS, on peut installer des versions récentes de NodeJS et npm (NodeJS Package Manager) via les commandes suivantes:
Sous windows, on installe Nodejs depuis https://nodejs.org/en/ puis installer le package
windows-build-tools
avec la commandenpm install --global windows-build-tools --vs2015
dans une invite de commande lancée en mode administrateur.On peut vérifier que l’installation s’est bien passée et que les numéros de version sont les bons via:
On peut construire le site en local via:
A noter que npm notice crée un fichier package-lock.json qu’il faut copier à la place de celui présent à la racine du répertoire. Sous ubuntu 18.04 LTS, la dernière commande ne permet pas de générer le site web… (mais Julie a réussi sur son Mac)