Aller au contenu

Cours

Des cours avec modules et leçons en texte, image, vidéo ou lien. Ce que fait le membre : voir les cours, commencer, regarder, marquer les leçons et terminer. Comment l’équipe crée, construit, publie et suit les élèves, le mode Un seul cours, et comment le vendre.

Le module Cours organise l’apprentissage sur trois niveaux :

Espace Cours→Cours→Module→Leçon (texte, image, vidéo ou lien)

Les membres commencent le cours, suivent les leçons, marquent chacune comme terminée et suivent leur progression jusqu’à la fin. L’espace peut être une liste de cours ou, en mode Un seul cours, un seul cours.

À quoi ça sert

CommunautéCours
École en ligneExcel de zéro : 6 modules, 30 leçons vidéo
RH d’entrepriseIntégration : 3 modules avec les politiques de l’entreprise
MentoratParcours du mentoré : un module par mois

Ce que fait le membre

La liste des cours

Dans l’espace Cours, le membre voit les cours de la communauté sous forme de cartes. Chaque carte montre le niveau, le titre, le nombre de modules et de leçons, et la durée (ou « Sans durée »). Qui a commencé voit la barre de progression ; qui n’a pas commencé voit « Pas commencé ».

  • Le cours mis à la une apparaît en grand en haut, avec le badge Cours à la une. Sans cours à la une, il n’y a pas de bloc à la une.
  • En haut, le sélecteur Tous, Mon contenu, En cours, Terminés et Enregistrés réduit la liste (voir Mon contenu) ; le choix reste dans l’adresse de la page.

Un espace Cours (interface en portugais)
Le sélecteur Tous, En cours, Terminés et Enregistrés, et le cours à la une en haut.

  • Brouillon et archivé n’apparaissent que pour l’équipe, avec un badge. Les membres ne les voient pas.
  • Le nombre d’élèves n’apparaît que pour l’équipe.
  • En mode Un seul cours, il n’y a pas de liste : le membre arrive directement sur le cours.

Quand il n’y a rien à montrer, l’écran dit pourquoi :

SituationMessage
L’espace n’a aucun cours publiéAucun cours disponible
Filtre Mon contenu sans résultatAucun de vos cours ici pour l’instant
Filtre En cours sans résultatAucun cours en cours
Filtre Terminés sans résultatAucun cours terminé pour l’instant
Le chargement a échouéErreur de chargement des cours, avec le bouton Réessayer

Commencer le cours

Sur la page du cours, le membre voit la couverture, le niveau, la description et le Contenu du cours : le plan avec les modules et les leçons, et le type et la durée de chacune. Sans inscription, le plan n’ouvre pas les leçons.

L’en-tête du cours. Juste sous la couverture viennent le titre et une ligne avec le niveau, combien de modules et de leçons, la durée totale (quand chaque leçon a une durée) et combien d’élèves ; en dessous, les tags et le formateur. Il remplace l’ancienne carte Détails du cours. Les rubriques de la page (Contenu, Élèves et Évaluations, les deux dernières seulement pour qui peut les voir) sont des onglets soulignés.

Dans le plan, chaque module montre combien de leçons il a et leur durée, et se replie ou se déplie d’un clic ; chaque leçon montre l’icône du type, le titre, la durée et la coche de leçon terminée ou le cadenas.

La colonne latérale a un seul bouton principal (Commencer le cours, Continuer le cours ou Revoir le cours). Qui est inscrit y voit sa progression et la Leçon suivante, qui s’ouvre directement. Partager, Enregistrer le cours et Quitter le cours deviennent de petites icônes, en ligne, sous le bouton.

Commencer le cours inscrit le membre en un clic et ouvre la première leçon. À côté du bouton, un avis : « En commençant, l’équipe de la communauté peut suivre votre progression dans ce cours. »

SituationCe que montre la page
Pas encore commencéCommencer le cours
Déjà commencéContinuer le cours et la barre de progression
Toutes les leçons terminéesCours terminé, Terminé le {date} et Revoir le cours

Continuer le cours ouvre la dernière leçon consultée, si elle n’est pas terminée ; sinon, la première leçon en attente. S’inscrire à nouveau n’est pas une erreur : l’inscription existante reste valable, sans points en plus.

Suivre la leçon

Chaque leçon s’affiche selon son type :

TypeComment elle s’affiche
VidéoIntégrée dans la page, seulement depuis YouTube, Vimeo et Loom. Une vidéo venant d’ailleurs devient une leçon lien
TexteTexte mis en forme
LienUn bouton Ouvrir, qui ouvre un autre onglet. Avis : « Ce lien s’ouvre dans un nouvel onglet et vous fait sortir de cette communauté. Vérifiez l’adresse avant de continuer. »
ImageL’image dans la page

À côté de la leçon se trouve le Contenu du cours avec la progression ; sur le téléphone, le bouton Contenu du cours ouvre un tiroir avec le même plan.

  • Marquer comme terminée enregistre la leçon. Il n’est pas possible de la décocher. Une fois marquée, la leçon affiche Leçon terminée et le bouton Leçon suivante.

  • Sur la dernière leçon, l’écran affiche Vous avez terminé ce cours !.

  • La fin ne se fait que par le bouton : regarder la vidéo jusqu’au bout ne marque pas la leçon.

  • Une leçon sans contenu n’a pas de bouton de fin.

  • Ouvrir une leçon enregistre l’accès, pour que Continuer le cours revienne là où la personne s’est arrêtée.

  • Leçon précédente et Leçon suivante se trouvent aux bords de la leçon (sur mobile, Précédente et Suivante). Le bouton Terminer la leçon marque la leçon, qui affiche alors Terminée.

  • Fin automatique. La leçon se termine toute seule quand la vidéo se termine : vidéo envoyée, Drop, YouTube et Vimeo. Pour les autres vidéos intégrées, utilisez Terminer la leçon.

  • Reprendre là où vous vous êtes arrêté. La position de la vidéo est enregistrée environ toutes les 15 secondes ; quand vous revenez, la leçon affiche « Reprise à 04:32 » et Recommencer. Près de la fin compte comme vu.

  • Évaluez cette leçon de 1 à 5 étoiles, avec un commentaire facultatif. Les élèves ne voient que leur propre évaluation. Avec Montrer la moyenne des évaluations aux élèves, dans le formulaire du cours (propriétaire et administrateur), les élèves voient aussi la moyenne et le nombre d’évaluations. L’équipe voit la moyenne, la répartition et les commentaires de chaque leçon et du cours dans l’onglet Évaluations de la page du cours.

Quand quelque chose n’est pas disponible

MessageQuand
Commencez le cours pour voir cette leçonLe membre a ouvert une leçon sans avoir commencé le cours
Le contenu de cette leçon n’a pas encore été publiéLa leçon existe, mais l’équipe n’a pas encore ajouté le contenu
Leçon introuvableLa leçon a été retirée du cours
Cours introuvableLe cours a été retiré ou l’adresse est erronée
Cet espace est restreintLe membre n’a pas accès à l’espace. L’accès au cours est celui de l’espace

L’équipe prévisualise

Le propriétaire, l’administrateur, le modérateur et les finances ouvrent le cours et les leçons sans s’inscrire, y compris dans un cours d’un espace payant. Aperçu se trouve dans la barre Gérer le cours et ouvre la première leçon comme l’élève la verrait. Dans l’aperçu, l’écran prévient : « Vous prévisualisez ce cours. Votre progression n’est pas enregistrée. » L’équipe ne compte pas comme élève et ne gagne pas de points dans cet aperçu.

Comment ça marche

Le cours

ChampÀ quoi il sert
Titre et slugLe nom et l’adresse du cours
DescriptionCe qu’on y apprend
NiveauDébutant, intermédiaire ou avancé
ImageLa couverture
StatutCommence en brouillon ; publié, il accepte les inscriptions ; archivé, il quitte la liste du membre

Modules et leçons

Chaque cours a des modules, dans l’ordre, et chaque module a des leçons, dans l’ordre. Une leçon a un type, une durée et le contenu :

TypeContenu de la leçonRègle
TexteLe texte, mis en formeLe texte est obligatoire
VidéoL’adresse de la vidéoSeulement YouTube, Vimeo et Loom
LienL’adresse d’une pageCommence par http:// ou https://
ImageL’adresse de l’imageCommence par http:// ou https://

La durée s’écrit mm:ss ou hh:mm:ss (par exemple 12:30). La durée du cours dans la liste est la somme des leçons ; si une durée ne peut pas être lue, la liste affiche « Sans durée ».

Inscription et progression

Un membre commence un cours publié. L’inscription devient terminée quand toutes les leçons du cours sont terminées, et elle ne revient pas en arrière : si l’équipe ajoute une leçon plus tard, la progression affiche « 9 leçons sur 10 », mais le cours reste terminé. Un cours sans leçons ne peut pas être terminé.

Commencer le cours et terminer des leçons rapporte des points d’engagement : 10 points pour s’inscrire et 25 par leçon terminée, une fois par leçon. Terminer le cours lui-même ne rapporte pas de points.

Le contenu n’est que pour qui peut le voir

Le contenu des leçons (le texte et l’adresse de la vidéo, du lien ou de l’image) n’est livré qu’à l’équipe (propriétaire, administrateur, modérateur et finances) ou à qui a commencé le cours. Qui n’a pas commencé et qui a vu son inscription annulée ne reçoivent que le plan : titre, type et durée de chaque leçon.

Qui peut

ActionQui
Voir les cours publiés et commencerQui a accès à l’espace
Voir les brouillons et les cours archivésPropriétaire, administrateur, modérateur et finances
Voir le contenu sans commencer le coursPropriétaire, administrateur, modérateur et finances (lecture seule, sans progression)
Créer l’espace CoursPropriétaire et administrateur
Créer, modifier, publier, archiver et supprimer des cours, modules et leçonsPropriétaire et administrateur
Voir l’onglet ÉlèvesPropriétaire, administrateur, modérateur et finances (modérateur et finances en lecture seule)
Choisir et changer le mode de l’espacePropriétaire et administrateur

Affichage. Le propriétaire et l’administrateur choisissent comment les éléments apparaissent dans cet espace : Cartes, Liste ou Vitrine (par défaut : Cartes ; voir Vitrine). Voir Affichage.

Construire le cours

Qui fait quoi

QuiCe qu’il voit et fait
Propriétaire et administrateurCréent, modifient, publient, archivent et suppriment cours, modules et leçons, et voient l’onglet Élèves
Modérateur et financesVoient l’onglet Élèves, en lecture seule. Aucun outil d’édition n’apparaît
MembreNe voit rien pour l’édition

Créer le cours

Rôle : propriétaire ou administrateur.

  1. Dans l’espace Cours, cliquez sur Nouveau cours.
  2. Dans l’onglet Général, remplissez :
    • Titre ;
    • Adresse (slug), remplie à partir du titre et modifiable. Si un cours avec la même adresse existe déjà, l’erreur apparaît sur le champ lui-même ;
    • Description, dans l’éditeur de texte ;
    • Niveau : Débutant, Intermédiaire ou Avancé ;
    • Tags ;
    • Couverture : une image 16:9 (par exemple 1600×900). Sur la page et dans les cartes, elle s’affiche recadrée en format panoramique. Sans image, la carte et la page affichent un dégradé aux couleurs de la communauté.
  3. Dans l’onglet Publication, choisissez le Statut et, si vous le souhaitez, cochez Cours à la une.
  4. En option, dans l’onglet Fin du cours, le certificat et le Badge à la fin : qui termine le cours reçoit le badge, sans workflow.
  5. Cliquez sur Créer le cours.

Le cours commence toujours en brouillon, visible seulement par l’équipe. Vous construisez le contenu sur sa page et publiez ensuite. En modification, changer l’adresse change le lien du cours : les anciens liens cessent de fonctionner.

Chaque cours est aussi créé avec son propre produit, en brouillon gratuit, lié au cours un pour un. Tant que le produit n’est pas publié, rien ne change pour l’élève. Voir Vendre le cours.

Construire les modules et les leçons

Sur la page du cours, l’onglet Contenu est le constructeur.

Modules : utilisez Ajouter un module, à la fin de la liste, donnez-lui un titre et enregistrez. Chaque module montre combien de leçons il a et leur durée, et se replie ou se déplie. Le ⋯ du module propose Monter, Descendre, Programmer l’ouverture, Renommer et Supprimer le module.

Leçons : dans Ajouter une leçon, à la fin du module, choisissez le Type de leçon et remplissez le contenu. Le ⋯ de la leçon propose Monter, Descendre, Modifier la leçon et Supprimer la leçon.

Glisser : chaque ligne a une poignée à gauche (« Faites glisser pour réordonner ») : les modules se glissent entre modules, et les leçons dans leur propre module. Sur ordinateur, la poignée et le ⋯ apparaissent quand la souris passe sur la ligne ou qu’elle reçoit le focus ; sur téléphone et tablette, ils sont toujours visibles. Pour envoyer une leçon dans un autre module, modifiez la leçon et changez le champ Module : elle va à la fin du module choisi.

TypeCe qu’il faut remplir
VidéoLe lien de la vidéo, de YouTube, Vimeo, Loom, Bunny Stream, Cloudflare Stream, Panda Video, ou un HLS (.m3u8). La durée (mm:ss) est facultative
TexteLe texte de la leçon, dans l’éditeur de texte
LienL’adresse et le titre. C’est ainsi qu’entre un PDF hébergé ailleurs ou une vidéo d’un fournisseur que la leçon vidéo n’accepte pas (Wistia, par exemple)
ImageL’adresse d’une image déjà hébergée

Avec le type Vidéo, une leçon accepte aussi une vidéo envoyée depuis votre ordinateur, et il existe le type Fichier. Voir Vidéo et fichier hébergés.

Pour du contenu payant, utilisez une vidéo non répertoriée : l’adresse de la vidéo est visible par qui est inscrit.

  • Durée : elle est facultative. Si une leçon n’a pas de durée, le cours n’affiche pas la durée totale.
  • Leçon sans contenu : elle reçoit le badge Sans contenu, et l’élève y voit « contenu bientôt disponible ».
  • Réordonner : en faisant glisser la poignée ou avec Monter et Descendre dans le ⋯.

Vidéo et fichier hébergés

Rôle : propriétaire ou administrateur. En plus du lien YouTube, Vimeo ou Loom, une leçon peut garder son propre fichier sur Memberfy :

Type de leçonCe qu’il accepteLimite
VidéoLe lien habituel, ou une vidéo hébergée envoyée depuis votre ordinateur : MP4, WebM ou MOV500 Mo
Fichier (nouveau)PDF, Word (.doc, .docx), Excel (.xls, .xlsx), PowerPoint (.ppt, .pptx), ZIP et images PNG, JPEG, GIF ou WebP50 Mo

Les SVG, HTML, scripts et exécutables ne sont jamais acceptés. Memberfy vérifie le contenu du fichier, pas seulement l’extension : un exécutable renommé en .mp4 est refusé.

  • Envoyer : dans Choisir un fichier, choisissez le fichier ; la barre affiche « Envoi… 40 % » et Annuler l’envoi l’arrête. L’envoi va directement au stockage, sans passer par le serveur de Memberfy. S’il échoue ou est annulé, la leçon reste telle qu’elle était.
  • Contenu bientôt disponible : vous pouvez créer la leçon sans le fichier (« Sans fichier, la leçon est créée en “contenu bientôt disponible” et vous envoyez la vidéo plus tard. ») et publier le cours avant que le média soit prêt ; l’élève voit Contenu bientôt disponible sur cette leçon.
  • Remplacer met un autre fichier et supprime le précédent. Retirer demande confirmation (« Le fichier sera supprimé et la leçon redevient “contenu bientôt disponible”. ») et libère l’espace.
  • Un seul par leçon : une vidéo hébergée et un lien externe ne coexistent pas ; choisir l’un efface l’autre.

Qui le voit

Seulement l’élève inscrit, avec le cours publié et la leçon débloquée (la séquence et la date s’appliquent comme pour toute leçon). L’équipe (propriétaire, administrateur, modérateur et finances) le voit toujours. Le fichier est privé : l’élève reçoit un lien temporaire, 1 heure pour la vidéo (on peut sauter au milieu) et 5 minutes pour le fichier, qui se télécharge avec son nom d’origine ; l’écran en redemande un tout seul quand il expire. Qui quitte le cours ne reçoit plus de nouveaux liens, mais un lien déjà émis fonctionne jusqu’à son expiration.

Hébergée ou lien externe

Vidéo hébergéeLien externe (YouTube, Vimeo, Loom)
Quand l’utiliserContenu payant ou privé : seuls les inscrits accèdent au fichierVidéos longues ou lourdes, avec une qualité qui s’adapte à la connexion de l’élève
EspaceUtilise le stockage de la communautéNon
FormatUn seul fichier MP4, WebM ou MOV, sans changement automatique de qualitéCe que le service accepte
AttentionLes gros fichiers mettent du temps à s’envoyerPour du contenu payant, utilisez une vidéo non répertoriée : l’adresse est visible par les inscrits

Bunny Stream, Cloudflare Stream, Panda Video et HLS

En plus de YouTube, Vimeo et Loom, une leçon vidéo accepte le lien d’une vidéo de qui héberge déjà ses vidéos sur son propre service. Le pas à pas de chaque fournisseur et l’écran des clés sont dans Intégrations vidéo.

FournisseurLe lien de la leçon
Bunny Streamhttps://iframe.mediadelivery.net/embed/{library}/{video} (ou /play/), ou https://video.bunnycdn.com/play/{library}/{video}
Cloudflare Streamhttps://customer-{code}.cloudflarestream.com/{id}, https://iframe.videodelivery.net/{id} ou https://watch.videodelivery.net/{id}
Panda Videohttps://{player}.tv.pandavideo.com.br/embed/?v={id}
HLSUne adresse https://…/fichier.m3u8 sur un serveur public
  • L’adresse doit être exactement d’un de ces services : un domaine qui imite, un HLS en http, une IP, un port ou un serveur interne sont refusés. Memberfy ne télécharge pas la vidéo ; le lecteur lit directement depuis le fournisseur.
  • Le lecteur ne part qu’à qui peut voir la leçon, selon la même règle que le lien : qui ne voit que le plan du cours ou une leçon verrouillée ne reçoit pas la vidéo.
  • Un lien de ces fournisseurs collé dans une publication devient aussi un lecteur, comme un lien YouTube.
  • La vidéo de bienvenue reste limitée à YouTube et Vimeo (voir Bienvenue).

Vidéo protégée (Bunny et Cloudflare). Si la bibliothèque Bunny ou le compte Cloudflare exige un jeton pour lire, enregistrez la clé de signature de la communauté : celle de Bunny est l’Embed token authentication key de la bibliothèque ; celle de Cloudflare est la clé de signature (le keyId et la clé privée). Avec la clé enregistrée :

  • La vidéo part signée, valable 6 heures, seulement à qui la leçon (ou la publication) laissait déjà voir. Qui copie l’adresse du lecteur ne peut plus la lire ensuite.
  • La clé est en écriture seule : une fois enregistrée, seuls ses 4 derniers caractères s’affichent. L’enregistrement, le remplacement, la vérification et la suppression vont dans les Journaux, sans la valeur.
  • Vérifier signe le lien d’une de vos vidéos et demande au fournisseur s’il l’accepte : acceptée, la clé est valide ; refusée, invalide.
  • Si le fournisseur refuse la clé, les vidéos de ce fournisseur deviennent indisponibles (le lecteur ne s’ouvre pas) jusqu’à ce que vous enregistriez la bonne clé, et le propriétaire et l’administrateur reçoivent un avis dans la cloche, au plus une fois par jour. Les vidéos des autres fournisseurs continuent de se lire.
  • Seuls le propriétaire et l’administrateur enregistrent et voient les clés.

Collez le lien dans le formulaire de la leçon, comme un lien YouTube. Les clés de signature sont dans Paramètres › Intégrations vidéo, pour le propriétaire et l’administrateur : Enregistrer la clé, Vérifier avec une de vos vidéos et Vérifier, Remplacer la clé et Retirer la clé, avec le statut Pas de clé, Non vérifiée, Valide ou Invalide. Quand le fournisseur refuse la clé, les spectateurs voient « Vidéo indisponible » et « Prévenez l’équipe de la communauté pour qu’elle corrige le problème. », et l’avis de la cloche ouvre Intégrations vidéo. Retirer la clé demande « Retirer la clé Bunny Stream ? » (ou celle de Cloudflare Stream). Pour le propriétaire et l’administrateur, une vidéo indisponible affiche le bouton Ouvrir Intégrations vidéo.

Combien d’espace est utilisé

Le propriétaire voit l’utilisation dans Paramètres › Offre et utilisation, dans le bloc Stockage de vidéos et de fichiers : le stockage utilisé et sa limite, ce qui a été envoyé ce mois-ci et sa limite, une barre et un avertissement à partir de 80 % de la limite et au-delà de 100 %. Le stockage a la limite de l’offre (de 5 à 250 Go) : à la limite, les nouveaux envois sont refusés, et ce qui est déjà stocké reste ; le volume d’envoi du mois ne fait qu’avertir. Voir Offre et extensions. Supprimer (média, leçon, module ou cours) rend le stockage mais ne baisse pas le volume du mois, qui correspond à ce qui a été envoyé ; le compteur mensuel repart le 1er, à minuit dans le fuseau horaire de la communauté. Seuls les médias hébergés des cours comptent.

Gérer le cours

La barre Gérer le cours, sur la page du cours, montre dans quel état est le cours et a les boutons :

BoutonCe qu’il fait
Publier (ou Publier à nouveau)Les membres qui ont accès à l’espace commencent à voir le cours
Revenir au brouillonLe cours redevient visible seulement par l’équipe
ArchiverRetire le cours aux membres. Les inscriptions et la progression sont conservées
SupprimerDemande confirmation
  • Publier un cours sans leçons, ou avec une leçon sans contenu, prévient (« Publier quand même ? ») et demande confirmation : Continuer l’édition ou Publier quand même.
  • Supprimer le cours montre ce qui disparaît (le cours, les modules et les leçons, avec leur contenu) et indique que la progression des élèves est conservée.
  • Supprimer une leçon ou un module prévient combien d’élèves y ont de la progression. La progression est conservée, et la barre de chaque élève ne compte plus que les leçons qui existent.

Supprimer un espace Cours supprime aussi ses cours : ils quittent la liste et les élèves perdent l’accès. Les certificats déjà émis restent valables et personne ne reçoit de nouveaux certificats de ces cours. L’application prévient avant que vous confirmiez : « Les cours de cet espace seront aussi supprimés : ils quittent la liste et les élèves perdent l’accès. Les certificats déjà émis restent valables, et personne ne recevra de nouveaux certificats de ces cours. ».

Suivre les élèves

Rôle : propriétaire, administrateur, modérateur ou finances (modérateur et finances en lecture seule).

L’onglet Élèves liste qui a commencé le cours, l’inscription la plus récente d’abord, par pages, sans recherche. Chaque ligne montre :

  • la date d’inscription (« Inscrit le … ») ;
  • le pourcentage de progression et « N leçons terminées sur M » ;
  • la dernière activité (« Pas encore d’activité », s’il n’y en a pas eu) ;
  • le badge Terminé, quand l’élève a fini.

Cliquez sur un élève pour ouvrir son profil. Une inscription annulée n’apparaît pas et ne compte pas dans le total (« N élèves inscrits »). Le total est le même nombre que l’équipe voit dans la liste des cours.

Cours en mode « Un seul cours »

Par défaut, l’espace Cours est une Liste de cours. En mode Un seul cours, l’espace est un cours : qui l’ouvre arrive directement sur la page du cours, sans liste, sans filtres et sans bouton Retour.

Choisir le mode

Rôle : propriétaire ou administrateur.

  1. Dans Ajouter un espace, choisissez le module Cours. Dans Fonctionnement de l’espace, choisissez Liste de cours (par défaut) ou Un seul cours.
  2. Avec Un seul cours, le bouton Suivant mène à l’étape Cours : donnez le titre (obligatoire), le niveau et la description.
  3. Terminez. L’espace et le cours sont créés ensemble ; si quelque chose échoue, rien n’est créé. Le cours commence en brouillon. À la création, la fenêtre se termine ouverte sur la page du cours.

Ce que voit chacun

QuiCe qu’il voit
MembreLe cours, avec Commencer le cours ou Continuer le cours. Avec le cours en brouillon, archivé ou absent, il affiche toujours « Ce cours n’est pas encore disponible »
Propriétaire et administrateurLa page du cours avec tous les outils, sans liste et sans Nouveau cours. Si le cours est supprimé, elle affiche « Cet espace n’a pas encore de cours », avec Créer le cours

Un cours par espace

Vous ne pouvez pas créer de deuxième cours dans un espace en mode Un seul cours, ni dans l’application, ni par l’API, ni par l’assistant. Les brouillons et les cours archivés comptent. Pour avoir plus de cours, changez de mode.

Changer de mode

Rôle : propriétaire ou administrateur. Dans Modifier l’espace, dans le champ Fonctionnement de l’espace :

ChangementCe qui se passe
Liste de cours vers Un seul coursAvec 0 ou 1 cours, ça passe. Avec 2 ou plus, c’est refusé, en indiquant combien de cours il y a et en demandant de les supprimer jusqu’à ce qu’il en reste un. Rien n’est supprimé
Un seul cours vers liste de coursPasse toujours. Les inscriptions et la progression restent

Supprimer le cours d’un espace en mode Un seul cours ne change pas le mode : l’espace attend un nouveau cours.

Vitrine, format de couverture et « Reprendre là où vous vous êtes arrêté »

Format de couverture

Dans le formulaire du cours, le propriétaire et l’administrateur choisissent le format de la couverture :

FormatProportionÀ quoi il sert
Bannière (par défaut)3:1La couverture large d’aujourd’hui
Affiche2:3Une couverture verticale, comme celle d’un film ou d’une série, faite pour la Vitrine
Vidéo16:9La forme d’une miniature de vidéo

L’envoi recadre l’image à la proportion choisie, et le titre du cours se place sous la couverture. Chaque cours existant commence en Bannière : rien ne change tant que vous ne changez pas.

Vitrine

Vitrine est l’une des options du champ Affichage d’un espace Cours (Cours seulement) : une grille d’affiches, 2 par ligne sur le téléphone et 4 à 6 sur ordinateur. Pour les inscrits, une fine barre de progression se trouve juste sous la couverture ; le titre vient en dessous. Un cours sans couverture affiche en reçoit une générée avec la couleur de la communauté et le titre. Qui a terminé le cours voit le badge Cours terminé sous le titre. Un cours verrouillé affiche le cadenas, comme dans les autres affichages.

« Reprendre là où vous vous êtes arrêté »

En haut de la liste des cours de l’espace, dans la vue Tous et dans n’importe quel affichage, qui a commencé un cours là-bas voit Reprendre là où vous vous êtes arrêté : ses cours en cours, le plus récent d’abord. Chacun s’ouvre directement sur la leçon où la personne s’est arrêtée et, dans une leçon vidéo, au moment de la vidéo où elle en était. Quand cette leçon est déjà terminée, il ouvre la suivante pas encore terminée et non verrouillée.

Seuls entrent les cours que la personne peut encore ouvrir : inscription active, cours publié et espace auquel elle a accès. Un cours devenu verrouillé (le plan a pris fin, la personne a quitté le groupe) sort de la liste. Sans cours en cours, le bloc n’apparaît pas.

Mon contenu

La vue Mon contenu montre les cours qui appartiennent déjà à la personne : ceux avec une inscription (active ou terminée) et ceux débloqués par son plan ou par un achat, même sans inscription. Les cours qui restent à acheter et les cours gratuits auxquels elle ne s’est pas inscrite restent dehors. L’équipe n’y voit que les cours auxquels elle est inscrite : un rôle ne fait pas d’un cours le sien.

Avec l’assistant et l’API

Avec l’assistant

Demandez en langage courant, et l’assistant crée l’espace, le cours, les modules et les leçons, avec le contenu de chacune :

« Crée le cours Excel de zéro avec deux modules. Dans le premier, une leçon texte de bienvenue et une leçon vidéo avec ce lien YouTube. Dans le second, une leçon avec un lien vers la feuille d’exercices et une leçon avec l’image des raccourcis. »

Le texte des leçons s’écrit en Markdown et devient le texte mis en forme de l’application. Un lien Bunny Stream, Cloudflare Stream ou Panda Video, ou un flux HLS (.m3u8), devient une leçon vidéo, et avec la clé de signature la vidéo se lit signée ; tout autre fournisseur devient une leçon lien. L’administrateur change aussi l’ordre des modules et des leçons, choisit le mode de l’espace et voit les élèves (modérateur, finances ou au-dessus). Voir Outils · Cours et les recettes Build a course with modules and lessons of every type, A single-course space, with its course, Build and publish the course et Follow the students of a course.

« Où est-ce que je me suis arrêté ? » : l’assistant appelle list_my_courses_in_progress avec limit: 1 et ouvre la leçon avec get_course (le slug du cours). « Mets une couverture affiche sur le cours Excel de zéro » : update_course avec cover_format: "POSTER". La Vitrine se choisit à la création ou à la modification de l’espace (layout: "showcase", Cours seulement). Voir Outils · Cours.

create_course renvoie aussi le produit du cours et suggère de définir le prix et de publier ; enroll_in_course explique le refus d’un cours payant et d’un cours complet, et propose la liste d’attente. Voir Outils · Cours.

Pour le certificat du cours, demandez : « Active le certificat du cours Excel de zéro avec le modèle Fin de cours. » L’assistant montre aussi ce qu’émet le cours et prévient quand le modèle choisi est archivé. Voir Outils · Cours et les recettes Set up this course's certificate, What does the course issue? et I finished the course.

Avec l’API

  1. Créez l’espace : POST /api/spaces avec module: "courses". Pour un espace en mode Un seul cours, envoyez moduleConfig: { "mode": "single" } et, avec, course (title, level, description) : l’espace et le cours sont créés dans une seule transaction.
  2. Créez le cours (en mode liste) : POST /api/courses avec communityId, spaceId, title, slug et level. Gardez l’id.
  3. Créez chaque module : POST /api/courses/module avec courseId et title.
  4. Créez chaque leçon : POST /api/courses/lesson avec moduleId, title, type et le contenu (body pour le texte, contentUrl pour la vidéo, le lien et l’image). Le contentUrl vidéo accepte YouTube, Vimeo, Loom, Bunny Stream, Cloudflare Stream, Panda Video et HLS (https://…/*.m3u8) ; toute autre adresse renvoie 400 sur contentUrl. GET /api/courses/{identifier} renvoie, sur chaque leçon vidéo que la personne peut voir, videoEmbed (provider, kind iframe ou hls, src) ; avec la clé de signature, un src signé, signed: true et expiresAt (6 heures), ou unavailable: true quand la clé a été refusée.
  5. Publiez : PUT /api/courses/{id} avec status: "published".

Clés de signature vidéo (propriétaire et administrateur ; les autres rôles reçoivent 403) : GET /api/video-integrations, PUT et DELETE /api/video-integrations/{provider} (bunny avec tokenKey ; cloudflare avec keyId et privateKey, en PEM ou JWK) et POST /api/video-integrations/{provider}/verify (avec le lien d’une vidéo du même fournisseur : acceptée, status: valid ; refusée, invalid ; une vidéo qui n’existe pas, 422 videoNotFound ; pas de réponse du fournisseur, 502). La réponse ne porte que masked/last4, status et checkedAt ; jamais la clé. L’avis de la cloche est videoIntegrations.keyInvalid.

La communauté autour du cours

Le cours n’est plus seulement un plan de leçons : les élèves échangent avec la promotion, voient qui enseigne le cours, enregistrent ce qu’ils veulent faire plus tard et, si l’équipe le souhaite, comparent leur progression dans un classement.

Drop, couverture et texte de la leçon

Rôle : propriétaire ou administrateur. Dans une leçon Vidéo, Source de la vidéo propose Drops, Lien et Envoyer une vidéo :

  • Drops enregistre la vidéo de la leçon sur le moment avec la caméra, jusqu’à 10 minutes (« La caméra s’ouvre ici ; le Drop devient la vidéo de cette leçon quand vous enregistrez. »). Elle se lit sur la page de la leçon elle-même, pour l’équipe et pour les élèves inscrits. Voir Drops.
  • Durée. Sur une leçon sans durée, la durée du Drop (ou de la vidéo envoyée) se remplit toute seule.
  • Choisir la couverture montre jusqu’à six images de la vidéo ; cliquez sur l’une pour l’utiliser comme couverture.
  • Générer le texte de la leçon à partir de la vidéo rédige le Texte de la leçon à partir de ce qui a été dit. Le texte est modifiable (« Facultatif. S’affiche sous la vidéo ; relisez-le avant d’enregistrer. ») et l’élève le lit sous la vidéo.

Sur la page de la leçon, qui peut modifier le cours voit Modifier la leçon et Modifier le cours, qui ouvrent les mêmes éditeurs que la page du cours, sans revenir au constructeur.

Quitter le cours

Un élève inscrit dont le cours n’est pas encore terminé voit Quitter le cours sur la page. La confirmation indique que la progression est conservée : s’il recommence le cours, il continue là où il s’est arrêté. Après le départ, le contenu des leçons redevient seulement le plan, et la personne sort du nombre d’élèves et de l’onglet Élèves. Partir ne retire aucun point et ne révoque aucun certificat. Qui a terminé le cours ne peut pas le quitter.

Discussion du cours et discussion de la leçon

Il y a deux discussions : la Discussion du cours, sur la page du cours (questions générales, avis à la promotion), et la Discussion de la leçon, dans chaque leçon. Les deux fonctionnent de la même façon :

  • Commentaires avec un niveau de réponses : on peut répondre à un commentaire, pas à une réponse. Le texte est simple, de 1 à 2 000 caractères ; le HTML n’est pas interprété.
  • Qui lit : les élèves inscrits et l’équipe (propriétaire, administrateur, modérateur et finances). Qui n’est pas inscrit, ou a quitté le cours, lit « La discussion est réservée aux inscrits du cours. »
  • Qui écrit : les élèves inscrits et l’équipe.
  • Modifier et supprimer : l’auteur modifie son propre commentaire (il affiche modifié) et le supprime. Le propriétaire, l’administrateur, le modérateur et les finances suppriment le commentaire de n’importe qui, après confirmation. Un commentaire supprimé qui a des réponses devient « Commentaire retiré » et les réponses restent.
  • Sans validation préalable : le commentaire apparaît tout de suite, et l’équipe supprime ce qui ne doit pas rester.
  • Réactions : les sept habituelles (👍 ❤️ 🔥 🙌 😊 👏 🎉), sur le commentaire, la leçon et le cours. Chaque personne en a une par cible : toucher la même la retire, en toucher une autre la change.
  • Cours en brouillon ou archivé : qui peut lire lit, mais personne n’écrit ni ne réagit.
  • Points : commenter rapporte les points d’engagement de la communauté, une fois par commentaire et seulement pour l’élève. Aucun e-mail ni notification ne part.

Formateur et « Ce que vous allez apprendre »

Rôle : propriétaire ou administrateur. Dans le formulaire du cours, choisissez le Formateur (facultatif, un seul) parmi le propriétaire, les administrateurs, les modérateurs et les finances, avec une recherche par nom. La page du cours affiche le nom et l’avatar et ouvre le profil. Sans formateur, le bloc n’apparaît pas.

Dans Ce que vous allez apprendre, listez jusqu’à 8 éléments de jusqu’à 140 caractères, en texte simple (les éléments vides sont écartés). La liste apparaît à tous ceux qui ouvrent le cours, y compris qui ne s’est pas inscrit. Sans éléments, le bloc n’apparaît pas.

Enregistrer des cours

Sur chaque carte et sur la page du cours, Enregistrer le cours garde le cours pour plus tard (Retirer des enregistrés l’annule). Le filtre Enregistrés de la liste montre les vôtres. C’est personnel : même l’équipe ne voit pas ce que vous avez enregistré. Un cours qui cesse d’être visible disparaît du filtre.

Combien d’élèves

Un membre voit « N élèves » sur la carte et sur la page seulement à partir de 10 élèves ; en dessous, aucun nombre n’apparaît. L’équipe voit toujours le nombre réel. Personne ne reçoit le nom des autres élèves par ce nombre.

Classement du cours

Rôle : propriétaire ou administrateur. Dans l’onglet Publication, l’interrupteur Afficher le classement du cours commence désactivé. Activé, les élèves inscrits et l’équipe voient le Classement du cours : le top 10 par leçons terminées (en cas d’égalité, qui a fini le plus tôt l’emporte), avec nom et avatar, et la position de qui regarde, même hors du top 10 (« Vous êtes en position 14, avec 3 leçons terminées. »). Qui a quitté le cours et l’aperçu de l’équipe ne comptent pas.

Le classement est celui du cours et compte les leçons terminées, pas les points. Comme il montre le nom et l’avatar des élèves aux autres élèves, l’activer est un choix de l’équipe, cours par cours ; l’élève n’a pas de moyen de s’en retirer.

Leçons en séquence et ouverture par date

Deux contrôles facultatifs et indépendants guident le rythme de l’élève : l’ordre des leçons et la date d’ouverture de chaque module.

Leçons en séquence

Rôle : propriétaire ou administrateur. Dans l’onglet Publication du cours, activez Exiger la séquence (désactivé au départ). Activé, un élève n’ouvre une leçon qu’après avoir terminé la précédente, dans l’ordre du plan : module par module, leçon par leçon, d’un module à l’autre.

Une leçon est ouverte si c’est la première, si la précédente est terminée, ou si elle est elle-même déjà terminée. Ainsi, activer la séquence avec le cours en route, réordonner, insérer ou supprimer des leçons ne ferme jamais ce que l’élève a déjà fait. La désactiver ouvre tout d’un coup. Les modérateurs, les finances et les membres ne voient pas le contrôle.

Ouverture par module

Rôle : propriétaire ou administrateur. Sur chaque module, le bouton Ouverture (dans le nouveau constructeur, Programmer l’ouverture, dans le ⋯ du module) ouvre la fenêtre « Ouverture du module ». Choisissez un des deux modes et cliquez sur Enregistrer l’ouverture :

ModeQuand le module s’ouvre
Date fixe (« Disponible à partir du »)À la date et à l’heure choisies, dans le fuseau horaire de la communauté. Une date passée ouvre tout de suite
Jours après l’inscription (0 à 3650)À minuit (00:00) dans le fuseau horaire de la communauté du jour situé autant de jours après la première inscription de chaque élève. Avec 0, il s’ouvre tout de suite. Chaque élève a sa propre date
  • Un seul mode s’applique à chaque module ; passer de l’un à l’autre efface le précédent. Vide, le module s’ouvre tout de suite.
  • Quitter le cours et revenir ne relance pas le compteur : c’est toujours la première inscription qui compte.
  • Il n’y a ni tâche ni e-mail : le module s’ouvre tout seul, à la prochaine ouverture du cours après l’heure.
  • Une leçon que l’élève a déjà terminée reste ouverte même si vous changez la date ou les jours ensuite.

Séquence et date ensemble

Avec la séquence activée, un module programmé au milieu du cours verrouille aussi les leçons des modules suivants, car la précédente ne peut pas être terminée tant qu’il n’est pas ouvert. Qui avait déjà terminé des leçons là-bas les garde ouvertes. Si une leçon est retenue pour les deux raisons, le message montre d’abord la date. Le cours ne se termine que lorsque toutes les leçons sont terminées, donc qui a tout fini sauf le module programmé attend la date ; la barre de progression montre le nombre réel et le certificat suit la règle habituelle.

Ce que voit l’élève

Une leçon verrouillée apparaît dans le plan avec un cadenas et sans contenu (le texte et l’adresse de la leçon ne sont pas livrés). Le message dit pourquoi :

SituationMessage
Date fixe« S’ouvre le 13/10 à 9:00 » (mis en forme selon la langue)
Jours après l’inscription« S’ouvre le 18/10, 7 jours après votre inscription », avec la date réelle de cette personne. Qui n’est pas encore inscrit lit « S’ouvre 7 jours après l’inscription »
Séquence« Terminez d’abord “X” »

Ouvrir une leçon verrouillée par son adresse vous ramène au cours avec « Cette leçon n’est pas encore ouverte ». Continuer et Leçon suivante mènent toujours à une leçon ouverte. Par l’API ou l’assistant, terminer une leçon verrouillée est refusé avec 409, en indiquant quelle leçon manque ou quand elle s’ouvre.

Ce que voit l’équipe

Les propriétaires, administrateurs, modérateurs et finances ouvrent toutes les leçons, en aperçu, avec les badges Séquence et Programmée là où il y aurait un verrou. L’aperçu n’enregistre ni progression, ni points, ni certificat.

Les modérateurs et les finances lisent le contenu des leçons sans s’inscrire, y compris dans un cours d’un espace payant. Créer, modifier et supprimer restent réservés aux propriétaires et administrateurs. Les membres, les visiteurs et les personnes qui ont quitté le cours ne reçoivent toujours pas de contenu.

Leçons quiz

Une leçon Quiz teste ce que l’élève a appris, avec correction automatique et une note minimale pour terminer.

Construire le quiz

Rôle : propriétaire ou administrateur. En ajoutant une leçon, choisissez le Type de leçon Quiz. Définissez la Note de réussite (%) (1 à 100 ; par défaut 70) et les questions :

  • 1 à 30 questions, chacune avec un énoncé (jusqu’à 1 000 caractères), 2 à 6 options et exactement une correcte (cochez le cercle de l’option). Toutes sont à réponse unique.
  • Une explication facultative par question.
  • Enregistrer remplace tout l’ensemble. Changer le type d’un quiz qui a déjà des tentatives est refusé.

Ce que voit l’élève

L’élève répond à toutes les questions et clique sur Envoyer les réponses ; c’est le serveur qui corrige. Une leçon quiz n’a pas de Marquer comme terminée : c’est la réussite qui termine la leçon.

RésultatCe qui s’affiche
Réussi ! (note égale ou supérieure au minimum)La note, ce qui est juste et faux, la bonne réponse et l’explication de chaque question. La leçon est terminée, une seule fois (les points aussi). Recommencer est permis
Pas cette foisSeulement la note (« Vous avez eu 3 bonnes réponses sur 5 ») et la note minimale. Ni les questions ratées ni les bonnes réponses n’apparaissent : elles ne sont montrées qu’après la réussite. Réessayer est disponible

Il y a 30 tentatives par heure sur chaque leçon. Vos dernières tentatives liste les 10 plus récentes (note, réussie ou non, date et heure dans le fuseau horaire de la communauté) ; personne ne lit la tentative d’une autre personne. La séquence et l’ouverture par date s’appliquent au quiz comme à toute leçon.

Tentatives, meilleure note et note finale

  • Les options sont mélangées à chaque tentative (l’ordre reste le même au sein d’une tentative). L’équipe voit l’ordre écrit.
  • Tentatives autorisées : dans l’éditeur du quiz, de 1 à 100 ; vide signifie illimité (la limite de 30 par heure s’applique toujours). L’élève voit « Tentatives restantes : 2 sur 3 ». Modifier le quiz sans toucher à ce champ garde la limite.
  • La meilleure note compte, pour chaque élève sur ce quiz.
  • Tentatives épuisées sans réussite : la leçon est marquée Non réussi, l’élève passe à la leçon suivante et n’envoie plus de tentatives sur celle-ci.
  • Note finale du cours : la moyenne de la meilleure note de chaque quiz du cours, à poids égal. L’élève voit la Note finale et l’équipe la voit dans l’onglet Élèves.
  • Note minimale pour le certificat (%) (onglet Fin du cours, 0 à 100, facultative) : avec elle, le certificat de fin ne part que lorsque la note finale est égale ou supérieure. Qui est en dessous lit « Vous avez terminé le cours, mais votre note finale (62 %) est inférieure au minimum pour le certificat (70 %). » Vide, terminer suffit. Un cours sans quiz n’utilise pas le minimum, et changer le minimum ne révoque pas les certificats déjà émis.

Ce que voit l’équipe

Les propriétaires, administrateurs, modérateurs et finances voient l’Aperçu de l’équipe : les bonnes réponses et les explications, et ils peuvent tester le quiz. Rien n’est enregistré : ni tentative, ni progression, ni points. Les modérateurs et les finances le font sans s’inscrire.

Modifier quand il y a déjà des tentatives

Qui a déjà réussi reste en réussite et le cours peut se terminer ; les nouvelles tentatives utilisent les nouvelles questions.

Certificat de fin de cours

Qui termine le cours reçoit le certificat tout seul, par e-mail, et le trouve dans Mes certificats, sans que personne de l’équipe ne l’émette un par un. Le réglage vit sur le cours lui-même et est facultatif.

Où c’est

Rôle : propriétaire ou administrateur. Dans Modifier le cours (ou Nouveau cours), dans l’onglet Fin du cours. En mode Un seul cours, il est dans l’étape Cours de l’assistant de création de l’espace, ouverte avec le bouton Suivant. Les modérateurs et les membres ne voient pas l’onglet.

Activer le certificat

Dans Émettre un certificat ?, l’interrupteur commence désactivé. Activé, qui termine le cours reçoit le certificat par e-mail et le trouve dans Mes certificats.

  • Cela ne vaut qu’à partir de maintenant. Les personnes qui avaient déjà terminé le cours avant l’activation n’en reçoivent pas : il n’y a pas d’émission rétroactive. Qui le termine pendant que l’interrupteur est désactivé n’en reçoit pas non plus, même si vous l’activez plus tard.
  • Un certificat par personne et par cours, pour toujours. Terminer à nouveau n’en crée pas un autre. Deux cours avec le même modèle créent deux certificats, un pour chacun.
  • Le désactiver arrête l’émission pour qui termine à partir de là. Les personnes qui ont déjà reçu le leur le gardent.

Choisir le modèle

Le Modèle de certificat vient du module Certificats de la communauté. La liste ne montre que les modèles actifs et a la zone Rechercher des modèles par nom.

  • Le modèle par défaut de la plateforme est le premier de la liste, déjà sélectionné, et c’est celui utilisé quand personne n’en choisit un autre. La plateforme le crée toute seule, avec l’espace Certificats si la communauté n’en a pas encore. Il apparaît dans l’onglet Modèles de l’espace et peut être modifié ou dupliqué comme n’importe quel autre.
  • Si le modèle choisi (ou celui par défaut) est archivé ou supprimé, le cours affiche l’avis « Le modèle choisi a été archivé ou supprimé » et aucun certificat n’est émis jusqu’à ce que quelqu’un choisisse un autre modèle actif ou réactive celui-ci. La plateforme ne change jamais de modèle toute seule et ne réactive pas un modèle archivé.

Modifier le texte

Le Texte du certificat est déjà rempli et modifiable. Le texte par défaut est « a terminé le cours {assunto}[ avec une charge horaire de {cargaHoraria}] ».

VariableCe qui s’affiche
{nome}L’élève
{assunto}Le titre du cours
{cargaHoraria}La charge horaire, déjà avec son unité (« 2 heures », « 0,36 heure »). N’écrivez pas « heures » après
  • Le texte entre [crochets] disparaît quand la variable à l’intérieur est vide.
  • Le HTML n’est pas accepté. La limite est de 5 000 caractères.
  • Rétablir le texte par défaut revient à l’original. L’aperçu à côté utilise le nom « Maria Silva ».

Charge horaire

Il n’y a pas de champ de charge horaire : c’est la somme des durées des leçons, en heures avec jusqu’à 2 décimales (59 minutes deviennent 0,98), et elle est figée au moment de l’émission.

  • Si une leçon n’a pas de durée, le formulaire indique « Indisponible : une leçon n’a pas de durée » et liste ces leçons. Dans ce cas, la charge horaire propre du modèle est utilisée, s’il en a une.
  • Sans l’une ni l’autre, la ligne de charge horaire est omise du certificat.
  • Dans l’assistant du mode un seul cours, il est indiqué « Calculée dès que le cours a des leçons avec une durée ».

La durée de la leçon est facultative sur tous les types de leçon (texte, vidéo, lien ou image), écrite mm:ss ou hh:mm:ss.

Ce que voit l’élève

En terminant la dernière leçon, l’élève voit Votre certificat est en cours de génération. Cela prend quelques secondes, et le certificat arrive aussi par e-mail. Une fois prêt, le message devient Votre certificat est prêt, avec le bouton Voir le certificat. Un certificat en échec ou révoqué n’apparaît pas, et un cours qui n’émet pas n’affiche rien.

Révoquer et réémettre

Cela se fait toujours dans l’écran Certificats (révoquer, réémettre, renvoyer l’e-mail). Un certificat révoqué ne revient pas tout seul : terminer le cours à nouveau n’en crée pas un autre.

La séquence complète, avec les ids qui passent d’une étape à l’autre et les erreurs de qui saute une étape, est dans Ordre de création.

Avec des quiz dans le cours, l’onglet Fin du cours gagne la Note minimale pour le certificat (%) : le certificat ne part qu’avec une note finale égale ou supérieure, et changer le minimum ne révoque pas les certificats déjà émis. Voir Tentatives, meilleure note et note finale.

Vendre le cours

ModèleComment
Cours à l’unitéUn produit qui débloque l’espace du cours (Privé › Produits)
Cours inclus dans l’abonnementL’espace du cours en Privé et débloqué pour le plan, ou Abonnés
Cours gratuit pour les membresL’espace en Membres

Le paiement appartient à l’espace ou au produit, pas au cours : qui a accès à l’espace peut commencer n’importe quel cours publié qui s’y trouve.

Prix et vente du cours lui-même

Le cours a son propre produit, et vous pouvez vendre un cours sans vendre tout l’espace.

Chaque cours est créé avec un produit de type Cours, lié à lui un pour un : brouillon, gratuit, avec le titre et la couverture du cours. Sur la page du cours, en haut de la colonne de droite, l’équipe voit la carte Vente, avec le prix, le statut (Brouillon, En vente ou Hors vente), les places libres, le tag « Équipe seulement » et le bouton qui ouvre le produit pour tout régler. Voir La carte Vente.

  • Un brouillon gratuit ne change rien pour l’élève : l’inscription est ouverte, comme toujours, jusqu’à ce que vous publiiez le produit.
  • Prix et places : définissez le Prix (zéro, c’est un cours gratuit, que l’élève obtient avec S’inscrire gratuitement), les Places et, si vous le souhaitez, un accès limité dans le temps, et publiez. Publier avec un prix exige des Informations commerciales approuvées ; le gratuit, non.
  • Avec le produit publié et un prix, l’élève voit Acheter · {prix} et ne s’inscrit qu’après l’achat (« Ce cours est payant. Achetez-le pour vous inscrire. »). L’achat approuvé inscrit l’acheteur tout de suite.
  • Qui entre sans payer : l’équipe ; qui a un plan qui inclut le cours ; et qui était déjà inscrit quand le produit a été publié. L’accès à l’espace seul ne suffit pas pour un cours payant.
  • Places : complet, le cours affiche « Complet » et la liste d’attente ; quand une place se libère, la personne suivante a 24 heures, par e-mail, pour accepter. Voir Places et liste d’attente.
  • Durée d’accès : l’élève voit « Accès jusqu’au … » et Renouveler les 7 derniers jours ; il reçoit des e-mails 7 jours et 1 jour avant la fin. Voir Accès limité dans le temps.
  • Un remboursement annule l’inscription ; la progression et le certificat déjà émis restent.
  • Dépublier le produit remet le cours en mode ouvert seulement pour les nouvelles inscriptions ; qui a acheté garde l’accès.
  • Qui voit le bouton : le propriétaire, l’administrateur et les finances modifient le produit ; le modérateur voit Voir le prix et la vente, en lecture seule. Les membres ne voient pas le bandeau.
  • Supprimer le cours archive le produit, et est refusé tant qu’il existe un achat payé qui donne encore accès.

Limites actuelles

  • Le certificat automatique ne vaut que pour les personnes qui terminent après l’activation de la fonction. Voir Certificat de fin de cours.
  • La liste des élèves n’a pas de recherche.

Questions fréquentes

Où sont les vidéos ? La leçon vidéo pointe vers une vidéo sur YouTube, Vimeo ou Loom, et elle se lit dans la page elle-même ; ou c’est une vidéo hébergée sur Memberfy. Bunny Stream, Cloudflare Stream, Panda Video et HLS fonctionnent aussi, en collant le lien de la vidéo (voir Vidéo et fichier hébergés).

Puis-je décocher une leçon terminée ? Non. Terminer est définitif, ce qui évite les points répétés dans l’engagement.

Puis-je avoir plusieurs cours dans un espace ? Oui, en mode Liste de cours, qui est le mode par défaut. En mode Un seul cours, l’espace a un cours et n’en accepte pas de deuxième.

Le membre voit-il le cours dans le Feed ? Oui, comme les autres éléments, s’il a accès à l’espace.

L’équipe voit-elle qui suit le cours ? Oui. En commençant, le membre est prévenu que l’équipe suit sa progression. L’onglet Élèves du cours montre qui est inscrit et la progression de chacun (propriétaire, administrateur, modérateur et finances), et le nombre apparaît dans la liste des cours.

Avis par e-mail

Quand vous publiez un cours pour la première fois, l’équipe voit la case Avertir par e-mail · N personnes, cochée par défaut : 10 minutes plus tard, qui a accès à l’espace et a gardé la catégorie Cours activée reçoit un e-mail. Il part une fois par élément ; modifier ou republier ne le renvoie pas. Voir Avis de nouveaux contenus par e-mail.

Dans l’API

POST /api/courses, POST /api/courses/module, POST /api/courses/lesson, PUT /api/courses/{id}, PUT et DELETE /api/courses/module/{moduleId} (renommer, réordonner, supprimer un module avec ses leçons), PUT et DELETE /api/courses/lesson/{lessonId} (modifier, réordonner, déplacer vers un autre module, supprimer une leçon), POST /api/courses/{courseId}/enroll, POST /api/courses/{courseId}/lesson/{lessonId}/progress. Voir Courses.

POST /api/courses/lesson/{lessonId}/media/upload-url (renvoie un envoi valable 10 minutes), POST .../media/confirm et DELETE .../media (propriétaire et administrateur) ; GET /api/courses/{courseId}/lesson/{lessonId}/media renvoie { url, expiresAt } (vidéo 1 heure, fichier 5 minutes). POST /api/courses/lesson accepte awaitingMedia: true et le type file. La leçon porte hasMedia et, pour qui lit le contenu, media: { name, size, mimeType }. GET /api/communities/media-usage montre l’utilisation au propriétaire, avec warning (nearLimit à partir de 80 %, overLimit au-delà de 100 %).

quiz.maxAttempts (1 à 100 ; vide = illimité) à la création et à la modification de la leçon quiz, et certificateMinGrade (0 à 100) sur le cours. La tentative renvoie maxAttempts, attemptsUsed, attemptsLeft, bestScorePercent et closedWithoutPassing ; une tentative après épuisement : 409. Le cours renvoie userFinalGrade à l’élève et finalGrade dans la liste des élèves ; en dessous de la note minimale, userCertificate.status vaut BELOW_MIN_GRADE, avec finalGrade et minGrade.

Quiz. POST /api/courses/lesson et PUT /api/courses/lesson/{lessonId} acceptent le bloc quiz (passPercent 1 à 100, 1 à 30 questions, 2 à 6 options avec exactement un isCorrect, explanation facultative), propriétaire et administrateur seulement ; une erreur de format : 400, avec errors[].param sur le champ (par exemple quiz.questions[0].options) ; changer le type d’un quiz qui a des tentatives : 409. POST /api/courses/{courseId}/lesson/{lessonId}/quiz/attempts envoie les réponses (toutes) et renvoie la note, la réussite et, seulement en cas de réussite, les bonnes réponses ; plus de 30 tentatives par heure sur la leçon : 429, avec Retry-After ; GET sur la même route liste les 10 dernières. POST .../progress avec completed: true sur une leçon quiz : 409.

Dans l’API : les réponses de cours portent product (id, kind, status, price, currency, capacity, available, soldOut ; capacity et available seulement pour l’équipe) et, dans le détail, access (team, open, purchase, plan, grandfathered, paid), canEnter et waitlist. POST /api/courses/{courseId}/enroll répond désormais 403 (avec data: { productId, price, currency }) quand le produit est publié avec un prix et que la personne ne l’a pas acheté, et 409 quand c’est complet. DELETE /api/courses/{id} répond 409 avec un achat payé qui donne encore accès ; sinon il archive le produit.

POST /api/courses/{courseId}/leave (quitter ; un cours terminé répond 409) ; les discussions dans /api/courses/{courseId}/comments (avec lessonId pour la leçon ; PUT et DELETE dans .../comments/{commentId}, les réactions dans .../comments/{commentId}/react et .../react) ; POST et DELETE /api/courses/{courseId}/favorite et GET /api/courses?saved=true ; GET /api/courses/{courseId}/leaderboard (403 avec le classement désactivé). POST et PUT /api/courses acceptent instructorMemberId, learningPoints et leaderboardEnabled (propriétaire et administrateur seulement). Le cours renvoie instructor, learningPoints, studentsCount (pour les membres seulement à partir de 10 élèves, sinon null) et isSaved.

POST et PUT /api/courses acceptent requireSequential (booléen, propriétaires et administrateurs seulement) ; les modules acceptent availableAt (date et heure) ou availableAfterDays (entier de 0 à 3650), jamais les deux (400). Le GET du cours renvoie, sur chaque module et chaque leçon, locked, lockReason (sequence ou date), unlocksAt et, pour la séquence, pendingLesson, et omet body et contentUrl de ce qui est verrouillé. POST /api/courses/{courseId}/lesson/{lessonId}/progress sur une leçon verrouillée répond 409.

Vitrine et « Reprendre là où vous vous êtes arrêté » :

  • GET /api/courses/continue (tout rôle) : les cours en cours de la personne, le plus récent d’abord, chacun avec course (id, slug, title, bannerUrl, coverFormat, spaceId), lesson (la leçon à ouvrir maintenant : id, title, type, duration, moduleId, moduleTitle), resumeAt (la seconde dans la vidéo ; null sans position), lastAccessedAt et progress. limit de 1 à 20 (par défaut 10). Seulement les cours publiés, avec une inscription active, dans un espace que la personne ouvre.
  • coverFormat (BANNER, POSTER ou VIDEO ; par défaut BANNER) dans POST et PUT /api/courses et dans toute lecture de cours. Toute autre valeur renvoie 400. Le cours créé avec un espace Un seul cours commence en BANNER.
  • layout: "showcase" (Vitrine) dans POST et PUT /api/spaces, seulement dans le module courses ; GET /api/spaces/modules le liste parmi les options de Cours.

Nouveau avec l’édition dans le tableau de bord :

  • GET /api/courses/{id}/enrollments : la liste de l’onglet Élèves, paginée (page, limit), de l’inscription la plus récente à la plus ancienne. Propriétaire, administrateur, modérateur et finances (lecture) ; un membre reçoit 403. Une inscription annulée ne compte pas, et totalCount est le stats.enrollments du cours.
  • PUT /api/courses/{courseId}/modules/order et PUT /api/courses/module/{moduleId}/lessons/order : enregistrent l’ordre de tous les modules (ou de toutes les leçons d’un module) d’un coup. La liste doit être exactement ce qui existe ; sinon 400 et rien ne change.
  • moduleConfig.mode de l’espace Cours : "multi" (liste, par défaut) ou "single" (Un seul cours). Toute autre valeur, 400. Dans POST /api/spaces, course (title, level, description) crée l’espace et le cours ensemble, en mode single.
  • Erreurs de mode : un deuxième cours dans un espace single et un passage en single avec 2 cours ou plus renvoient 409, avec le message sur le champ (spaceId et moduleConfig.mode). Un slug répété, un titre vide et un niveau invalide renvoient 400 sur le champ. Le cours commence toujours en brouillon.
  • Le stats.enrollments du GET du cours ne revient que pour l’équipe (propriétaire, administrateur, modérateur et finances) ; pour le membre, stats revient vide.
  • Dans chaque module et chaque leçon du GET du cours, studentsWithProgress (propriétaire et administrateur seulement) compte les élèves qui y ont de la progression.

Deux règles pour qui consomme l’API : le GET du cours omet body et contentUrl des leçons pour qui n’est ni propriétaire ni administrateur et n’est pas inscrit, et s’inscrire à nouveau renvoie 200 avec l’inscription qui existe déjà.

Certificat de fin de cours :

  • POST et PUT /api/courses (et course dans POST /api/spaces) acceptent le bloc certificate : enabled, templateId et text. Propriétaire et administrateur seulement. Qui active le certificat n’envoie pas la date : le serveur l’enregistre quand l’interrupteur passe de désactivé à activé, et seules les personnes qui terminent après y ont droit.
  • templateId est un modèle actif de la même communauté ; sans lui, le modèle par défaut de la plateforme s’applique. text est du texte simple, sans HTML, jusqu’à 5 000 caractères.
  • GET /api/courses/{id} renvoie certificate (le réglage, avec la charge horaire calculée) au propriétaire et à l’administrateur, et userCertificate (PENDING ou ISSUED, avec id, code et verificationUrl) à l’élève qui a terminé. Un certificat en échec ou révoqué n’y apparaît pas.
  • GET /api/certificates/templates fonctionne sans spaceId pour le propriétaire et l’administrateur : il liste les modèles actifs de tous les espaces Certificats, le modèle par défaut de la plateforme d’abord, et accepte q pour chercher par nom.
  • Nouvelles erreurs : certificate.templateId (404 pour un modèle d’une autre communauté, 400 pour un modèle archivé ou supprimé) et certificate.text (400 pour un texte avec HTML ou au-delà de la limite).

Voir aussi