10.1 Notre “LRS”

Les évènements que nous enregistrons ne sont pas tous formatés en xAPI pour le moment. Ainsi, les données provenant de H5P le sont, mais pas celles provenant de Learnr, Shiny ou Wooclap. Dans LearnIt::R, l’approvisionnement des données se fait directement dans un format propre aux documents que sont stockés dans la base de données. Ainsi, le travail côté serveur est simplifié et il est possible d’utiliser un service tel que MongoDB Atlas. Ce service est gratuit pour une base de données de 512Mo, ce qui est largement suffisant pour tester l’outil sans se ruiner. La version payante qui autorise plus d’espace de stockage est également pécuniairement très intéressante là ou des véritables LRS (donc des outils plus spécialisés) sont beaucoup plus chers.

Le choix de MongoDB a été motivé par plusieurs facteurs :

  • La possibilité d’utiliser gratuitement MongoDB ATLAS, un serveur sécurisé et fiabilisé contre les pannes sur le cloud pour y stocker (temporairement) jusqu’à 512Mo de données.

  • La facilité d’installer un serveur MongoDB local uniquement (machine personnelle autant que serveur dédié).

  • La simplicité de backup/restauration de données pour un même serveur ou entre serveurs avec mongodump/mongorestore.

  • La facilité d’exportation des données avec mongoexport, ainsi que les drivers pour PHP (Wordpress/H5PxAPIKatchu) et pour R avec le package {mongolite}.

  • La rapidité de requêtes relativement complexes, et la possibilité de mettre au point de telles requêtes avec MongoDB Compass.

Par contre, au niveau des points négatifs, nous avons :

  • Utilisation d’un port particulier 27017 qui doit être ouvert. Ce port pourrait très bien être fermé dans un réseau universitaire à destination d’étudiants (Wifi étudiant) car il est contenu dans une plage de port traditionnellement utilisée par des jeux. Or, il est parfois nécessaire de limiter l’accès aux jeux sur le réseau d’un campus car sinon, cela saturerait la bande passante.

  • Pas de possibilité d’utiliser un outil comme {dbplyr} pour définir les requêtes. Langage de requêtage spécifique (à noter que que nous développons aussi le package {mongoplyr} pour offrir une fonctionnalité similaire).

  • Plus complexe à déployer et utiliser en local que, par exemple, une base de données SQLite.

  • Bien moins couramment utilisé que MySQL pour des solutions sur le Net.

  • Il faut utiliser un format de données différent pour l’échange et la publication des données (Open Data).

Nous ne sommes donc pas définitivement fixés sur ce choix comme solution unique de base de données pour la plateforme LearnIt::R LRS. En tous cas, MongoDB a le mérite de fonctionner correctement pour l’utilisation que nous en faisons jusqu’ici.