トーク / ブックマーク
トーク / ブックマーク
本ページは 2 段構成。上段が biz/CS 向け(ユーザー提示可)、下段(
## 🔧 実装詳細以降)が dev 向け。biz/CS がユーザーへ提示・転用してよいのは上段のみ。
概要
トーク投稿を個人で保存する機能。後で見直したい投稿、参考になる議論、CS 対応で残しておきたい問い合わせ等を、個人のブックマーク一覧に保存しておく用途で使う。
主な仕様:
- 個人専用: 自分のブックマークのみ閲覧可能。他のユーザーには自分のブックマークは見えず、誰がブックマークしたかも非公開
- 対象: 自身がアクセス可能な範囲のトークルームの任意の投稿(自身の投稿でも他者の投稿でも可)
- 件数上限: 1 ルームあたり最大 100 件(超過時はエラー表示)
- アーカイブルーム: ブックマーク追加は不可(既存ブックマークは閲覧可能)
- 重複防止: 同じ投稿を 2 重ブックマークすることはできない
ブックマークは投稿者・他参加者には何も通知されず、リアクションのような「公開フィードバック」とは性質が異なる完全な個人ツール。
📝 レビュー観点(draft 段階の記述ヒント、完成時に削除):
- 目的: 後で見直したいトーク投稿を個人保存。CS 対応や学習メモとしても活用
- 誰が使うか: 受講者・メイン講師・サブ講師
- どこで使うか: トークルーム画面の各メッセージ、ブックマーク一覧タブ
- 隣接機能との関係: 投稿(
./post.md)/ リアクション(./reaction.md)- CS 問い合わせで頻発する論点: 「ブックマークが消えた」「上限に達した」(FE のみで 100 件チェック)「他の人にバレない?」(→ バレない)
- [本機能特有] 自分のブックマークのみ可視: 他者のブックマークは見えない、集計表示もない
- [本機能特有] FE 側 100 件上限・BE 側上限なし: ルーム単位で FE が PUT 前にチェック、BE はバリデーションなし(dev 改善課題)
- [本機能特有] アーカイブルームでは設定不可: BE で
talk_room.is_archive=trueを弾く- [本機能特有] 重複防止: 同一 (user, talk) は UNIQUE 制約
利用シナリオ
シナリオ 1: 受講者が学習メモとして保存
メイン講師が「この章のポイントは○○」と要点をまとめた投稿を行う。受講者はその投稿のアクションメニューから「ブックマーク」を選択して個人保存。後で復習したいときにブックマーク一覧から該当投稿に戻れる。他の受講者には自分がブックマークしたことは見えない。
シナリオ 2: 受講者が問い合わせ用に印を付ける
CS 対応で運営に伝えたい議論を見つけたとき、受講者がその投稿をブックマーク。問い合わせ時にブックマーク一覧から該当投稿の URL を運営に共有する。
シナリオ 3: ブックマーク解除
不要になったブックマークを取り消す。同じアクションメニューから再度「ブックマーク」を選択する(toggle)か、ブックマーク一覧から個別削除。
よくある失敗ケース
- アーカイブルームでブックマーク追加: アーカイブ済みルームの投稿には新規ブックマーク追加できない。既存ブックマークは引き続き一覧から閲覧可能
- 件数上限到達: 1 ルームあたり 100 件を超えるブックマーク追加はエラー。古いブックマークを削除してから追加する必要あり
- 重複ブックマーク試行: 同じ投稿を 2 重ブックマークしようとしてもエラー扱い(既にブックマーク済みのため)
📝 レビュー観点:
- 重要なメッセージをブックマーク → 後でブックマーク一覧から確認
- ブックマーク解除
- 他者の投稿に対するブックマーク(自身の投稿でなくても可)
- 失敗ケース: アーカイブルームでのブックマーク試行、100 件超過試行
権限別仕様
権限定義は ../user-roles.md 参照。用語は ../terminology.md。
講座権限軸
| 操作 | 未受講者 | 受講者 | サブ講師 | メイン講師 |
|---|---|---|---|---|
| 自身のブックマーク設定 | × | ○ | ○ | ○ |
| 自身のブックマーク解除 | × | ○ | ○ | ○ |
| 自身のブックマーク一覧の閲覧 | × | ○ | ○ | ○ |
| 他者のブックマーク参照 | × | × | × | × |
横断軸
| 操作 | 運営アドミン | テストユーザー | 投稿禁止 |
|---|---|---|---|
| 自身のブックマーク操作 | (通常と同じ) | (通常と同じ) | (通常と同じ) |
| 他者のブックマーク代理参照 | ×(運営アドミン専用機能は存在しない) | × | × |
📝 レビュー観点:
- 他者のブックマークは設計上 Firestore 側で完全に分離(
users/{userId}/...配下のみ)- 投稿禁止フラグでブックマーク自体は影響を受けない
機能詳細(ふるまい)
ブックマーク設定
各メッセージのアクションメニューから「ブックマーク」を選択すると即時保存される。サーバー側の登録 + 一覧画面への反映は数秒以内。
ブックマーク解除
同じアクションメニューで再度「ブックマーク」を選択すると取消(toggle)。あるいはブックマーク一覧画面から個別に削除する経路もある。
ブックマーク一覧
トークルーム画面のタブから「ブックマーク」を開くと、自分が設定したブックマーク一覧が時系列で表示される。一覧から該当投稿を選ぶと元のトーク位置にジャンプ。一覧表示は受講者ごとに独立で、他者からは見えない。
アーカイブルームでの制約
アーカイブ済みルームの投稿には新規ブックマークを追加できない(試行時はエラー扱い)。既にブックマーク済みの投稿はアーカイブ後も引き続き閲覧可能(履歴保持)。
件数上限
1 ルームあたり最大 100 件のブックマーク。100 件目以降を追加しようとするとエラー表示。古いブックマークを解除してから新規追加する必要あり。
📝 レビュー観点:
- 入力 → 処理 → 出力: ブックマークボタン押下 → BE PUT/DELETE → Firestore 同期 → 一覧反映
- エッジケース: 同一トークへの重複設定試行、対象トークが削除された後のブックマーク表示、ルームアーカイブ後の挙動
- エラー表示: アーカイブルームでの設定試行、上限到達
- 編集・削除の挙動: 元投稿削除時のブックマーク自動削除有無
- [本機能特有] 100 件上限: FE のみチェック、BE 側にバリデーションなし
admin 操作
該当なし
ブックマーク関連の運営アドミン専用操作は存在しない。
実装されていない
- 運営アドミンによる代理参照: 専用経路なし、Firestore のユーザー領域は CS からは見えない
- 運営アドミンによる代理削除: 専用経路なし
📝 レビュー観点:
- CS で「ブックマークの中身を確認したい」相談時の対応経路の必要性
品質 / 約束事項
- 応答性: ブックマーク設定・解除は同期処理で即時反映、一覧画面への反映は数秒以内
- 信頼性: 自分のブックマークは他者から見えない構造(ユーザー個別の保存領域に格納)。元投稿が削除された場合のブックマーク扱いは要確認(dev 改善課題)
- 制限値:
- ルーム単位の上限: 100 件(FE 制約)
- アーカイブルーム: ブックマーク不可
- データ保持: 論理削除、内部的に保持
📝 レビュー観点:
- 応答性: 大量ブックマーク時の一覧表示性能
- [本機能特有] 100 件上限の biz 表現: 「ルームあたり 100 件まで」の運用上の妥当性
変更履歴(リリースノート候補)
v2.29.2: 2026-05-02(PSD 初版)
- [PSD 追加] 本ドキュメント初版作成。v2.29.2 時点の実装を起こし。機能追加・変更は含まない
📝 レビュー観点:
- 過去の主要変更(ブックマーク機能追加 / 100 件上限導入 等)
関連ドキュメント
- 権限定義:
../user-roles.md - 用語辞書:
../terminology.md - 関連 PSD:
./post.md— 投稿./reaction.md— リアクション./room.md— ルーム(アーカイブ状態)