リクエスト詳細
✨ 既存アプリの改善
対応完了
対象アプリ: トーナメント表自動生成メーカー BracketArena
参加者ごとの戦績サマリー表示機能の追加
1. 目的
各参加者が大会全体を通じてどんな成績だったかを一覧で確認できる「戦績サマリー」パネルを追加する。主催者・観戦者が個人成績をひと目で把握でき、表彰や記念記録として活用できるようにする。
2. 具体的な仕様
【表示タイミング・場所】
- トーナメント表/リーグ順位表の下に「参加者別戦績」セクションを追加する。
- シングル/ダブルエリミでは優勝者確定後に自動展開し、それ以前でも「戦績を見る」ボタンで手動展開できる。
- リーグ戦では試合入力中も常時参照できるよう最初から表示する。
【表示内容(1行=1参加者)】
| 参加者名 | 試合数 | 勝利数 | 敗北数 | 獲得スコア合計 | 最高到達ラウンド |
- 「最高到達ラウンド」はシングル/ダブルエリミ向け。例: 「準決勝」「敗者復活2回戦」など。
- リーグ戦では既存の順位表と重複しないよう「スコア合計」「1試合平均スコア」を代替列にする。
- スコアが未入力の試合はスコア列を「-」で表示し、勝敗のみ集計する。
【データ集計ロジック(サーバーサイド PHP)】
- 既存の試合データ(matches テーブル)から参加者IDをキーに勝敗・スコアを集計するエンドポイント `GET /api/bracket/{id}/stats` を新設する。
- レスポンスは JSON 配列: [{participant_id, name, played, wins, losses, score_total, best_round}, ...]
- ダブルエリミは winners_bracket と losers_bracket を合算してカウントする。
【UI詳細】
- テーブルは既存の3テーマ(スポーツ/ゲーム/オフィス)の配色を継承したCSSで描画する。
- 優勝者行には王冠アイコン(Unicode ♛)を名前の前に付与する。
- PC: テーブル横スクロール不要な6列レイアウト。スマホ: 参加者名固定の横スクロール対応(overflow-x: auto)。
- PNG書き出しボタンを既存の書き出し機能と同じ仕組みで戦績テーブル単体にも追加する(html2canvas の対象要素を戦績セクションに切り替えるだけ)。
【閲覧URL対応】
- 閲覧専用URLでも戦績サマリーを同様に表示する。編集操作は一切不要なため、既存の閲覧モード判定ロジックに追記するだけでよい。
3. 既存機能との整合
- 既存の matches テーブル・participants テーブルに列追加・変更は行わず、SELECT集計のみで実現する。
- 既存のスコア入力・メモ機能・共有URL・PNG書き出し・テーマ切替はすべてそのまま動作する。
- 戦績セクションは折りたたみ式(<details> タグ活用)にするため、既存レイアウトの縦幅への影響を最小化する。
各参加者が大会全体を通じてどんな成績だったかを一覧で確認できる「戦績サマリー」パネルを追加する。主催者・観戦者が個人成績をひと目で把握でき、表彰や記念記録として活用できるようにする。
2. 具体的な仕様
【表示タイミング・場所】
- トーナメント表/リーグ順位表の下に「参加者別戦績」セクションを追加する。
- シングル/ダブルエリミでは優勝者確定後に自動展開し、それ以前でも「戦績を見る」ボタンで手動展開できる。
- リーグ戦では試合入力中も常時参照できるよう最初から表示する。
【表示内容(1行=1参加者)】
| 参加者名 | 試合数 | 勝利数 | 敗北数 | 獲得スコア合計 | 最高到達ラウンド |
- 「最高到達ラウンド」はシングル/ダブルエリミ向け。例: 「準決勝」「敗者復活2回戦」など。
- リーグ戦では既存の順位表と重複しないよう「スコア合計」「1試合平均スコア」を代替列にする。
- スコアが未入力の試合はスコア列を「-」で表示し、勝敗のみ集計する。
【データ集計ロジック(サーバーサイド PHP)】
- 既存の試合データ(matches テーブル)から参加者IDをキーに勝敗・スコアを集計するエンドポイント `GET /api/bracket/{id}/stats` を新設する。
- レスポンスは JSON 配列: [{participant_id, name, played, wins, losses, score_total, best_round}, ...]
- ダブルエリミは winners_bracket と losers_bracket を合算してカウントする。
【UI詳細】
- テーブルは既存の3テーマ(スポーツ/ゲーム/オフィス)の配色を継承したCSSで描画する。
- 優勝者行には王冠アイコン(Unicode ♛)を名前の前に付与する。
- PC: テーブル横スクロール不要な6列レイアウト。スマホ: 参加者名固定の横スクロール対応(overflow-x: auto)。
- PNG書き出しボタンを既存の書き出し機能と同じ仕組みで戦績テーブル単体にも追加する(html2canvas の対象要素を戦績セクションに切り替えるだけ)。
【閲覧URL対応】
- 閲覧専用URLでも戦績サマリーを同様に表示する。編集操作は一切不要なため、既存の閲覧モード判定ロジックに追記するだけでよい。
3. 既存機能との整合
- 既存の matches テーブル・participants テーブルに列追加・変更は行わず、SELECT集計のみで実現する。
- 既存のスコア入力・メモ機能・共有URL・PNG書き出し・テーマ切替はすべてそのまま動作する。
- 戦績セクションは折りたたみ式(<details> タグ活用)にするため、既存レイアウトの縦幅への影響を最小化する。
💬 返信 (3)
🛠 開発を開始しました (機能追加 (bracketarena))
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
📝 開発が完了しました
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
✅ リリース完了のお知らせ
ご要望いただいた「トーナメント表自動生成メーカー BracketArena」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=bracketarena
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/bracketarena/
ご利用ありがとうございます!
ご要望いただいた「トーナメント表自動生成メーカー BracketArena」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=bracketarena
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/bracketarena/
ご利用ありがとうございます!
Echo
Iris