¿Cómo estructurar Discourse para un curso en línea?

@dax ¿Sigue siendo el caso en 2020 que no se pueden limitar las publicaciones en un tema a los usuarios del grupo del autor?

Queremos usar Discourse con nuestro sistema de aprendizaje en línea… deseamos tener un conjunto de unos siete temas a través de los cuales avancen diferentes cohortes (grupos) de usuarios, de modo que solo puedan ver las publicaciones dentro de su grupo. Preferiríamos tener un solo conjunto de temas en lugar de crear los mismos temas una y otra vez para cada nueva cohorte.

¿Quizás haya aparecido alguna otra nueva función en el ínterin que haga esto posible? Gracias por cualquier idea.

2 Me gusta

Lo sentimos, tu pregunta no está clara y parece no tener relación.

Puedes crear categorías y estas pueden protegerse mediante grupos.

Lo que @HappyGezim está solicitando es una función personalizada de “susurro” dentro de un tema, y esto no está en nuestra hoja de ruta.

@sam ¡Gracias por tu rápida respuesta! Intentaré aclarar nuestro escenario exacto:

  • Tenemos cuatro categorías configuradas, una para cada uno de los cuatro cursos que ofrecemos.

  • En cada categoría (curso) tenemos aproximadamente de 5 a 10 temas, uno por cada “lección” del curso… además de algunos adicionales como “Preguntas técnicas”, “Preséntate”, etc. A medida que llega cada lección, se pide a los estudiantes que contribuyan al tema relacionado.

  • Vamos a tener muchos grupos de estudiantes que avanzarán por estos cursos, y queremos limitar las publicaciones en un tema a su “grupo” de cohorte. De esta manera, mantenemos las mismas categorías y temas estáticos y solo modificamos las propiedades de los usuarios para asignarlos a diferentes grupos, los cuales podríamos crear (?) mediante la API y asignar dinámicamente a los estudiantes (?).

Ese es el contexto que me llevó a fijarme en la pregunta principal: “¿Dentro de un tema específico, puedo crear un mensaje que solo sea visible para los usuarios que pertenecen a un grupo específico?”

1 me gusta

Daniel, también tengo un curso que gestiono a través de Discourse. Utilizo una categoría y subcategoría que permiten la restricción más sencilla.

Categoría: Curso Acme
Subcategoría: 2020-05 - Conversaciones del curso

Los estudiantes de un cohorte específico solo ven una subcategoría.

No es perfecto, pero funciona.

2 Me gusta

@waffleslop Genial. Gracias. ¿Crees esas subcategorías manualmente cada vez que tienes un nuevo grupo? (¿o quizás mediante API?)

Esperaba evitar eso, ya que para cada grupo tendré que configurar los mismos 5 a 10 nuevos temas en una subcategoría. También podríamos tener varios grupos simultáneos avanzando en cualquier ejecución del curso, lo que significaría que tendría que ser creativo con los nombres. Así que, basándome en tu ejemplo…
2020-05-grupo-A Conversaciones del curso
… o quizás hay una manera de crear sub-sub-subcategorías; aún no he revisado eso.

Gracias nuevamente por tus comentarios.

3 Me gusta

Coloca esos temas en categorías de solo lectura.

Cuando tengas una nueva cohorte, crea una nueva categoría para ella. Pide a los estudiantes que hagan clic en el icono :link: y luego en “nuevo tema” para crear un tema nuevo para esa tarea dentro de la categoría de la cohorte. Les pedí que etiquetaran cada tarea con una etiqueta de tarea para facilitar el seguimiento de si y cuándo las personas habían completado la tarea (y creé insignias que se otorgaban si “me gustaba” su tema; incluso escribí un script para hacerlo con todos ellos, generar un archivo CSV y subirlo al LMS de la universidad que no quería usar).

3 Me gusta

@pfaffman Gracias por tu aporte.

Mi idea inicial era utilizar subcategorías para agrupar cohortes bajo un curso, pero luego vi esto en la interfaz de usuario al crear una subcategoría:

¿Tengo razón al pensar que esto significa que no hay forma de usar subcategorías para agrupar cohortes bajo un curso y luego usar permisos de grupo para limitarlas a esa subcategoría? @waffleslop, ¿pudiste limitar por subcategoría en tu enfoque? Tal vez estoy interpretando mal ese mensaje de la interfaz.

Si no se puede limitar una subcategoría a un grupo, @pfaffman, creo que tu enfoque (gracias por explicarlo), donde creas una nueva categoría para cada cohorte, probablemente sea la única opción.

Dado que nuestros 10 o más temas en cada curso están bastante fijos, con nombres y numeración específicos, etc., estoy pensando en crearlos mediante la API cada vez que se crea una nueva cohorte en nuestro sistema. Así que para cada nueva cohorte que creemos en nuestro LMS, usaré la API para:

  • crear una nueva categoría en Discourse para esa cohorte
  • crear un nuevo grupo en Discourse con acceso a esa categoría
  • crear los 10 o más temas correctos en la nueva categoría.
  • cada vez que se agregue un estudiante a una cohorte en nuestro LMS, agregarlo al grupo correcto en Discourse (y eliminarlo si se va)

¿Alguna vez probaste este enfoque en lugar de depender de que el estudiante cree el tema por sí mismo? Me pregunto sobre diferentes estudiantes creando temas con nombres ligeramente diferentes para la misma tarea en el curso.

No estoy claro sobre tu sugerencia de usar “categorías de solo lectura” para un aspecto de este problema.

¡Muchas gracias por tomarte el tiempo de escribir tus ideas!

2 Me gusta

Este es el formato:

Categoría: Curso Acme
Grupos: 2020-01_cohort, 2020-05_cohort

Subcategorías:

  • 2020-01 - Conversaciones del curso (Grupo: 2020-01_cohort)
  • 2020-05 - Conversaciones del curso (Grupo: 2020-05_cohort)
3 Me gusta

Aja. Gracias @waffleslop. Ok, entonces estás diciendo que puedes limitar la subcategoría al grupo y, por lo tanto, prohibir el acceso a otras subcategorías. He malinterpretado el mensaje de la interfaz que copié arriba. :zipper_mouth_face:

Por lo tanto, nuestro enfoque probablemente será utilizar la API para:

  • crear una nueva subcategoría en Discourse para cada cohorte
  • crear un nuevo grupo en Discourse con acceso a esa subcategoría (así como a la categoría principal, según el mensaje de la interfaz anterior)
  • crear las 10 o así temas correctos en la nueva subcategoría.
  • cada vez que se agregue un estudiante a una cohorte en nuestro LMS, agregarlo al grupo correcto en Discourse (y eliminarlo si se va)
2 Me gusta

Estoy bastante seguro de que el padre puede ser de solo lectura mientras que las subcategorías están restringidas únicamente a ese grupo.

Sí puedes, pero de esta manera necesitas crear (y mantener, a menos que las hagas perfectas a la primera) las categorías de solo lectura con las instrucciones solo una vez, y cuando crees una cohorte, solo necesitas crear la única subcategoría.

Creo que por eso usé etiquetas. Etiquetarán el tema con la etiqueta de la tarea y luego el tema puede ser descriptivo, pero no dañará nada si eligen una etiqueta tonta.

4 Me gusta

Para cualquiera que adopte el enfoque descrito anteriormente, es decir, utilizar subcategorías para cada ‘cohorte’ del curso y repetir los temas de discusión en cada una, asegúrese de habilitar la configuración ‘permitir títulos de temas duplicados’; de lo contrario, Discourse no le permitirá repetir los mismos temas en cada subcategoría.

2 Me gusta

Esta es parte de la razón por la que me gusta mi solución de tener una sola categoría de solo lectura con el contenido y que los estudiantes discutan ese contenido con nuevos temas en la categoría específica de cada cohorte.

4 Me gusta

Hola @Daniel_McQuillen. Tenía curiosidad sobre cómo te fue con tu curso. Estoy considerando impartir tres cursos, cada uno con varias cohortes, y me interesaba conocer tu experiencia hasta ahora.

Además, ¿vas a caducar alguno de tus cursos o el acceso a las discusiones?

Gracias de antemano por compartirlo, Hunter

4 Me gusta

Hola Hunter,

Actualmente estamos en fase beta, pero la integración con Discourse va muy bien. Estamos utilizando la integración SSO para obligar el inicio de sesión en nuestro sitio. Ha funcionado sin problemas, aunque he notado lo siguiente:

  1. Discourse no acepta nombres de usuario que contengan el símbolo “@”… recorta el nombre de usuario hasta la primera parte antes del “@”. Esto puede causar problemas si luego llamas a las API de Discourse usando ese nombre de usuario como argumento. Discourse no reconocerá un nombre de usuario como someone@example.com, ya que en Discourse el nombre de usuario de ese usuario se almacena como “someone”. Una forma sencilla de evitar esto es prohibir el uso del símbolo “@” en tus propios nombres de usuario.

  2. Cuando alguien se registra en tu propio sitio, debes llamar explícitamente a la API de Discourse para sincronizar al usuario SSO, ya que podrías querer realizar acciones con ese usuario (por ejemplo, agregarlo a un grupo de Discourse) antes de que visite el sitio de Discourse por primera vez (lo cual sincronizaría automáticamente el SSO). Tengo un sitio basado en Django, por lo que estoy utilizando la biblioteca pydiscourse, la cual cuenta con un método sync_sso que facilita mucho esta tarea (pydiscourse · PyPI).

Sí, caducaremos algunos de nuestros cursos. En ese caso, el servidor llamará a la API de Discourse para eliminar al usuario del grupo general de ese curso, así como del grupo dedicado a su cohorte dentro de ese curso.

He creado tablas en mi sitio Django que rastrean estos grupos de “curso” y los diversos grupos de “cohorte” dentro de cada curso. Así que utilizo esa información al agregar o eliminar estudiantes, etc.:

2 Me gusta