Come strutturare Discourse per un corso online?

Ciao Hunter,

Siamo attualmente in fase beta, ma l’integrazione con Discourse sta procedendo bene. Stiamo utilizzando l’integrazione SSO per obbligare l’accesso al nostro sito. Funziona senza problemi, anche se ho notato quanto segue:

  1. Discourse non accetta nomi utente contenenti il simbolo “@”… tronca il nome utente alla sola parte precedente la “@”. Questo può causare problemi se in seguito si chiamano le API di Discourse usando quel nome utente come argomento. Discourse non riconoscerà un nome utente come someone@example.com perché in Discourse il nome utente di quell’utente viene memorizzato come “someone”… un modo semplice per evitare questo problema è non permettere l’uso del simbolo “@” nei propri nomi utente!

  2. Quando qualcuno si registra sul proprio sito, è necessario chiamare esplicitamente le API di Discourse per sincronizzare l’utente SSO, poiché potresti voler eseguire alcune operazioni su quell’utente (ad esempio, aggiungerlo a un gruppo di Discourse) prima che visiti per la prima volta il sito di Discourse (cosa che sincronizzerebbe automaticamente l’SSO). Ho un sito basato su Django, quindi sto utilizzando la libreria pydiscourse, che offre un metodo sync_sso che rende tutto molto semplice (pydiscourse · PyPI)

Sì, disattiveremo alcuni dei nostri corsi; in tal caso, il server chiamerà le API di Discourse per rimuovere l’utente dal gruppo generale relativo a quel corso, nonché dal gruppo dedicato alla sua coorte all’interno di tale corso.

Ho creato delle tabelle nel mio sito Django che tengono traccia di questi gruppi “corso” e dei vari gruppi “coorte” all’interno di ciascun corso. Utilizzo quindi queste informazioni quando aggiungo o rimuovo studenti, ecc.: