Contexte et solution apportée
Contexte
Suite à la pandémie de COVID-19, il a été mis en place, à l'université de Montpellier, un système de classe virtuelle Open Source reposant sur Big Blue Button (BBB).
Pour informations, BigBlueButton (https://bigbluebutton.org/) est un outil de classe virtuelle ayant les fonctionnalités suivantes :
- Vidéo/webcam
- Audio
- Chat
- Partage de document + annotation
- Partage d’écran
- Sondage
- Enregistrement
- Création de groupes
- Prises de notes partagées
- Intégration de vidéos externes
- Intégration Moodle et WordPress
Cependant, l'une des plus grosses contraintes de BigBlueButton concerne la limite de 100 étudiants par session (cf. https://docs.bigbluebutton.org/support/faq.html#how-many-simultaneous-users-can-bigbluebutton-support).
Dans la plupart des cas, cette limite de 100 étudiants par session n'est pas un blocage, mais dans certains cas bien précis - par exemple, des cours magistraux pour des L1 - cette limite devient bloquante à l'utilisation de BigBlueButton.
Solution
Pour résoudre cette problématique, je suis parti d'une solution mise en place à l'Université Polytechnique Hauts-de-France et l'ai modifié pour l'intégrer totalement dans Pod v2.
Cette solution fonctionne pour BigBlueButton mais également pour Scalelite (cf. https://github.com/blindsidenetworks/scalelite), un système de répartition de charge pour BigBlueButton.
L'idée de cette solution est de :
- Récupérer régulièrement les informations concernant les sessions en cours, ainsi que les usagers, dans BigBlueButton pour les insérer dans la base de données de Pod : cf. le système de publication des présentations Web de BigBlueButton vers Podv2 : https://www.esup-portail.org/wiki/x/AgCBNg
- Traiter ces données pour permettre aux utilisateurs, connectés dans Pod, de pouvoir réaliser un direct de leur session BigBlueButton en cours,
- Permettre aux étudiants d'accéder au direct créé automatiquement via l'onglet des directs de Pod,
- D'automatiser l'ensemble du système (démarrage/arrêt des directs, création/suppression des diffuseurs dans Pod...).