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.