講座運営 / 受講者レビュー閲覧
講座運営 / 受講者レビュー閲覧
本ページは 2 段構成。上段が biz/CS 向け(ユーザー提示可)、下段(
## 🔧 実装詳細以降)が dev 向け。biz/CS がユーザーへ提示・転用してよいのは上段のみ。
概要
受講者レビュー閲覧は、メイン講師およびサブ講師が、自身の講座に対して受講者から寄せられたレビュー一覧を閲覧・モデレーションするための機能。受講者が投稿したレビューを時系列で確認し、不適切な投稿があれば個別に非公開化・削除できる。なお、講師から受講者レビューへの「返信機能」は現時点では提供していない。
主な利用想定は、新着レビューの定期確認、不適切投稿の運営判断、講座満足度の把握、改善ヒントの収集など。レビューはタイトル・本文・総合評価点(5 段階)・講師評価点・コンテンツ評価点を含み、講座の評判管理の一次情報源として機能する。
公開レビューの閲覧範囲: 公開状態のレビューは未受講者・受講者・講師・第三者を含めて誰でも閲覧可能。非公開レビューは「投稿者本人」「該当講座のメイン講師」「該当講座のサブ講師」のみ閲覧可能。
評価点の見え方: 各レビューの評価点(総合 / 講師 / コンテンツ)は、自分が投稿したレビューのみ点数表示される。他者のレビューでは点数表示はマスクされ、講座全体としての集計値や複数レビューを通じた傾向把握に使う構造。
📝 レビュー観点:
- 目的: 受講者の評価・声を把握、不適切な投稿を非公開化・削除
- 誰が使うか: メイン講師 / サブ講師
- どこで使うか: 講座詳細画面のレビュータブ、
/plan/{id}/reviews- 隣接機能との関係: 受講者がレビューを書く側(受講者向け PSD)、受講者管理(
./member.md)- CS 問い合わせで頻発する論点: 「自分のレビューが他人から見えない」「非公開にしたが反映されない」「ページサイズが思ったより少ない」「返信したい」
- [本機能特有] 返信機能なし: テーブルにも reply 系カラムなし
- [本機能特有] FE/BE/DB の三層乖離: タイトル・本文の文字数で BE 制限なし
- [本機能特有] sort パラメータ未反映の可能性: SQL は
review_id descハードコード
利用シナリオ
シナリオ 1: 講師が新着レビューを確認する
メイン講師またはサブ講師が、講座詳細画面のレビュータブを開き、新着レビューを時系列で確認。受講者の評価点・本文を通じて講座満足度を把握する。
シナリオ 2: 不適切なレビューを非公開化する
中傷・誤った情報・規約違反など不適切なレビューを発見した場合、講師が非公開化操作を行う。非公開化されたレビューは公開レビュー一覧から外れ、未受講者・第三者からは見えなくなる。投稿者本人と講師は引き続き閲覧可能。
シナリオ 3: レビューを削除する
非公開化では不十分なケース(プライバシー侵害・著しい虚偽 等)では削除操作で対応。削除は内部的に論理削除として処理され、画面上からは見えなくなる。
シナリオ 4: 受講者が投稿したレビュー(自分の投稿)を確認する
受講者は自分が書いたレビューを公開・非公開状態にかかわらず確認できる。他の受講者のレビューは公開分のみが見える。
シナリオ 5: 講師から返信したい場合の対応
現時点では講師からレビューへの「返信機能」は提供されていない。CS 対応で「レビューに返信したい」要望を受けた場合は、別途トーク機能等での個別対応を案内する。
よくある失敗ケース
- 自分の講座以外のレビュー削除試行: 該当講座のメイン / サブ講師でないと削除不可
- タイトル文字数オーバー(受講者投稿側): 100 文字を超えるとエラー
- 本文文字数オーバー(受講者投稿側): 500 文字を超えるとエラー
- 重複投稿: 同一受講者が同じ講座へ複数のレビューを投稿しようとするとエラー(1 講座につき 1 件)
- ページネーション: ページサイズは 10 件単位で、追加読み込みでスクロール
権限別仕様
権限定義は ../user-roles.md 参照。用語は ../terminology.md。
講座権限軸
| 操作 | 未受講者 | 受講者 | サブ講師 | メイン講師 |
|---|---|---|---|---|
| 公開レビュー一覧の閲覧 | ○ | ○ | ○ | ○ |
| 自分のレビュー(非公開含む)閲覧 | — | ○ | ○ | ○ |
| 全レビュー(非公開含む)閲覧 | × | × | ○ | ○ |
| レビューの公開 / 非公開切替 | × | × | ○ | ○ |
| レビューの削除 | × | × | ○ | ○ |
| レビューへの返信 | × | × | ×(未実装) | ×(未実装) |
横断軸
| 操作 | 運営アドミン | テストユーザー | 投稿禁止 |
|---|---|---|---|
| レビュー削除(運営アドミン経由) | ○(OWNER ロール経由で技術的に可能) |
× | × |
📝 レビュー観点:
- 公開レビュー一覧は 未認証含む全員 が閲覧可(
permitAll)- 非公開分は SQL で「自分のレビュー or メイン講師 or
plan_sub_owner」のみ可視- 講師の評価点は他者には null 化されて返る(自分のレビューのみ点数表示)
機能詳細(ふるまい)
一覧閲覧
- 投稿日時の降順で表示
- ページサイズ 10 件、追加読み込みで次ページへ
- 特定ユーザー指定で絞り込み可能(受講者個別の投稿確認用)
- 公開レビューは未受講者・受講者・第三者を含めて誰でも閲覧可
- 非公開レビューは「投稿者本人 / 該当講座のメイン講師 / 該当講座のサブ講師」のみ閲覧可
- 自分以外のレビューでは評価点(総合 / 講師 / コンテンツ)はマスクされ、自分の投稿のみ点数が見える
公開 / 非公開切替
- メイン講師およびサブ講師が個別レビューを非公開化できる
- 非公開化されたレビューは公開一覧から外れ、第三者からは見えなくなる
- 投稿者本人と講師は引き続き閲覧可能
- 不適切な投稿の運営判断・タイミングを見て公開復活させる運用も可能
削除(論理削除)
- 講師による削除は論理削除として処理(内部にデータは保持)
- 削除されたレビューは画面上から見えなくなる
- 受講者には削除後のレビューは表示されない
- 復旧は運営側の内部対応のみで、画面操作からの復旧経路はなし
返信機能
- 現時点で講師からレビューへ返信する機能は 提供していない
- 「特定の受講者に個別の返答をしたい」場合は、別経路(個別 DM 等)で対応する
- 返信機能の実装は今後の改善候補として取り扱い
受講者側の投稿仕様(補足)
本ページは閲覧 / モデレーションを扱うが、受講者がレビューを投稿する側の制限値も併記:
- タイトル: 100 文字以内(必須)
- 本文: 500 文字以内(必須)
- 総合評価: 1〜5 の 5 段階(必須)
- 講師評価 / コンテンツ評価: 1〜5 の 5 段階(任意)
- 重複投稿の禁止: 同一受講者・同一講座で投稿は 1 件のみ(編集は可)
📝 レビュー観点:
- 入力 → 処理 → 出力: 一覧 → 個別操作 → 即時反映
- エッジケース: 自分の評価のみ点数表示(他者の点数は null)、
sort=asc指定時の挙動(要確認)- 編集・削除の挙動: 削除は論理削除、復旧経路なし
- [本機能特有] FE/BE/DB の文字数三層乖離: dev 改善課題
- [本機能特有] FE/BE のページサイズ デフォルト乖離: FE 10 / BE 20
admin 操作
該当なし / 実装されていない
- 運営アドミン専用のレビュー閲覧 / モデレーション UI: なし(
pages/admin/**にレビュー画面ヒットなし) - 代理での公開非公開切替・削除: 専用経路なし。技術的には
DELETE /review/**がOWNERロールに開放されているため運営アドミンマスター ロールであれば可能だが、専用 UI なし
📝 レビュー観点:
- 運営アドミン経由のモデレーション UI の必要性
品質 / 約束事項
- 応答性: 一覧・操作は即時反映
- 信頼性: 公開非公開切替・削除は管理権限の二重チェックを経る
- 制限値:
- タイトル: 100 文字(実質 FE 制約)
- 本文: 500 文字(実質 FE 制約)
- 評価点: 1〜5
- 重複投稿: 同一ユーザー × 同一講座で 1 件のみ
- ページサイズ: 10 件(FE デフォルト)
- データ保持: 論理削除、復旧経路なし
📝 レビュー観点:
- [本機能特有] FE/BE/DB の三層乖離: タイトル FE 100 / BE 制限なし / DB 250、本文 FE 500 / BE 制限なし / DB 1000 → BE バリデーション追加が改善課題
変更履歴(リリースノート候補)
v2.29.2: 2026-05-02(PSD 初版)
- [PSD 追加] 本ドキュメント初版作成。v2.29.2 時点の実装を起こし。機能追加・変更は含まない
📝 レビュー観点:
- 過去の主要変更(
is_private追加 / レビュー機能追加 等)
関連ドキュメント
- 権限定義:
../user-roles.md - 用語辞書:
../terminology.md - 関連 PSD:
./member.md— 受講者管理- 受講者がレビューを書く側 → 別ページ(plan カテゴリ配下、未作成)