フォローとして、Discourse の標準機能で皆様のニーズに最もよく応えられると思われる方法を以下に示します。皆様がお考えのものと 全く 同じではないかもしれませんが、議論の出発点として検討する価値はあると思います。
まず、いくつかの仮定を立てています。これらは有効な場合もあれば、そうでない場合もあります。間違っている点があれば、お知らせください。
- コースは多数(数十、場合によっては数百)存在する
- コースのセットアップは、四半期ごと(年2〜4回)に、まとまったバッチで行われる
- コースには終了時期がある
- コースを管理する人々は、自分でセットアップできるある程度の能力が必要
- コースを管理する人々は、Discourse サイトの管理経験がほとんどないか、全くない
- コースを管理する人々は、自分のコースだけを見られればよい。他のコースは時々例として見たいかもしれないが、継続的な参加は必要ない
- ^ コースを受講する人々についても同様
- システム全体を管理するチームは非常に小さい
- コースにはサブカテゴリはあまり必要なく、コース内のコンテンツを整理するにはタグを使用するだけで十分
これらが近いようであれば、まず全体的なレベルで以下のことを提案します。
- 少数のトップレベルカテゴリを作成する:「現在のコース」、「過去のコース」、「今後のコース」、およびシステム全体に関する一般的なもの(例:サイトの使い方)のためのカテゴリを1つ以上
- ホームページのスタイルを「カテゴリ別のボックス」に設定し、これらを際立たせる
- 各コースにサブカテゴリを使用する
- 「今後のコース」に作成する
- 学期が始まったら、「現在のコース」に移動する
- コースが終了したら、「現在のコース」から「過去のコース」に移動する
- グループを使用してコースへのアクセスを制御する(詳細は以下)
アクセス制御:
- 各コースについて、例えば foo_interested、foo_enrolled、foo_admin のようなグループのセットを作成する
- 「browse_courses」と「browse_past_courses」という2つの追加グループを作成する
- 「今後のコース」と「現在のコース」のカテゴリは、特定のコースのグループのメンバーと「browse_courses」グループのメンバーのみがアクセスできるように設定する
- 「過去のコース」のカテゴリは、特定のコースのグループのメンバーと「browse_past_courses」グループのメンバーのみがアクセスできるように設定する
グループとコースのユーザーエクスペリエンス:
- 「今後のコース」のトップレベルカテゴリに、コースの閲覧方法を説明する固定トピックを配置し、人々が「browse_courses」グループに参加しやすいようにする
- ^ 「現在のコース」についても同様
- ^ 「過去のコース」についても同様
個々のコースについては、カテゴリに固定トピックを配置し、コースへの参加方法を説明する:
- 「foo_interested」および/または「foo_enrolled」グループに参加する
- サイドバーにコースを追加する
管理は、最初は多少手間がかかります。新しいコースごとに、適切な権限を持つ誰かが以下を行う必要があります。
- カテゴリを作成する
- グループを作成する
- 固定トピックを作成する
- 人々を _admins グループに追加する
- 自分のコースを管理するためのドキュメントを提供する
これらのうちいくつかは、軽量なツールで自動化できる可能性があります。メインの管理者チームが誰であるかによっては、API を呼び出すだけの帯域外の何かから始めるのが良いかもしれません。あるいは、Discourse にテーマコンポーネントやプラグインとして組み込まれた、より UI ベースの何かが必要かもしれません。しかし、ここではまずシンプルに始め、まず機能するプロセスを定義することに焦点を当て、その後にツールを設計することをお勧めします。
カテゴリのスケーリングは、ここで懸念される可能性があります。Discourse は、カテゴリ数が非常に多く(数百または数千)なると、パフォーマンスと UX に多少の粗さがあります。より多くのカテゴリにアクセスできるユーザーは影響を感じますが、アクセスが制限されているユーザーはそうではありません。これは、私が概説したようにカテゴリへのアクセスを制限する動機の一部です。
上記の点について、あらゆるフィードバックや質問をいただけると幸いです。