Gostaria de executar uma única instância do Discourse para um programa universitário, onde diferentes categorias de nível superior correspondem a diferentes cursos e onde o acesso é gerenciado por grupos. Para que os instrutores e alunos do curso possam ter uma impressão coesa de um curso, gostaria de fornecer uma sensação de isolamento dos diferentes cursos. Portanto, gostaria que minha instância oferecesse uma experiência de navegação semelhante a Teams/Slack/Mattermost, onde existem equipes relativamente isoladas e os usuários precisam alternar de uma para outra. Para minha instância, isso significaria que a interface do usuário enfatiza os dados relacionados ao curso atualmente selecionado. Assim, por exemplo, os usuários passam a maior parte do tempo em uma das categorias de nível superior, e a seleção de uma delas filtra as subcategorias e os canais de chat que eles podem ver facilmente.
Uma necessidade semelhante surge em uma instância onde diferentes categorias correspondem a diferentes grupos de pesquisa (gostaria de executar uma assim também).
Quais são as ferramentas existentes que podem ajudar a alcançar isso?
Caso de uso interessante! Uma solução possível é simplesmente silenciar categorias que não são relacionadas, para que elas não apareçam nas listas de tópicos.
Na verdade, não quero que eles sejam silenciados: um aluno provavelmente fará vários cursos ao mesmo tempo, e as notificações de todos são aceitáveis. Na verdade, quero dar uma impressão mais clara de “agora estou olhando para o curso X”.
Parece que grupo primário = página inicial selecionada, não? Você precisa habilitar user_selected_primary_groups para que os usuários possam alterar seu grupo primário na página de preferências de suas contas.
Otimamente, eu gostaria de algo mais efêmero e menos visível publicamente. No entanto, imagino que se eu não usar o título e o flair, um componente de UI que alterne o grupo principal funcionaria como um seletor de equipe.
Algo como o seletor extra da barra lateral que estava em execução aqui como um experimento há alguns dias seria bom para isso.
Você poderia fazer isso. Você também poderia mudar o logotipo do site dependendo do grupo primário deles; eu fiz isso para um site que tem várias universidades compartilhando uma instância. Talvez você pudesse ter um componente de tema com um menu suspenso na barra superior que permitiria a eles selecionar seu grupo primário (e talvez dizer “classe” em vez de “grupo”).
@Anton_Akhmerov você pretende fazer isso sozinho ou estaria disposto a pagar alguém para fazer isso por você? Me avise!
Se você quiser fazer sozinho, gostaria de mover isso para Dev para que você possa trabalhar nisso lá e reportar para a comunidade e obter feedback de outros membros. Vamos mover isso para Dev.
Se você quiser pagar alguém, eu o moverei para Marketplace.
Acho que o melhor seria mover isso para Community e discutir mais sobre seu caso de uso, como melhor atender às suas necessidades hoje e abrir espaço para que outras pessoas que possam ter tido necessidades semelhantes as tenham resolvido.
Em seguida, se houver lacunas específicas no produto identificadas que você considere importantes o suficiente para construir você mesmo ou defender, podemos criar tópicos separados em Feature e/ou Dev para essas ideias.
Isso parece alinhado com o seu pensamento aqui? Ou você já está na fase de “Estou pronto para construir as peças que faltam”?
#comunidade também faz sentido . O recurso parece complicado e parece estar um tanto alinhado com as necessidades da comunidade, considerando a popularidade de solicitações como esta
Eu pretendo trabalhar nisso, mas até agora meu plano é bastante vago.
Como acompanhamento, veja como imagino que melhor atenderei às suas necessidades com os recursos prontos do Discourse. Pode não ser exatamente o que você tem em mente, mas acho que vale a pena considerar como ponto de partida para discussão.
Primeiro, estou fazendo algumas suposições, que podem ou não ser válidas. Por favor, me diga onde estou errando:
Haverá muitos cursos (dezenas, possivelmente centenas)
A configuração dos cursos ocorrerá periodicamente, em lotes consideráveis, no início de cada semestre (2-4 vezes por ano)
Os cursos terão um fim de vida
As pessoas que gerenciam cursos precisam ter alguma capacidade de configurá-los por conta própria
As pessoas que gerenciam cursos terão pouca ou nenhuma experiência em gerenciar um site Discourse.
As pessoas que gerenciam cursos realmente só precisam ver os seus. Elas podem querer ver outros ocasionalmente como exemplos, mas não precisam de participação contínua neles.
^ o mesmo para as pessoas que fazem os cursos
Existe uma equipe muito pequena gerenciando o sistema como um todo
Os cursos não precisam realmente de subcategorias; usar tags para organizar o conteúdo dentro dos cursos seria suficiente
Considerando que essas premissas estejam próximas, aqui está o que eu sugeriria, primeiro em um nível geral:
Crie um pequeno número de categorias de nível superior: uma para “Cursos Atuais”, uma para “Cursos Passados”, uma para “Cursos Futuros” e uma ou mais para coisas mais gerais sobre o próprio sistema (por exemplo, como usar o site)
Defina o estilo da página inicial como “caixas com categorias” para que elas sejam exibidas de forma proeminente
Use subcategorias para cada curso
Crie-as em “Cursos Futuros”
Mova-as para “Cursos Atuais” quando o semestre começar
Quando um curso for concluído, mova-o de “Cursos Atuais” para “Cursos Passados”
Controle o acesso aos Cursos usando Grupos (mais detalhes abaixo)
Controle de acesso:
Para cada curso, crie um conjunto de grupos a seguir, por exemplo: foo_interessado, foo_inscrito, foo_admin
Crie dois grupos adicionais: “navegar_cursos” e “navegar_cursos_passados”
Defina as categorias em “Cursos Futuros” e “Cursos Atuais” para serem acessíveis apenas para pessoas nos grupos do curso específico e pessoas no grupo “navegar_cursos”.
Defina as categorias em “Cursos Passados” para serem acessíveis apenas para pessoas nos grupos do curso específico e pessoas no grupo “navegar_cursos_passados”.
Experiência do usuário para grupos e cursos
Tenha um tópico fixado na categoria de nível superior para “Cursos Futuros” que explique como navegar pelos cursos, com um meio fácil para as pessoas entrarem no grupo “navegar_cursos”.
^ o mesmo para “Cursos Atuais”
^ o mesmo para “Cursos Passados”
Para cursos individuais, tenha um tópico fixado na categoria explicando como ingressar no Curso:
Entre no grupo “foo_interessado” e/ou “foo_inscrito”
Adicione o curso à sua barra lateral
A administração será um pouco trabalhosa no início, pois para cada novo curso alguém com privilégios apropriados precisará:
Criar a categoria
Criar os grupos
Criar o tópico fixado
Adicionar as pessoas ao grupo _admins
Fornecer a documentação necessária para gerenciar seu próprio curso
Parte disso poderia ser automatizada com algumas ferramentas leves. Dependendo de quem é a equipe principal de administração, pode fazer sentido começar com algo fora da banda que apenas acesse a API. Ou talvez você precise de algo mais baseado em UI que seja integrado ao Discourse como um componente de tema ou plugin. Mas eu sugiro começar de forma enxuta aqui, e focar primeiro em definir um processo que funcione, e depois projetar as ferramentas em torno disso.
A escalabilidade de categorias é uma preocupação possível aqui. O Discourse tem algumas arestas de desempenho e UX quando o número de categorias fica muito grande (centenas ou milhares). Usuários com acesso a mais categorias sentirão o impacto disso, enquanto aqueles com acesso limitado não sentirão. Essa é parte da motivação para limitar o acesso às categorias, como descrevi.
Estou muito interessado em ouvir todos os comentários ou perguntas que você tiver sobre o acima.
Olá @mcwumbly, obrigado por uma descrição detalhada e ponderada.
O que você descreve está de fato próximo do que tenho em mente, com algumas diferenças.
Ao gerenciar uma única instância de um curso por cerca de 5 anos, percebi que é muito menos trabalhoso ocultar ou mover discussões obsoletas do que recriar uma instância de curso do zero. Portanto, na prática, o espaço de discussão para um curso é fixo, mas a maioria dos tópicos tem um fim de vida.
Imagino principalmente que as equipes de curso precisarão gerenciar um curso em vez de configurá-lo.
Nossos cursos têm cerca de 200 alunos e uma equipe de curso de cerca de 10 pessoas, incluindo TAs. Isso justifica pelo menos várias categorias:
Dúvidas sobre Conteúdo (alunos postam, equipe do curso responde)
Organização do Curso (o mesmo que acima, mas puramente sobre questões organizacionais)
Anúncios (equipe do curso posta, alunos podem responder)
Discussão da equipe do curso (visível apenas pela equipe do curso)
Acredito que o uso de subcategorias atenderá a essa necessidade.
Percebo que pode-se criar um agrupamento em toda a instância do que está acima, semelhante ao que você descreve, mas parece mais razoável colocar tudo isso em uma única categoria.
Em suma, acho que as capacidades atuais do Discourse se encaixam bem nesse caso de uso, exceto pela funcionalidade puramente de front-end de precisar dar uma sensação a um membro da equipe do curso ou a um aluno de que eles estão olhando para um único curso, em vez de todos os cursos de uma vez.
O componente de tema de documentação é um pouco semelhante, pois permite ao usuário “entrar” em uma categoria, mas não permite “permanecer” facilmente dentro de uma categoria.
Sim, mover tópicos em massa é um pouco chato, mas reclassificar uma categoria inteira de “cursos atuais” para “cursos passados” seria bem fácil, eu acho.
Os benefícios de fazer isso são que cada semestre poderia começar do zero.
Isso poderia ser uma desvantagem, no entanto, dependendo se você acha que ter conteúdo de semestres anteriores é valioso ou prejudicial, e quanto esforço sua equipe gasta para criar novas categorias para cada semestre.
Ter categorias que duram indefinidamente certamente reduz esse esforço. Se for viável, parece ótimo.
E se se tornar um problema ter conteúdo antigo para sempre, talvez seja “um bom problema para se ter”, não deve ser tão ruim mudar para o modelo que sugeri mais tarde.
Acho que sua teoria aqui é sólida.
Ter subcategorias para cada uma dessas atividades dentro de cada categoria de curso parece razoável.
Acho que novamente depende um pouco de quão confiante você está de que a complexidade adicional é justificada e, em caso afirmativo, se essa é a forma correta.
Você poderia usar uma tag restrita para anúncios em vez disso, o que tem alguns benefícios.
Os dois últimos poderiam ser tratados via Mensagens Privadas de Grupo em vez de uma categoria.
Acho que ambas as opções valem a pena considerar. Existem algumas trocas entre elas.
À medida que você se aprofunda na configuração, continue fazendo perguntas quando elas surgirem.
E independentemente da direção que você escolher para começar, adoraria ouvir atualizações ocasionais sobre como as coisas estão indo!
Um componente de tema poderia, por exemplo, alterar o ícone e fazê-lo ir para a página inicial do curso em vez da global.
Comecei a usar o Discourse para ensinar cursos de tecnologia instrucional quando era professor de educação.
Usei uma categoria para os materiais do curso e fiz com que os alunos respondessem como tópico vinculado para entregar seus trabalhos (em categorias públicas). Em um tópico de nível semestral, um plano de aula faria referência aos materiais canônicos do curso com o que fazer e quando. Em seguida, usei um conjunto de tags para indicar quais tópicos deveriam ser avaliados e escrevi um script que verificaria se eu gostava de um tópico para indicar se eu havia aprovado o trabalho.
Escrevi um script que atualizaria um CSV do sistema de gerenciamento de aprendizado da universidade para facilitar o upload das notas para lá.
A coisa que acho que mais gostei, e que poderia ter escrito se fosse um acadêmico melhor (e não tivesse deixado aquele emprego) foi que eu atualizava as tarefas durante o curso para corrigir coisas que não estavam claras, em vez de esperar até o ano seguinte para fazer melhorias. E como todas as edições estavam disponíveis no histórico, os alunos eram livres para fazer qualquer versão da tarefa que quisessem (ou fizeram antes de eu fazer a edição). Ainda acho que melhorar o curso na hora, em vez de esperar um ano e esperar lembrar quais eram os problemas, foi uma ótima ideia.