Wie strukturiert man Discourse für einen Online-Kurs?

Hallo Hunter,

wir befinden uns derzeit in der Beta-Phase, aber die Discourse-Integration läuft gut. Wir nutzen die SSO-Integration, um die Anmeldung auf unserer Website zu erzwingen. Das funktioniert einwandfrei, allerdings habe ich Folgendes festgestellt:

  1. Discourse akzeptiert keine Benutzernamen mit dem „@“-Zeichen. Der Benutzername wird auf den Teil vor dem „@“ gekürzt. Das kann Probleme verursachen, wenn du später die Discourse-APIs mit diesem Benutzernamen als Argument aufrufst. Discourse erkennt einen Benutzernamen wie someone@example.com nicht, da in Discourse der Benutzername als „someone“ gespeichert wird. Eine einfache Lösung besteht darin, das „@“-Zeichen in deinen eigenen Benutzernamen nicht zuzulassen!

  2. Wenn sich jemand auf deiner eigenen Website registriert, musst du explizit die Discourse-API aufrufen, um den SSO-Benutzer zu synchronisieren. Möglicherweise möchtest du mit diesem Benutzer bestimmte Aktionen durchführen (z. B. ihn einer Discourse-Gruppe hinzufügen), bevor er die Discourse-Website zum ersten Mal besucht (was die SSO automatisch synchronisieren würde). Ich habe eine auf Django basierende Website und verwende die pydiscourse-Bibliothek, die eine sync_sso-Methode bietet, die dies sehr einfach macht (Client Challenge).

Ja, wir werden einige unserer Kurse verfallen lassen. In diesem Fall ruft der Server die Discourse-API auf und entfernt den Benutzer sowohl aus der allgemeinen Gruppe für diesen Kurs als auch aus der Gruppe, die speziell für seine Kohorte in dieser Gruppe vorgesehen ist.

Ich habe in meiner Django-Website Tabellen erstellt, die diese „Kurs“-Gruppen und die verschiedenen „Kohorten“-Gruppen innerhalb jedes Kurses verfolgen. Diese Informationen nutze ich beim Hinzufügen oder Entfernen von Studierenden usw.: