Aislamiento por categoría

Como seguimiento, aquí explico cómo imagino que se satisfacen mejor sus necesidades con las funciones listas para usar de Discourse. Puede que no sea exactamente lo que tiene en mente, pero creo que vale la pena considerarlo como punto de partida para la discusión.

Primero, hago algunas suposiciones, que pueden ser válidas o no. Por favor, hágame saber dónde me equivoco:

  1. Habrá muchos cursos (decenas, posiblemente cientos).
  2. La configuración de los cursos ocurrirá periódicamente, en lotes considerables, al comienzo de cada trimestre (2-4 veces al año).
  3. Los cursos tendrán una fecha de finalización.
  4. Las personas que administran los cursos necesitan tener cierta capacidad para configurarlos por sí mismas.
  5. Las personas que administran los cursos tendrán poca o ninguna experiencia en la gestión de un sitio de Discourse.
  6. Las personas que administran los cursos solo necesitan ver los suyos. Es posible que deseen ver otros ocasionalmente como ejemplos, pero no necesitan participar continuamente en ellos.
  7. ^ lo mismo para las personas que toman cursos.
  8. Hay un equipo muy pequeño que administra el sistema en su conjunto.
  9. Los cursos no necesitan realmente subcategorías; usar etiquetas para organizar el contenido dentro de los cursos sería suficiente.

Dado que estas suposiciones son cercanas, aquí está lo que sugeriría, primero a un alto nivel:

  1. Cree un pequeño número de categorías de nivel superior: una para “Cursos Actuales”, una para “Cursos Pasados”, una para “Próximos Cursos” y una o más para cosas más generales sobre el sistema en sí (por ejemplo, cómo usar el sitio).
  2. Configure el estilo de la página de inicio como “cuadros con categorías” para que se muestren de forma destacada.
  3. Utilice subcategorías para cada curso.
  4. Créelos en “Próximos Cursos”.
  5. Muévalos a “Cursos Actuales” cuando comience el trimestre.
  6. Cuando un curso concluya, muévalo de “Cursos Actuales” a “Cursos Pasados”.
  7. Controle el acceso a los Cursos utilizando Grupos (más detalles a continuación).

Control de acceso:

  1. Para cada curso, cree un conjunto de los siguientes grupos, por ejemplo: foo_interesado, foo_inscrito, foo_admin.
  2. Cree dos grupos adicionales: “explorar_cursos” y “explorar_cursos_pasados”.
  3. Configure las categorías en “Próximos Cursos” y “Cursos Actuales” para que solo sean accesibles para las personas en los grupos del curso específico y las personas en el grupo “explorar_cursos”.
  4. Configure las categorías en “Cursos Pasados” para que solo sean accesibles para las personas en los grupos del curso específico y las personas en el grupo “explorar_cursos_pasados”.

Experiencia de usuario para grupos y cursos:

  1. Tenga un tema fijado en la categoría superior de “Próximos Cursos” que explique cómo explorar cursos, con una forma sencilla para que las personas se unan al grupo “explorar_cursos”.
  2. ^ lo mismo para “Cursos Actuales”.
  3. ^ lo mismo para “Cursos Pasados”.

Para cursos individuales, tenga un tema fijado en la categoría que explique cómo unirse al curso:

  1. Únase al grupo foo_interesado y/o foo_inscrito.
  2. Agregue el curso a su barra lateral.

La administración será un poco laboriosa al principio, ya que para cada curso nuevo alguien con los privilegios apropiados deberá:

  1. Crear la categoría.
  2. Crear los grupos.
  3. Crear el tema fijado.
  4. Agregar a las personas al grupo _admins.
  5. Proporcionarles la documentación que necesitan para administrar su propio curso.

Parte de eso podría automatizarse con algunas herramientas ligeras. Dependiendo de quién sea el equipo de administración principal, puede tener sentido comenzar con algo fuera de banda que simplemente acceda a la API. O tal vez necesite algo más basado en UI que esté integrado en Discourse como un componente de tema o un plugin. Pero sugeriría comenzar de forma sencilla aquí, y centrarse primero en definir un proceso que funcione, y luego diseñar las herramientas en torno a él.

La escalabilidad de las categorías es una posible preocupación aquí. Discourse tiene algunos problemas de rendimiento y usabilidad cuando el número de categorías es demasiado grande (cientos o miles). Los usuarios con acceso a más categorías sentirán el impacto de esto, mientras que aquellos con acceso limitado no lo harán. Esa es parte de la motivación para limitar el acceso a las categorías como he descrito.

Estoy muy interesado en escuchar cualquier comentario o pregunta que tenga sobre lo anterior.

1 me gusta