トーク / チャンネルカテゴリー
トーク / チャンネルカテゴリー
本ページは 2 段構成。上段が biz/CS 向け(ユーザー提示可)、下段(
## 🔧 実装詳細以降)が dev 向け。biz/CS がユーザーへ提示・転用してよいのは上段のみ。
概要
トークルーム一覧をカテゴリー単位で分類・整理する機能。チャンネルが多い講座でルーム一覧の見通しが落ちる課題に対し、講師が任意のカテゴリーを定義してチャンネルを所属させることで、左ペインの導線を整理できる。
主な使い方:
- メイン講師 / サブ講師: カテゴリーの作成・名前変更・削除・並び替え、およびチャンネル作成・編集時の所属カテゴリー指定
- 受講者: カテゴリーで分類された左ペインの閲覧、カテゴリーパネルの展開・折りたたみ(状態はブラウザに記憶)、カテゴリー単位の未読フィルタ
- 未受講者: 該当講座のカテゴリー一覧は閲覧不可(契約者のみ閲覧可)
カテゴリーには講師が定義するユーザー定義カテゴリーと、システム既定の固定カテゴリー(「チャンネル」と「DM」)の 2 種類があり、それぞれ役割が異なる(後述「固定カテゴリー」参照)。受講者の左ペインでは「DM 最上部 → 講師定義カテゴリー → 固定『チャンネル』が最後」の順序で固定表示される。
利用シナリオ
シナリオ 1: 講師がチャンネル一覧を整理する
メイン講師の講座で、これまでテーマ別に作ってきたチャンネルが 20 個以上あり受講者から「目的のチャンネルが探しにくい」と言われている。講師は「Q&A」「課題提出」「雑談」の 3 カテゴリーを作成し、既存のチャンネルをそれぞれに割り当てる。並び替えで「Q&A」を最上段、「雑談」を最下段に配置すると、受講者の左ペインも次回以降同じ順序で表示される。
シナリオ 2: 受講者がカテゴリーを折りたたんで集中する
受講者は普段「課題提出」しか見ないため、「Q&A」と「雑談」のカテゴリーパネルを折りたたむ。次回以降アプリを開いてもこの折りたたみ状態は維持され、「課題提出」のチャンネルのみが展開された状態で表示される。受講者ごとに表示状態を持つため、他の受講者には影響しない。
シナリオ 3: 未読のあるチャンネルだけ確認したい
受講者が「未読のみ表示」フィルタを ON にすると、未読のあるチャンネルだけがリストに残る。さらにカテゴリーパネル単位でも未読フィルタを切り替えられるので、特定カテゴリー内だけで未読を絞り込むこともできる。
シナリオ 4: サブ講師がカテゴリーを編集する
メイン講師に代わってサブ講師がカテゴリーを 1 つ追加する。サブ講師の操作はメイン講師と同等で、作成・名前変更・削除・並び替えが可能(権限差なし)。
よくある失敗ケース
- カテゴリー上限到達: 講座あたり 10 件目までしか作れない。11 件目を作ろうとするとエラー
- 同名カテゴリー作成試行: 同一講座内で同じ名前のカテゴリーは作れない(重複時はエラー)
- 所属チャンネルがあるカテゴリーの削除試行: チャンネルが残ったままのカテゴリーは削除できない(先にチャンネルを別カテゴリーへ移すか削除する必要あり)
- 未契約受講者の閲覧試行: 該当講座に契約していないユーザーはカテゴリー一覧を取得できない(アクセス拒否扱い)
権限別仕様
権限定義は ../../user-roles.md、用語は ../../terminology.md 参照。
講座権限軸
| 操作 | 未受講者 | 受講者 | サブ講師 | メイン講師 |
|---|---|---|---|---|
| カテゴリー一覧の閲覧 | × | ○(契約済み) | ○ | ○ |
| カテゴリー作成 | × | × | ○ | ○ |
| カテゴリー名更新 | × | × | ○ | ○ |
| カテゴリー削除 | × | × | ○ | ○ |
| カテゴリー並び順変更 | × | × | ○ | ○ |
| チャンネル作成・編集時のカテゴリー指定 | × | × | ○ | ○ |
| カテゴリーパネルの展開 / 折りたたみ | × | ○ | ○ | ○ |
| カテゴリー単位の未読フィルタ | × | ○ | ○ | ○ |
- 受講者の閲覧は該当講座に契約している場合に限る。未契約者はカテゴリー一覧を取得できない(アクセス拒否扱い)
横断軸
| 操作 | 運営アドミン | テストユーザー | 投稿禁止 |
|---|---|---|---|
| カテゴリーの作成・更新・削除 | ×(運営アドミン経由の操作経路は存在しない) | (通常と同じ) | (通常と同じ、閲覧は可) |
| カテゴリー閲覧 | (通常ユーザー経路は未実装) | (通常と同じ) | (通常と同じ) |
📝 レビュー観点:
- 運営アドミン専用のカテゴリー操作経路は未実装(不適切なカテゴリー名の強制削除等は講師依頼運用)
- サブ講師の挙動は実質メイン講師と同じ(権限差なし)。サブ講師ケースのテスト固定は要確認
機能詳細(ふるまい)
固定カテゴリー
ユーザー操作で作成・削除・名前変更できない、システム既定のカテゴリー:
- 「チャンネル」(固定): ユーザー定義カテゴリーに属さないチャンネル群を収容するフォールバック。チャンネル作成時にカテゴリーを指定しないか、所属カテゴリーが削除されたチャンネルもここに表示される
- 「DM」(固定、受講者向け表示): 受講者の左ペインで DM 群を最上部固定で表示するための仮想カテゴリー(FIN-446)
固定カテゴリーは表示順上、特定の位置に常駐する。詳細は「並び順」を参照。
ユーザー定義カテゴリーの作成
メイン講師 / サブ講師が任意のカテゴリーを作成できる:
- カテゴリー名(必須、1〜20 文字、制御文字・ゼロ幅文字は不可)
- 講座あたりの上限: 10 件(達した状態で作成しようとすると上限到達エラー)
- 同一講座内での同名重複は不可(重複時はエラー、後述「重複チェック」参照)
- 作成直後は表示順の末尾に追加される
カテゴリー名の更新
既存カテゴリーの名前を変更できる:
- 文字数制限・許可文字は作成時と同じ
- 自身を除外した同一講座内の同名重複は不可
カテゴリー削除
カテゴリーは所属チャンネルが 0 件のときのみ削除可能:
- 所属チャンネルが残っている状態で削除しようとすると、エラーメッセージで拒否される
- 削除は内部的には論理削除(データは残るが復旧 UI なし)
カテゴリーの並び順変更
メイン講師 / サブ講師が、自講座のユーザー定義カテゴリーを一括で並び替えできる。
- 固定カテゴリー(「チャンネル」「DM」)は並び替え対象外。受講者の左ペインでは常に最上部に DM、その後にユーザー定義カテゴリー、最後に「チャンネル」固定の順序になる仕様(実装上の表示位置は内部の表示順値を仮想的に予約することで実現、詳細は dev 下段)
チャンネル作成・編集時のカテゴリー指定
メイン講師 / サブ講師がチャンネルを作成・編集するとき、所属カテゴリーを指定できる:
- 指定しない(カテゴリー未選択)の場合、チャンネルは固定カテゴリー「チャンネル」に表示される
- 既存チャンネルのカテゴリーを後から変更可能
- 削除済みカテゴリー ID を持つチャンネルは固定カテゴリー「チャンネル」にフォールバック表示される
受講者視点での表示
受講者がトークタブを開いたときの左ペイン表示:
- 最上部: 固定「DM」セクション(自分宛の DM 群)
- その後: ユーザー定義カテゴリー群(講師が定義した順序、並び替え可)
- 最後: 固定「チャンネル」セクション(カテゴリーに属さないチャンネル群)
各セクションは展開 / 折りたたみが可能で、状態はブラウザに記憶される(次回同じ受講者が開いた際にも維持)。
未読フィルタとカテゴリー展開
トークタブには「未読のみ表示」フィルタがあり、ON にすると未読のあるトークルームのみがリストに残る。カテゴリー単位でも独立して未読フィルタを切り替え可能で、UI は次のように振る舞う:
- 講座全体の未読フィルタ ON 時: 各カテゴリー内も未読のあるルームのみ表示
- カテゴリー単位の未読フィルタ ON 時: そのカテゴリーパネル内のみ絞り込み
- 各フィルタの状態はブラウザに記憶される(FIN-453)
未読のないカテゴリーパネル全体の表示有無は要件次第で変動するため、運用観察に基づき今後調整される可能性がある(dev 下段に検討課題として記録)。
エッジケース
- 削除済みカテゴリー ID を持つチャンネル: 論理削除のためデータは残置、表示は固定「チャンネル」へフォールバック
- カテゴリー数上限到達後の作成試行: 上限到達エラー(10 件目を超える作成は不可)
- 同名カテゴリー作成試行: 重複エラー(並列に同時送信された場合は理論上両方通る可能性あり、dev 改善課題)
- 未契約受講者のカテゴリー一覧取得: アクセス拒否扱い(カテゴリーは契約者のみ閲覧)
admin 操作
該当なし
運営アドミン専用のカテゴリー操作経路(運営による代理での作成・更新・削除・名称強制変更等)は現状未実装。不適切なカテゴリー名等が発生した場合は、該当講座のメイン講師またはサブ講師に依頼する運用となる。
実装されていない / 不明
- 運営アドミンによるカテゴリー代理操作: 未実装 — 今後の改善課題(CS 対応上の必要性が出れば)
- 削除済みカテゴリーの復旧経路: 論理削除のためデータは残るが、復旧の UI は未実装
品質 / 約束事項
応答性
- カテゴリー作成・更新・削除・並び替えは同期処理で、操作結果は即時返る
- 受講者側の左ペインへの反映タイミング: 一覧の再読み込み(次に画面を開き直したタイミング)で反映
制限値
- カテゴリー名: 1〜20 文字(制御文字・ゼロ幅文字は不可)
- 講座ごとのカテゴリー数上限: 10 件
- チャンネルのカテゴリー所属: 1 チャンネルにつき 1 カテゴリー(多重所属は不可)
データ保持
- カテゴリーは論理削除(内部的にはデータが残るが、ユーザー操作での復旧手段はない)
- カテゴリー削除時、所属チャンネルがある場合は削除自体が拒否される(孤児化を防止)
信頼性
- カテゴリー作成・更新時のサーバー側ロックにより、上限到達直前の並行作成は基本的にガードされる
- 同名重複に関しては、極めて短い時間差での並列同時送信で競合する余地が残る(DB 一意制約は未設定。dev 改善課題)
変更履歴(リリースノート候補)
v2.31.0: 2026-05-04(機能新規追加)
- [追加] トークチャンネルカテゴリー機能を新規追加(FIN-282 / FIN-283 / FIN-284)。講師がチャンネルをカテゴリー単位で整理可能に。カテゴリー名 1〜20 文字、講座あたり最大 10 件
- [追加] カテゴリーの作成・更新・削除・並び替えの基盤実装(FIN-285 / FIN-286)
- [修正] 受講者の左トークルーム一覧で DM が最上部固定表示にならないデグレを修正(FIN-446)。元々 DM は最上部固定の仕様で、本カテゴリー機能導入の過程で崩れていた表示順を正しい仕様に戻したもの
- [変更] 固定カテゴリー(「チャンネル」「DM」)を内部の表示順仮想値で扱い、ユーザー定義カテゴリーとの相対位置を一段ソートで表現(FIN-445)
- [修正] DM パネルで未読のみフィルタ時に未読チップが表示されない不具合を修正(FIN-453)
- [修正] 未読フィルタ中のカテゴリーパネルで未読チップ表示・3 点メニューの未読フィルタ対応を改善
📝 レビュー観点:
- 機能追加リリースとしての影響範囲: 受講者は最上部 DM 固定で見え方が変わる
- 段階公開の運用情報は dev 下段で扱い、biz 上段では言及しない(提供環境・段階公開タイミングは内部運用情報)
関連ドキュメント
- 権限定義:
../../user-roles.md - 用語辞書:
../../terminology.md - 関連 PSD:
./room.md— トークルーム管理(チャンネル作成・編集時のカテゴリー指定)./listing.md— トーク閲覧・検索(カテゴリー別表示・並び順)./unread.md— 未読管理(未読フィルタとカテゴリー展開)