コンテンツにスキップ

Spec

ADDED Requirements

Requirement: 勉強会詳細ページの表示

システムは #/study-groups/:studyGroupId パスで勉強会詳細ページを表示しなければならない(SHALL)。ページにはヘッダーカード、セッション一覧、セッション内の参加者詳細が含まれる。

Scenario: 勉強会詳細ページの基本表示

  • WHEN ユーザーが #/study-groups/:studyGroupId にアクセスする
  • THEN 勉強会のヘッダーカード(勉強会名、総開催回数、合計学習時間)が表示される
  • THEN 開催されたセッションの一覧がサマリーカード形式で表示される

Scenario: 存在しない勉強会IDへのアクセス

  • WHEN ユーザーが存在しない studyGroupId でアクセスする
  • THEN「勉強会が見つかりません」というエラーメッセージが表示される
  • THEN 一覧へ戻るボタンが表示される

Requirement: セッション一覧の表示

システムは勉強会に属するセッションをサマリーカード形式で一覧表示しなければならない(SHALL)。セッションは日付降順でソートされる。

Scenario: セッションサマリーカードの表示

  • WHEN 勉強会詳細ページが表示される
  • THEN 各セッションのサマリーカードに日付、参加人数、合計学習時間が表示される
  • THEN セッションは日付降順(最新が上)で表示される

Requirement: セッション参加者のアコーディオン展開

システムはセッションサマリーカードをクリックすると、そのセッションの参加者詳細をアコーディオン展開で表示しなければならない(SHALL)。

Scenario: セッションの展開

  • WHEN ユーザーがセッションサマリーカードをクリックする
  • THEN そのセッションの参加者一覧テーブル(名前、学習時間)がアコーディオン展開で表示される

Scenario: セッションの折りたたみ

  • WHEN 展開済みのセッションサマリーカードをクリックする
  • THEN 参加者一覧が折りたたまれる

Scenario: セッションが1件のみの場合のデフォルト展開

  • WHEN 勉強会のセッションが1件のみである
  • THEN そのセッションはデフォルトの展開状態で表示される

Requirement: 戻るボタンの表示

システムはページ上部に一覧へ戻るボタンを表示しなければならない(SHALL)。

Scenario: 戻るボタンの動作

  • WHEN ユーザーが「一覧へ戻る」ボタンをクリックする
  • THEN トップページ(ダッシュボード)へ遷移する

Requirement: ローディング状態の表示

システムはデータ取得中にローディング表示をしなければならない(SHALL)。

Scenario: データ取得中の表示

  • WHEN 勉強会詳細ページのデータ取得中である
  • THEN ローディングインジケーター(スピナー)と「読み込み中。..」テキストが表示される

Requirement: データ取得エラーの処理

システムはデータ取得に失敗した場合、エラーメッセージを表示しなければならない(SHALL)。

Scenario: データ取得エラー時の表示

  • WHEN index.json の取得に失敗する
  • THEN エラーメッセージが表示される
  • THEN 一覧へ戻るボタンが表示される