Als Nachtrag, hier ist, wie ich mir vorstelle, Ihre Bedürfnisse am besten mit den Standardfunktionen von Discourse zu erfüllen. Es ist vielleicht nicht genau das, was Sie sich vorstellen, aber ich denke, es ist als Diskussionsgrundlage wert, in Betracht gezogen zu werden.
Zuerst treffe ich einige Annahmen, die gültig sein können oder auch nicht. Bitte lassen Sie mich wissen, wo ich falsch liege:
- Es wird viele Kurse geben (Dutzende, möglicherweise Hunderte)
- Die Einrichtung von Kursen wird periodisch, in beträchtlichen Stapeln, zu Beginn jedes Semesters (2-4 Mal pro Jahr) erfolgen
- Kurse werden ein End-of-Life haben
- Personen, die Kurse verwalten, müssen in der Lage sein, sie selbst einzurichten
- Personen, die Kurse verwalten, haben wenig bis keine Erfahrung mit der Verwaltung einer Discourse-Site.
- Personen, die Kurse verwalten, müssen nur ihre eigenen sehen. Sie möchten vielleicht gelegentlich andere als Beispiele sehen, müssen aber nicht ständig an ihnen teilnehmen.
- ^ dito für Personen, die Kurse belegen
- Es gibt ein sehr kleines Team, das das System als Ganzes verwaltet
- Kurse benötigen keine Unterkategorien; die Verwendung von Tags zur Organisation von Inhalten innerhalb von Kursen wäre ausreichend
Wenn diese Annahmen nahe liegen, hier ist mein Vorschlag, zuerst auf hoher Ebene:
- Erstellen Sie eine kleine Anzahl von Top-Level-Kategorien: eine für „Aktuelle Kurse“, eine für „Vergangene Kurse“, eine für „Bevorstehende Kurse“ und eine oder mehrere für allgemeinere Dinge über das System selbst (z. B. wie man die Website nutzt)
- Stellen Sie den Stil der Startseite auf „Kästchen mit Kategorien“ ein, damit diese prominent angezeigt werden
- Verwenden Sie Unterkategorien für jeden Kurs
- Erstellen Sie sie in „Bevorstehende Kurse“
- Verschieben Sie sie zu „Aktuelle Kurse“, wenn das Semester beginnt
- Wenn ein Kurs abgeschlossen ist, verschieben Sie ihn von „Aktuelle Kurse“ zu „Vergangene Kurse“
- Steuern Sie den Zugriff auf Kurse über Gruppen (mehr Details unten)
Zugriffskontrolle:
- Erstellen Sie für jeden Kurs eine Reihe von Gruppen, z. B.: foo_interested, foo_enrolled, foo_admin
- Erstellen Sie zwei zusätzliche Gruppen: „browse_courses“ und „browse_past_courses“
- Stellen Sie Kategorien in „Bevorstehende Kurse“ und „Aktuelle Kurse“ so ein, dass sie nur für Personen in den Gruppen des jeweiligen Kurses und Personen in der Gruppe „browse_courses“ zugänglich sind.
- Stellen Sie Kategorien in „Vergangene Kurse“ so ein, dass sie nur für Personen in den Gruppen des jeweiligen Kurses und Personen in der Gruppe „browse_past_courses“ zugänglich sind.
Benutzererfahrung für Gruppen und Kurse
- Haben Sie ein angeheftetes Thema in der Top-Level-Kategorie für „Bevorstehende Kurse“, das erklärt, wie man Kurse durchsucht, mit einer einfachen Möglichkeit für Personen, der Gruppe „browse_courses“ beizutreten.
- ^ dito für „Aktuelle Kurse“
- ^ dito für „Vergangene Kurse“
Für einzelne Kurse haben Sie ein angeheftetes Thema in der Kategorie, das erklärt, wie man dem Kurs beitritt:
- Treten Sie der Gruppe „foo_interested“ und/oder „foo_enrolled“ bei
- Fügen Sie den Kurs Ihrer Seitenleiste hinzu
Die Administration wird anfangs etwas arbeitsintensiv sein, da für jeden neuen Kurs eine Person mit entsprechenden Berechtigungen Folgendes tun muss:
- Erstellen Sie die Kategorie
- Erstellen Sie die Gruppen
- Erstellen Sie das angeheftete Thema
- Fügen Sie die Personen zur Gruppe „_admins“ hinzu
- Stellen Sie ihnen die Dokumentation zur Verfügung, die sie zur Verwaltung ihres eigenen Kurses benötigen
Ein Teil davon könnte mit einigen leichten Werkzeugen automatisiert werden. Je nachdem, wer das Hauptadministrator-Team ist, kann es sinnvoll sein, mit etwas außerhalb des Bandes zu beginnen, das einfach die API anspricht. Oder vielleicht benötigen Sie etwas UI-basiertes, das in Discourse als Theme-Komponente oder Plugin integriert ist. Aber ich würde vorschlagen, hier schlank zu beginnen und sich zuerst auf die Definition eines funktionierenden Prozesses zu konzentrieren und dann die Werkzeuge darum herum zu entwerfen.
Die Skalierung von Kategorien ist hier ein mögliches Problem. Discourse hat einige Performance- und UX-Probleme, wenn die Anzahl der Kategorien zu groß wird (hohe Hunderte oder Tausende). Benutzer, die Zugriff auf mehr Kategorien haben, werden die Auswirkungen davon spüren, während diejenigen mit eingeschränktem Zugriff dies nicht tun werden. Das ist Teil der Motivation, den Zugriff auf Kategorien wie beschrieben einzuschränken.
Ich bin sehr an jedem Feedback oder jeder Frage, die Sie dazu haben, interessiert.