Me gustaría ejecutar una única instancia de Discourse para un programa universitario, donde las diferentes categorías de nivel superior corresponden a diferentes cursos y donde el acceso se gestiona mediante grupos. Para que los instructores y alumnos del curso puedan tener una impresión coherente de un curso, me gustaría proporcionar una sensación de aislamiento de los diferentes cursos. Por lo tanto, me gustaría que mi instancia ofreciera una experiencia de navegación similar a Teams/Slack/Mattermost, donde hay equipos relativamente aislados y los usuarios necesitan cambiar de uno a otro. Para mi instancia, esto significaría que la interfaz de usuario enfatiza los datos relacionados con el curso seleccionado actualmente. Por ejemplo, los usuarios pasan la mayor parte del tiempo en una de las categorías de nivel superior, y la selección de una de ellas filtra las subcategorías y los canales de chat que pueden ver fácilmente.
Una necesidad similar surge en una instancia donde las diferentes categorías corresponden a diferentes grupos de investigación (también me gustaría ejecutar una de ese tipo).
¿Qué herramientas existentes pueden ayudar a lograr esto?
¡Caso de uso interesante! Una solución posible es simplemente silenciar las categorías que no están relacionadas, para que no aparezcan en las listas de temas.
En realidad no quiero que se silencien: es probable que un estudiante siga varios cursos a la vez y las notificaciones de todos están bien. Más bien, quiero dar una impresión más clara de “ahora estoy mirando el curso X”.
Parece que grupo principal = inicio seleccionado, ¿no? Necesitas habilitar user_selected_primary_groups para que los usuarios puedan cambiar su grupo principal en la página de preferencias de su cuenta.
En el mejor de los casos, querría algo más efímero y menos visible públicamente. Sin embargo, me imagino que si no uso el título y el flair, entonces un componente de interfaz de usuario que cambie el grupo principal funcionaría como un selector de equipo.
Algo como el selector lateral adicional que se ejecutó aquí como experimento hace unos días sería genial para eso.
Podrías hacer eso. También podrías cambiar el logo del sitio dependiendo de su grupo principal; lo he hecho para un sitio que tiene varias universidades compartiendo una instancia. Quizás tendrías un componente temático con un menú desplegable en la barra superior que les permitiría seleccionar su grupo principal (y tal vez decir “clase” en lugar de “grupo”).
@Anton_Akhmerov ¿esperas hacerlo tú mismo o estarías dispuesto a pagarle a alguien para que lo haga por ti? ¡Avísame!
Si quieres hacerlo tú mismo, me gustaría mover esto a Dev para que puedas trabajar en ello allí e informar a la comunidad y recibir aportes de otros miembros. Moveré esto a Dev.
Si quieres pagarle a alguien, lo moveré a Marketplace.
Creo que sería mejor mover esto a Community y discutir más sobre tu caso de uso, cómo satisfacer mejor tus necesidades hoy y dejar espacio para que otros que hayan tenido necesidades similares las hayan resuelto.
Luego, si se identifican brechas de producto específicas que consideras lo suficientemente importantes como para crearlas tú mismo o abogar por ellas, podemos crear temas separados en Feature y/o Dev para estas ideas.
¿Suena alineado con tu pensamiento aquí? ¿O ya estás en la fase de “Estoy listo para construir las piezas que faltan”?
#comunidad también tiene sentido . La función parece complicada y parece estar algo alineada con las necesidades de la comunidad, considerando la popularidad de solicitudes como esta
Tengo la intención de trabajar en esto, pero hasta ahora mi plan es bastante vago.
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:
Habrá muchos cursos (decenas, posiblemente cientos).
La configuración de los cursos ocurrirá periódicamente, en lotes considerables, al comienzo de cada trimestre (2-4 veces al año).
Los cursos tendrán una fecha de finalización.
Las personas que administran los cursos necesitan tener cierta capacidad para configurarlos por sí mismas.
Las personas que administran los cursos tendrán poca o ninguna experiencia en la gestión de un sitio de Discourse.
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.
^ lo mismo para las personas que toman cursos.
Hay un equipo muy pequeño que administra el sistema en su conjunto.
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:
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).
Configure el estilo de la página de inicio como “cuadros con categorías” para que se muestren de forma destacada.
Utilice subcategorías para cada curso.
Créelos en “Próximos Cursos”.
Muévalos a “Cursos Actuales” cuando comience el trimestre.
Cuando un curso concluya, muévalo de “Cursos Actuales” a “Cursos Pasados”.
Controle el acceso a los Cursos utilizando Grupos (más detalles a continuación).
Control de acceso:
Para cada curso, cree un conjunto de los siguientes grupos, por ejemplo: foo_interesado, foo_inscrito, foo_admin.
Cree dos grupos adicionales: “explorar_cursos” y “explorar_cursos_pasados”.
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”.
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:
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”.
^ lo mismo para “Cursos Actuales”.
^ lo mismo para “Cursos Pasados”.
Para cursos individuales, tenga un tema fijado en la categoría que explique cómo unirse al curso:
Únase al grupo foo_interesado y/o foo_inscrito.
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á:
Crear la categoría.
Crear los grupos.
Crear el tema fijado.
Agregar a las personas al grupo _admins.
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.