← 成果物一覧に戻る

要件定義書

Version 2.0.0 | SB-Ticket(シュートボクシング)

機能要件定義書

プロジェクト: シュートボクシング協会 統合PWAアプリ(SB-Ticket) バージョン: 2.0 作成日: 2026-03-16 ソース: SB_要件定義書_v2.0.docx(株式会社concept作成・AGI開発用確定版)


1. プロジェクト概要

1-1. システムの目的

シュートボクシング協会の試合チケット販売を選手個人レベルでデジタル管理し、ファンとの継続関係を構築する。試合決定と同時にLP(ランディングページ)を自動生成・公開し協会主導でもチケット販売を促進。選手へのキャッシュバック還元・スポンサー営業支援・concept社へのAGI開発案件紹介を通じたキックバック収益モデルを一元管理するPWAアプリ。

1-2. 参考サービス

ボクシングチケットドットコム (boxing-ticket.com) — ボクシング界で755名の選手が登録する実稼働サービス。

取り込む思想:

本システムの追加機能:


2. 利用者・権限ロール

ロール対象者主な権限
協会管理者協会スタッフ1〜3名全機能(試合作成・LP生成・ノルマ設定・全選手データ閲覧・スポンサー管理・キックバック管理・還元設定)
選手登録選手(数十名規模)自分のデータのみ操作・公開ページ管理・ファンCRM・QR生成・自分のLP閲覧
スタッフ協会スタッフ(閲覧のみ)全選手の販売状況・LP閲覧のみ。編集不可
concept管理者株式会社concept社内営業リード管理・ステータス入力・協会への公開許可・キックバック管理

3. 認証・ログイン仕様

3-1. 選手・協会管理者ログインフロー

ステップ内容備考
1協会が発行したID(英数字)+初期パスワードでログイン初期パスワードは協会管理者が設定して選手に通知
2初回ログイン時に強制パスワード変更画面へリダイレクト8文字以上・大文字小文字英数字+記号混在を必須バリデーション
3電話番号(携帯)を登録SMSが受信できる番号のみ受け付け
4SMS認証コード(6桁)を入力して認証完了有効期限5分。3回ミスでコード再送要求
5以降のログインはID+パスワード→SMS認証コードの2段階SMS送信にはTwilio Verify APIを使用

3-2. パスワードリセット

「パスワードを忘れた」→ 登録電話番号にSMSでリセットコード送信 → 新パスワード設定(前回パスワードの再使用不可)

3-3. アカウントロック

パスワード or SMS認証コードを5回連続ミス → アカウントロック → 協会管理者のみ解除可能


4. 試合(イベント)管理

4-1. 作成・編集権限

協会管理者アカウントのみ。選手・スタッフは編集不可(閲覧のみ)。

4-2. 試合登録項目

項目入力形式必須備考
試合名テキスト(最大100文字)必須例:SHOOT BOXING 2026 act.2
開催日日付ピッカー必須
会場名テキスト(最大100文字)必須例:東京・後楽園ホール
開場・開始時間時刻ピッカー必須
チケット発売日日付ピッカー必須この日以降に選手QR・URLが公開される
チケット販売締切日日付ピッカー必須締切アラートの基準日
席種・定価席種名+金額の複数登録必須例:VIP席20,000円 / S席7,000円 / A席5,000円
販売経路チェックボックス(ぴあ/イープラス/手売り)必須複数選択可
チケットぴあURLURL入力ぴあ選択時必須refパラメータ付与の基底URL
出場選手アサイン登録済み選手リストから複数選択必須
宣材写真アップロード複数画像(JPG/PNG・最大20MB)LP生成時必須対戦選手ごとにアップロード
試合紹介テキストテキストエリア任意LP自動生成のプロンプト素材として使用

4-3. ノルマ設定


5. チケット販売・購入紐づけ仕様

5-1. チケットぴあ連携

項目仕様
URL生成選手×試合ごとにref付きURL自動生成 例:https://t.pia.jp/xxxx?ref=sb_player007_event001
QRコードqrcode.jsで自動QR化。PNG形式DL可。Instagram用1080×1920サイズでも出力
購入紐づけWebhookコールバックでPlayer_id+event_idを受け取り自動カウント
Webhook署名検証HMAC-SHA256でぴあからのリクエストを検証
購入者名コールバック受信後、選手がアプリで手入力(任意)。入力済みは次回補完候補に表示

5-2. 手売り管理

入力項目形式必須
購入者名テキスト任意
購入枚数数値必須
支払方法現金/振込/その他(選択式)必須
支払済フラグチェックボックス必須
支払日日付ピッカー任意
備考テキスト(最大200文字)任意

※ 当日券は協会管理者が試合終了後に一括手動入力


6. 選手個別公開ページ(外部公開)

6-1. URL形式

https://sb-ticket.com/fighters/[選手スラッグ] 例:https://sb-ticket.com/fighters/kasahara-naoki

6-2. 公開内容(ログイン不要)

表示要素内容備考
選手プロフィール氏名・所属ジム・階級・プロフィール画像選手が登録・編集可能
次の試合情報試合名・日時・会場・締切カウントダウン出場アサイン済みの直近試合を自動表示
チケット購入ボタン席種別ref付きURL(ぴあ・イープラス)へジャンプ
QRコード表示画面上でQRを表示。ファンがその場でスキャン可
スポンサー一覧企業名・ロゴ・リンク(協会承認済みのみ)
SNSシェアボタンLINE/Instagram/X/コピーの4種URLとQR画像をセットで共有
(Phase2)激励賞一覧激励した企業名・個人名を掲載(任意)Stripe決済連携後に実装

6-3. SNSシェア仕様


7. 試合LP(ランディングページ)自動生成機能

本システム最大の差別化機能。試合が決定する度に協会がワンクリックでLP(試合告知ページ)を自動生成し、選手の宣材写真を放り込むだけで対戦者デザインの本格的なLPが作られる。LPからの購入は協会チケット売上として計上され、選手への還元ロジックと連動する。

7-1. LP生成フロー

ステップ操作者内容
1. 試合登録協会管理者試合名・日時・会場・出場選手・宣材写真・試合紹介テキストを登録
2. LP自動生成システム(AI)登録データを基にAIがLP HTMLを自動生成。対戦カードのビジュアルデザインも自動作成
3. プレビュー確認協会管理者生成されたLPをプレビュー表示。必ず目視確認してから公開する
4. テキスト・画像編集協会管理者プレビュー上でテキストの修正・画像の差し替えが可能なビジュアルエディタを提供
5. 公開許可協会管理者「公開する」ボタンを押した時点でLP URLが外部公開。許可しない限り非公開(ドラフト状態)
6. SNS告知協会管理者公開後にLP URLをX/Instagram/LINEにワンクリックでシェアできるボタンを表示

7-2. LP自動生成の内容

要素自動生成内容編集可否
ヒービジュアル対戦選手の宣材写真を合成した対戦カードビジュアル(vs構図・名前・階級を自動配置)画像差し替え可
試合タイトル試合名・開催日・会場を大きく表示テキスト編集可
試合紹介文登録した紹介テキストを自動整形・AIが補完文を追加テキスト編集可
出場選手一覧出場全選手のプロフィールカード(写真・名前・所属・階級)を自動生成追加・削除可
チケット購入CTA協会用ref付きURLへのボタンを席種別に自動配置自動(編集不要)
席種・料金表登録した席種・定価を視覚的な料金表として表示テキスト編集可
SNSシェアボタンLP上にX/LINE/Instagramのシェアボタンを自動配置自動
スポンサー枠協会スポンサーのロゴ・リンクを自動表示自動(スポンサー管理と連動)

7-3. LP専用チケット購入URL(協会枠)

LPからの購入は「協会枠」として選手個人枠とは別に計上。 ref付きURL例:https://t.pia.jp/xxxx?ref=sb_association_event001

7-4. LP URL・ステータス管理

ステータス意味外部公開
ドラフト生成済みだが未確認・未公開非公開
確認中協会管理者がプレビュー確認中非公開
公開済み協会管理者が公開許可を押した状態公開
公開停止試合終了後または手動で非公開に戻した状態非公開

7-5. ビジュアルエディタ仕様


8. LP経由売上・選手還元ロジック

協会がLPを使って選手のためにチケットを売ってくれている。その売上の一部が自分の収入になる。→ 選手が「協会が自分を支援してくれている」「この競技で生計が成り立つ」と実感できる設計。

8-1. 売上の分類

販売経路計上先説明
選手個人QR/URL経由選手個人枠選手が自分でSNSやDMで配布したQR/URLからの購入
LP経由(協会枠)協会枠協会が作成・公開したLPからの購入
手売り選手個人枠選手が直接販売した分
当日券協会枠会場で当日販売した分

8-2. LP経由売上の選手還元設定

設定項目仕様備考
還元率0〜100%を1%単位で設定(例:50%)協会管理者が試合×選手ごとに設定
還元計算タイミング試合終了後にバッチで一括計算手動実行 or 開催日翌日に自動実行
還元額の自動計算LP経由売上金額 × 還元率 = 選手還元額(自動計算)
還元の公開設定選手が自分の還元額を確認できる画面を提供金額・試合名・支払予定日を表示
支払管理キックバック管理と同様に支払済フラグ・支払日を管理

8-3. 選手から見えるダッシュボード(収入サマリー)

表示項目内容
自分枠チケット売上合計個人QR/URL+手売りの合計販売枚数と金額
LP経由還元額(確定)協会LPからの還元として確定した金額(試合終了後)
LP経由還元額(見込み)現在販売中のLPからの見込み還元額(リアルタイム)
累計還元受取額過去全試合の累計受取金額
次回支払予定日未払い還元額の支払予定日

8-4. 協会管理者から見える還元管理画面

表示項目内容
試合別LP売上LP経由の総売上額(席種別内訳付き)
選手別還元額一覧試合×選手の還元額・支払ステータスを一覧表示
未払い還元総額協会が選手に支払うべき残高の合計
支払実行選手を選択して「支払済」にマークするボタン
CSV出力還元データ一覧をCSVエクスポート

9. ファンCRM(購入者管理)

9-1. 購入者データ構造

フィールド説明
fan_idUUID自動採番
player_idUUID紐づく選手
nameテキスト購入者名(手入力・暗号化保存)
phoneテキスト任意登録(AES-256暗号化保存)
emailテキスト任意登録(AES-256暗号化保存)
memoテキスト選手が自由入力できるメモ欄
created_atタイムスタンプ初回登録日

9-2. 購入履歴データ構造

フィールド説明
purchase_idUUID自動採番
fan_idUUID購入者
player_idUUID担当選手(またはassociation=協会枠)
event_idUUID試合
quantity整数購入枚数
routeENUMplayer_pia / player_eplus / association_lp / player_cash / player_transfer / day_ticket
paidBoolean支払済フラグ
purchased_atタイムスタンプ購入日時(自動 or 手入力)

9-3. 掘り起こし機能

直近2試合に購入履歴がないファンを自動でリストアップし「要フォロー」タグを付与。 選手はリストから対象者を選択 → 今回試合のref付きURL・QRをワンタップ生成 → LINE/X/コピーでシェア。

9-4. アクセスランキング

ランキング種別集計対象閲覧権限
試合別チケット販売枚数試合ごとの全選手販売枚数全ロール閲覧可(他選手の詳細数値は非表示・順位のみ)
選手公開ページPV数日次・週次・月次協会管理者のみ詳細閲覧可
デイリーランキング前日の販売枚数全ロール閲覧可(順位のみ)
LP経由販売ランキング協会LPからの購入数協会管理者のみ

10. 通知仕様

SMS送信にはTwilio Messaging API。二段階認証にはTwilio Verify APIを使用。

通知トリガー通知先方法メッセージ例
チケット購入コールバック受信(個人枠)担当選手SMS+プッシュ「[試合名]のチケットが1枚購入されました」
LP経由購入発生協会管理者プッシュ「[LP名]からチケットが[N]枚購入されました」
締切14日前該当選手プッシュ「[試合名]のチケット締切まで14日。達成率[X]%」
締切7日前・達成率50%以下選手+協会管理者SMS+プッシュ「[選手名]のチケット残[N]枚。締切7日」
締切3日前該当選手SMS+プッシュ「[試合名]チケット締切まで3日!」
締切1日前選手+協会管理者SMS+プッシュ「明日が締切!現在達成率[X]%」
LPが公開された全出場選手プッシュ「[試合名]のLPが公開されました!シェアしよう」
還元額確定該当選手SMS+プッシュ「[試合名]のLP還元額が確定しました:¥[N]」
還元支払完了該当選手SMS+プッシュ「[金額]円を振り込みました」

11. スポンサー管理

11-1. 登録項目

フィールド必須備考
紐づく選手選択(選手リスト)必須
スポンサー企業名テキスト必須
業種テキスト or カテゴリ選択必須
担当者名テキスト必須
担当者電話テキスト(AES-256暗号化)必須
担当者メールテキスト(AES-256暗号化)任意
契約金額数値(円)任意
契約開始日・終了日日付任意
conceptへの営業ステータスENUM必須
備考テキスト任意

11-2. conceptへの営業ステータス

ステータス意味入力者
未接触アプローチしていないconcept管理者
アプローチ済接触済み・返答待ちconcept管理者
商談中ヒアリング・提案中concept管理者
受注済契約成立concept管理者
見送り今回対象外concept管理者

11-3. concept社内CRM連携

concept管理者が自社画面でステータス・メモを入力 →「協会への公開を許可する」ボタン押下で協会画面に反映。 連携はconcept → 協会の一方向のみ。協会側は閲覧のみで編集不可。 公開許可の取り消しもconcept管理者が行う。取り消し後は協会画面から即時非表示。


12. キックバック管理

12-1. データ構造

フィールド説明
kickback_idUUID自動採番
sponsor_idUUID紹介元スポンサー企業
player_idUUID紹介した選手(任意)
contract_amount整数(円)concept AGI受注金額
kickback_rate小数(%)キックバック割合
kickback_amount整数(円)自動計算:contract_amount × kickback_rate / 100
payment_due_date日付支払予定日
paid_flagBoolean支払済フラグ
paid_date日付実際の支払日
transfer_infoテキスト(暗号化)振込先情報
memoテキスト備考

12-2. キックバック試算表

受注規模AGI売上キックバック15%キックバック20%
1社受注1,500万円225万円300万円
3社受注4,500万円675万円900万円
5社受注7,500万円1,125万円1,500万円

13. 協会管理画面 UIUX仕様

13-1. 協会ダッシュボード(ホーム)レイアウト

KPIカードを最上部に配置し、最重要指標を一目で把握できる構成。

エリア表示内容デザイン指定
KPIカード行直近試合の総販売枚数 / LP閲覧数 / 達成率 / 未払い還元額大きな数値+カウントアップアニメーション+前回比矢印
試合選択タブ直近・今後の試合を横スクロールタブで切り替えアクティブ試合をレッドアンダーライン
販売状況テーブル選手×ノルマ/販売/達成率をプログレスバー付きで一覧達成率80%以上=緑/50〜80%=黄/50%未満=赤
アラートパネル締切直前・達成率低い選手をサイドパネルで一覧赤ボーダーのカードで視覚的に警告
LP管理ショートカット試合LPのステータスをカード形式で表示ステータスバッジをカラーコードで区別

13-2. LP生成・管理画面

13-3. 選手管理画面

13-4. 操作性UX原則

原則実装内容
ゼロローディング体感主要データはスケルトンスクリーンで即座に枠を表示。データ取得後にフェードイン
一画面完結選手詳細・LP確認・通知送信はモーダル/スライドオーバーで完結。ページ遷移を最小化
操作の取り消し削除・公開停止などの破壊的操作はUndoトーストを3秒表示
キーボードショートカット⌘K でコマンドパレットを開き、試合検索・選手検索・LP生成にジャンプできる
レスポンシブ協会管理画面もPC/タブレット/スマホ全対応
エラー表示フォームバリデーションはリアルタイムでインライン表示。全体エラーはトーストで通知

14. 画面一覧

画面名主な利用者主な機能
トップ(公開)一般ファン選手一覧・試合スケジュール・公開LP一覧
試合LP(公開)一般ファン・SNSからの流入試合告知・チケット購入CTA・出場選手紹介・スポンサー
選手個別公開ページ一般ファンプロフィール・チケット購入・QR・スポンサー・SNSシェア
ログイン全ロールID・パスワード + SMS認証
初回パスワード変更選手(初回のみ)新パスワード設定・電話番号登録
選手ホーム選手ノルマ達成率・締切カウント・収入サマリー・ランキング
ファンCRM選手購入者リスト・掘り起こし対象ハイライト
QR・URL生成選手試合選択→QR/URL生成→SNSシェア
手売り入力フォーム選手購入者名・枚数・支払方法・支払済フラグ
自分の公開ページ編集選手プロフィール画像・SNSリンク・スポンサー申請
収入サマリー選手個人枠売上・LP還元額(確定/見込み)・累計受取額・次回支払日
協会ダッシュボード協会管理者・スタッフKPIカード・販売状況テーブル・アラートパネル・LP管理
試合管理(作成・編集)協会管理者試合情報登録・宣材写真アップロード・選手アサイン・ノルマ設定
LP生成・編集・公開管理協会管理者LP自動生成・ビジュアルエディタ・プレビュー・公開許可
還元管理協会管理者試合別LP売上・選手別還元額・支払管理・CSV出力
選手管理協会管理者アカウント発行・ロック解除・権限管理・スライドオーバー詳細
スポンサー管理協会管理者スポンサー登録・conceptステータス閲覧・承認
キックバック管理協会管理者・concept受注紐づけ・自動計算・支払管理
concept営業リード管理concept管理者営業ステータス入力・協会への公開許可
アクセスランキング全ロール(権限に応じた表示)日次・週次・月次ランキング・LP閲覧数
操作ログ協会管理者・concept管理者誰がいつ何を操作したかの全履歴

15. 開発スコープ(Phase定義)

Phase 1(今回AGI開発)

機能スコープ
選手個別公開ページ完全実装
試合LP自動生成・公開管理完全実装
LPビジュアルエディタ完全実装
LP経由売上の選手還元ロジック完全実装
選手収入サマリー画面完全実装
チケットぴあ ref付きURL生成完全実装
QRコード生成(Instagram用含む)完全実装
手売り管理完全実装
ファンCRM(購入者DB・掘り起こし)完全実装
SNSシェアボタン(LINE/X/コピー)完全実装
協会管理者ダッシュボード(洗練UI)完全実装
試合・ノルマ管理完全実装
SMS通知・二段階認証(Twilio)完全実装
アクセスランキング完全実装
スポンサー管理完全実装
キックバック管理完全実装
concept社内CRM連携完全実装
セキュリティ対策(全項目)完全実装
操作ログ完全実装
チケットぴあWebhookコールバック(本番)モック実装(ぴあ正式契約後に本番化)
イープラス連携(コールバック)URL生成のみ(コールバック連携はPhase2)

Phase 2以降


16. 技術仕様

領域技術スタック備考
アプリ形式PWA(Progressive Web App)Safari/Chrome/PC対応。Service Worker実装。ホーム画面追加でアプリアイコン化
フロントエンドReact + TypeScriptTypeScript必須(型安全性確保)。レスポンシブ必須
UIライブラリTailwind CSS + shadcn/ui + framer-motionshadcn/uiのダークテーマをベースにカスタマイズ
バックエンドFastAPI(Python)+ TypeScript型定義共有RESTful API設計。OpenAPI仕様書を自動生成
データベースSupabase(PostgreSQL)認証・RLS・リアルタイム購読・Storageを活用
認証Supabase Auth + Twilio Verify APISMS二段階認証。JWTはHttpOnly Cookieで管理
個人情報暗号化AES-256(Python cryptography)電話番号・メール・振込先情報を暗号化
QRコードqrcode.jsPNG DL可。Instagram用1080×1920サイズ出力対応
プッシュ通知Web Push API(Service Worker経由)
SMS通知Twilio Messaging API購入通知・締切アラート・還元通知
LP生成Claude API(Anthropic)+ HTML/CSS自動生成宣材写真のレイアウトはCanvas APIで合成
画像合成Canvas API + sharp(Node.js)対戦カードビジュアルの自動生成
レートリミットRedis(Upstash)APIレートリミット・ログイン試行制限
セキュリティヘッダーHelmet.js middlewareCSP/HSTS/X-Frame-Options等
フロントホスティングVercel
バックホスティングRender
ストレージSupabase Storage選手画像・スポンサーロゴ・LP宣材写真

Generated by CCAGI SDK Phase 1 - 2026-03-16 Source: SB_要件定義書_v2.0.docx (株式会社concept)