Fincs

トーク / ブックマーク

トーク / ブックマーク

本ページは 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 件上限導入 等)

関連ドキュメント


このページの内容を AI に質問しますか?
関連 spec を自動抽出して ChatGPT / Claude などに渡せます。
AI Prompt で開く →