Isolation par catégorie

Je voudrais exécuter une instance Discourse unique pour un programme universitaire, où différentes catégories de niveau supérieur correspondent à différents cours, et où l’accès est géré par des groupes. Pour que les instructeurs et les apprenants des cours aient une impression cohérente d’un cours, je voudrais offrir un sentiment d’isolement des différents cours. Je voudrais donc que mon instance offre une expérience de navigation similaire à Teams/Slack/Mattermost, où il y a des équipes relativement isolées, et où les utilisateurs doivent passer de l’une à l’autre. Pour mon instance, cela signifierait que l’interface utilisateur met l’accent sur les données relatives au cours actuellement sélectionné. Ainsi, par exemple, les utilisateurs passent la plupart de leur temps dans l’une des catégories de niveau supérieur, et la sélection de l’une d’entre elles filtre les sous-catégories et les canaux de discussion qu’ils peuvent facilement voir.

Un besoin similaire se présente sur une instance où différentes catégories correspondent à différents groupes de recherche (je voudrais en exécuter une comme ça aussi).

Quels sont les outils existants qui peuvent aider à réaliser cela ?

4 « J'aime »

Cas d’utilisation intéressant ! Une solution possible consiste simplement à masquer les catégories qui ne sont pas pertinentes, afin qu’elles n’apparaissent pas dans les listes de sujets.

Je ne souhaite pas qu’ils soient réellement mis en sourdine : un étudiant suivra probablement plusieurs cours à la fois, et les notifications de tous sont acceptables. C’est plutôt que je veux donner une impression plus claire de « maintenant, je regarde le cours X ».

1 « J'aime »

En fait, il semble que j’aurais besoin de quelque chose comme ceci

Mais avec un “accueil” sélectionnable.

Il semble que le groupe principal = l’accueil sélectionné, n’est-ce pas ? Vous devez activer user_selected_primary_groups afin que les utilisateurs puissent changer leur groupe principal sur la page de leurs préférences de compte.

2 « J'aime »

Idéalement, je voudrais quelque chose de plus éphémère et de moins visible publiquement. Cependant, j’imagine que si je n’utilise pas le titre et le flair, alors un composant d’interface utilisateur qui bascule le groupe principal fonctionnerait comme un sélecteur d’équipe.

Quelque chose comme le sélecteur de barre latérale supplémentaire qui a été exécuté ici à titre d’expérience il y a quelques jours serait idéal pour cela.

Vous pourriez faire cela. Vous pourriez également changer le logo du site en fonction de leur groupe principal ; je l’ai fait pour un site qui a plusieurs universités partageant une instance. Peut-être auriez-vous un composant de thème avec une liste déroulante dans la barre supérieure qui leur permettrait de sélectionner leur groupe principal (et peut-être de dire « classe » au lieu de « groupe »).

@Anton_Akhmerov espères-tu le faire toi-même ou serais-tu prêt à payer quelqu’un pour le faire à ta place ? Fais-moi savoir !

Si tu veux le faire toi-même, j’aimerais déplacer ceci dans Dev afin que tu puisses y travailler et faire un compte-rendu à la communauté et obtenir l’avis des autres membres. Déplaçons ceci dans Dev.

Si tu veux payer quelqu’un, je le déplacerai dans Marketplace.

Dev s’il vous plaît :folded_hands: :smiling_face_with_sunglasses:

Aussi, si quelqu’un dans Dev a des conseils, ce serait absolument merveilleux :heart_eyes:

Je pense qu’il serait préférable de déplacer ceci vers Community et de discuter davantage de votre cas d’utilisation, de la meilleure façon de répondre à vos besoins aujourd’hui, et de faire de la place pour d’autres qui auraient pu avoir des besoins similaires et les avoir résolus.

Ensuite, s’il y a des lacunes spécifiques identifiées que vous jugez suffisamment importantes pour les construire vous-même ou pour les défendre, nous pourrons créer des sujets distincts dans Feature et/ou Dev pour ces idées.

Cela correspond-il à votre réflexion ? Ou êtes-vous déjà dans la phase « Je suis prêt à construire les pièces manquantes » ?

1 « J'aime »

#communauté a du sens aussi :grin:. La fonctionnalité semble délicate et semble quelque peu alignée sur les besoins de la communauté, compte tenu de la popularité des demandes de ce type

Je prévois de travailler dessus, mais jusqu’à présent, mon plan est plutôt vague.

2 « J'aime »

Pour faire suite, voici comment j’imagine le mieux répondre à vos besoins avec les fonctionnalités intégrées de Discourse. Ce n’est peut-être pas exactement ce que vous avez en tête, mais je pense que cela vaut la peine d’être considéré comme point de départ pour la discussion.

Tout d’abord, je fais quelques suppositions, qui peuvent être valides ou non. Veuillez me faire savoir où je me trompe :

  1. Il y aura de nombreux cours (des dizaines, voire des centaines)
  2. La mise en place des cours se fera périodiquement, par lots importants, au début de chaque trimestre (2 à 4 fois par an)
  3. Les cours auront une date de fin de vie
  4. Les personnes qui gèrent les cours doivent avoir une certaine capacité à les mettre en place elles-mêmes
  5. Les personnes qui gèrent les cours auront une expérience limitée, voire nulle, de la gestion d’un site Discourse.
  6. Les personnes qui gèrent les cours n’ont vraiment besoin de voir que les leurs. Elles peuvent vouloir voir les autres occasionnellement comme exemples, mais n’ont pas besoin d’une participation continue à ceux-ci.
  7. ^ Idem pour les personnes qui suivent les cours
  8. Il y a une très petite équipe qui gère le système dans son ensemble
  9. Les cours n’ont pas vraiment besoin de sous-catégories ; l’utilisation de tags pour organiser le contenu au sein des cours serait suffisante

Étant donné que ce sont des hypothèses proches, voici ce que je suggérerais, d’abord à un niveau élevé :

  1. Créez un petit nombre de catégories de premier niveau : une pour « Cours actuels », une pour « Cours passés », une pour « Cours à venir » et une ou plusieurs pour des choses plus générales concernant le système lui-même (par exemple, comment utiliser le site)
  2. Définissez le style de la page d’accueil sur « boîtes avec catégories » afin qu’elles soient bien visibles
  3. Utilisez des sous-catégories pour chaque cours
  4. Créez-les dans « Cours à venir »
  5. Déplacez-les dans « Cours actuels » lorsque le trimestre commence
  6. Lorsqu’un cours se termine, déplacez-le de « Cours actuels » à « Cours passés »
  7. Contrôlez l’accès aux cours à l’aide de groupes (plus de détails ci-dessous)

Contrôle d’accès :

  1. Pour chaque cours, créez un ensemble de groupes suivants, par exemple : foo_interested, foo_enrolled, foo_admin
  2. Créez deux groupes supplémentaires : « browse_courses » et « browse_past_courses »
  3. Définissez les catégories dans « Cours à venir » et « Cours actuels » pour qu’elles ne soient accessibles qu’aux personnes des groupes du cours spécifique et aux personnes du groupe « browse_courses ».
  4. Définissez les catégories dans « Cours passés » pour qu’elles ne soient accessibles qu’aux personnes des groupes du cours spécifique et aux personnes du groupe « browse_past_courses ».

Expérience utilisateur pour les groupes et les cours

  1. Ayez un sujet épinglé dans la catégorie de premier niveau pour « Cours à venir » qui explique comment parcourir les cours, avec un moyen simple pour les personnes de rejoindre le groupe « browse_courses ».
  2. ^ Idem pour « Cours actuels »
  3. ^ Idem pour « Cours passés »

Pour les cours individuels, ayez un sujet épinglé dans la catégorie expliquant comment rejoindre le cours :

  1. Rejoignez le groupe « foo_interested » et/ou « foo_enrolled »
  2. Ajoutez le cours à votre barre latérale

L’administration sera un peu laborieuse au début, car pour chaque nouveau cours, une personne ayant les privilèges appropriés devra :

  1. Créer la catégorie
  2. Créer les groupes
  3. Créer le sujet épinglé
  4. Ajouter les personnes au groupe _admins
  5. Leur fournir la documentation dont elles ont besoin pour gérer leur propre cours

Certaines de ces tâches pourraient être automatisées avec des outils légers. Selon l’équipe d’administration principale, il peut être judicieux de commencer par quelque chose hors bande qui utilise simplement l’API. Ou peut-être avez-vous besoin de quelque chose de plus basé sur l’interface utilisateur, intégré à Discourse en tant que composant de thème ou plugin. Mais je suggérerais de commencer modestement ici, et de vous concentrer d’abord sur la définition d’un processus qui fonctionne, puis de concevoir les outils autour de cela.

La mise à l’échelle des catégories est une préoccupation possible ici. Discourse présente quelques problèmes de performance et d’UX lorsque le nombre de catégories devient trop important (plusieurs centaines ou milliers). Les utilisateurs ayant accès à plus de catégories en ressentiront l’impact, tandis que ceux ayant un accès limité ne le ressentiront pas. C’est l’une des motivations pour limiter l’accès aux catégories comme je l’ai décrit.

Je suis très intéressé d’entendre tous vos commentaires ou questions sur ce qui précède.

1 « J'aime »

Salut @mcwumbly, merci pour cette description détaillée et réfléchie.

Ce que vous décrivez est en effet proche de ce que j’ai en tête, avec quelques différences.

Après avoir géré une instance unique pour un cours pendant environ 5 ans, j’ai réalisé qu’il était beaucoup moins laborieux de masquer ou de déplacer des discussions obsolètes que de recréer une instance de cours à partir de zéro. Donc, en pratique, l’espace de discussion pour un cours est fixe, mais la plupart des sujets ont une fin de vie.

J’imagine principalement que les équipes de cours devront gérer un cours plutôt que de le configurer.

Nos cours comptent environ 200 étudiants et une équipe de cours d’environ 10 personnes, y compris les assistants d’enseignement. Cela justifie au moins plusieurs catégories :

  • Questions et réponses sur le contenu (les étudiants postent, l’équipe du cours répond)
  • Organisation du cours (identique à ci-dessus, mais uniquement pour les questions organisationnelles)
  • Annonces (l’équipe du cours poste, les étudiants peuvent répondre)
  • Questions sur les notes (les étudiants postent, seule l’équipe du cours peut voir et répondre).
    Je prévois de traiter ce point en utilisant Private Topics Plugin et Assigning based on post content.
  • Discussion de l’équipe du cours (visible uniquement par l’équipe du cours)

Je pense que l’utilisation de sous-catégories répondra à ce besoin.

Je me rends compte qu’on pourrait créer un regroupement de ce qui précède à l’échelle de l’instance, similaire à ce que vous décrivez, mais il semble plus raisonnable de mettre tout cela dans une seule catégorie.

Dans l’ensemble, je pense que les capacités actuelles de Discourse conviennent bien à ce cas d’utilisation, à l’exception de la fonctionnalité purement frontale qui consiste à donner à un membre de l’équipe du cours ou à un étudiant le sentiment qu’il regarde un seul cours, plutôt que tous les cours à la fois.

Le composant thématique de la documentation est un peu similaire dans la mesure où il permet à l’utilisateur d’“entrer” dans une catégorie, mais il ne permet pas de “rester” facilement dans une catégorie.

1 « J'aime »

Oui, déplacer des sujets en masse est un peu fastidieux, mais réaffecter une catégorie entière de « cours actuels » à « cours passés » serait assez facile, je pense.

Les avantages de le faire sont que chaque semestre pourrait commencer frais.

Cela pourrait cependant être un inconvénient, selon que vous pensez que le contenu des semestres précédents est précieux ou préjudiciable, et combien d’efforts il faut à votre équipe pour créer de nouvelles catégories pour chaque semestre.

Avoir des catégories qui durent indéfiniment réduit certainement cet effort. Si c’est réalisable, ça semble génial.

Et si cela devient un problème d’avoir du vieux contenu pour toujours, peut-être que c’est « un bon problème à avoir », cela ne devrait pas être trop grave de passer plus tard au modèle que j’ai suggéré.

Je pense que votre théorie est solide.

Avoir des sous-catégories pour chacune de ces activités au sein de chaque catégorie de cours semble raisonnable.

Je pense que cela dépend encore un peu de la confiance que vous avez dans la justification de la complexité supplémentaire, et si c’est le cas, si c’est la bonne forme.

Vous pourriez utiliser une balise restreinte pour les annonces à la place, ce qui présente certains avantages.

Les deux derniers pourraient être gérés via des messages privés de groupe au lieu d’une catégorie.

Je pense que les deux options méritent d’être considérées. Il y a des compromis entre elles.

Au fur et à mesure que vous approfondirez la configuration, continuez à poser des questions lorsque vous les rencontrerez.

Et quelle que soit la direction que vous choisirez pour commencer, j’aimerais avoir des mises à jour occasionnelles sur la façon dont les choses se déroulent !

2 « J'aime »

Un composant de thème pourrait, par exemple, changer l’icône et la faire pointer vers la page d’accueil du cours plutôt que vers la page globale.

J’ai commencé à utiliser Discourse pour enseigner des cours sur la technologie pédagogique lorsque j’étais professeur d’éducation.

J’utilisais une catégorie pour le matériel de cours et demandais aux étudiants de répondre en tant que sujet lié pour soumettre leur travail (dans des catégories publiques). Dans un sujet de niveau semestriel, un syllabus faisait référence au matériel de cours canonique en indiquant quand faire quoi. J’utilisais ensuite un ensemble de tags pour indiquer quels sujets devaient être notés et j’ai écrit un script qui vérifiait si j’aimais un sujet pour indiquer si j’avais approuvé le travail.

J’ai écrit un script qui mettait à jour un fichier CSV du système de gestion de l’apprentissage (LMS) de l’université pour faciliter le téléchargement des notes.

Ce que j’ai le plus apprécié, et dont j’aurais peut-être parlé si j’avais été un meilleur universitaire (et si je n’avais pas quitté cet emploi), c’est que je mettais à jour les devoirs pendant le cours pour corriger les éléments peu clairs, plutôt que d’attendre l’année suivante pour apporter des améliorations. Et comme toutes les modifications étaient disponibles dans l’historique, les étudiants étaient libres de faire la version du devoir qu’ils voulaient (ou avaient faite avant que je ne la modifie). Je pense toujours qu’améliorer le cours à la volée plutôt que d’attendre un an en espérant se souvenir des problèmes était une excellente idée.

4 « J'aime »