Como estruturar o Discourse para um curso online?

Olá Hunter,

Atualmente estamos em fase beta, mas a integração com o Discourse está indo bem. Estamos usando a integração SSO para forçar o login no nosso site. Isso tem funcionado bem, embora eu tenha notado:

  1. O Discourse não aceita nomes de usuário com o símbolo “@”… ele truncar o nome de usuário apenas na primeira parte antes do “@”. Isso pode causar problemas se você posteriormente chamar as APIs do Discourse usando esse nome de usuário como argumento. O Discourse não reconhecerá um nome de usuário como someone@example.com, pois no Discourse o nome de usuário desse usuário é armazenado como “someone”… uma maneira fácil de contornar isso é não permitir o uso do símbolo “@” nos seus próprios nomes de usuário!

  2. Quando alguém se registra no seu próprio site, você precisa chamar explicitamente a API do Discourse para sincronizar o usuário SSO, pois talvez queira realizar ações com esse usuário (por exemplo, adicioná-lo a um grupo do Discourse) antes de ele visitar o site do Discourse pela primeira vez (o que sincronizaria automaticamente o SSO). Tenho um site baseado em Django, então estou usando a biblioteca pydiscourse, que possui um método sync_sso que torna isso bastante fácil (pydiscourse · PyPI)

Sim, vamos expirar alguns dos nossos cursos, caso em que o servidor chamará a API do Discourse para remover o usuário do grupo geral daquele curso, bem como do grupo dedicado à sua turma dentro desse grupo.

Criei tabelas no meu site Django que acompanham esses grupos de “cursos” e os vários grupos de “turmas” dentro de cada curso. Então, uso essas informações ao adicionar/remover alunos, etc.: