コンテンツにスキップ

Proposal

Why

メンバー明細画面(MemberDetailPage)は現在、勉強会ごとのアコーディオンで出席履歴を1カラム表示している。セッションデータが蓄積されていくと、全期間の履歴が縦に長く並び、特定の期間の活動状況を把握しづらい。年度の上期・下期で区切った2カラムレイアウトに変更することで、期ごとの参加状況を俯瞰しやすくし、関心のある期を選択して詳細を確認できるようにする。

What Changes

  • メンバー明細画面のレイアウトを期別2カラム構造に変更する
  • 左列: 期(上期/下期)のサマリーリスト。各期の参加回数・合計時間を表示し、クリックで選択する
  • 右列: 選択中の期に属するセッションを、勉強会ごとのアコーディオンで表示する(既存のアコーディオン構造を維持)
  • 期の定義を導入する
  • 上期 = 4月〜9月、下期 = 10月〜3月
  • 表記は「2025年度 上期」形式
  • 期は降順で表示し、デフォルトで最新の期を選択する
  • レスポンシブ対応: lg 以上で2カラム、それ未満で縦積みレイアウト
  • ヘッダー(メンバー名・通算合計)は既存のまま維持する
  • dev-fixtures に複数期にまたがるセッションデータを追加し、期の切り替えをデモ可能にする

Capabilities

New Capabilities

  • biannual-period-layout: メンバー明細画面の期別2カラムレイアウト。セッションを年度の上期・下期に分類し、左列で期サマリーの選択、右列で選択した期の勉強会別アコーディオン表示を行う。レスポンシブ対応(lg以上で2カラム、それ未満で縦積み)を含む
  • biannual-dev-fixtures: 期の切り替えをデモするための複数期にまたがるdev-fixturesデータの追加。既存の2026年1〜2月データに加え、2025年度上期(4〜9月)のセッションデータを追加する

Modified Capabilities

なし

Impact

  • ページ変更: src/pages/MemberDetailPage.jsx — グルーピングロジックに期の分類を追加し、2カラムレイアウトに変更
  • ユーティリティ追加: 日付から期(年度・上期/下期)を算出するヘルパー関数の追加
  • dev-fixtures: dev-fixtures/data/index.json のセッションID追加と、dev-fixtures/data/sessions/ への新規セッションJSONファイル追加
  • テスト: MemberDetailPage のユニットテストを期別表示に対応させて更新。E2Eテストのセレクター変更が必要になる可能性あり
  • データ構造: index.json / sessions/*.json のスキーマ変更なし(既存の date フィールドから期を算出)
  • サービス: DataFetcher、CsvTransformer 等の変更なし