Isolation par catégorie

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 »