メインコンテンツまでスキップ

申請システム ユーザーフロー

システム構成

Discord ユーザー
↕ discord.js (form-bot / vps)
form-worker (Cloudflare Workers)
↕ D1 (SQLite)
sho-room (React SPA / 実行委員UI)

Phase 1 — 基礎情報申請

1. 申請開始

  1. 実行委員が /setup コマンドでサーバー設定を登録済であること
  2. 申請者が任意のチャンネルで「申請を開始する」ボタンを押す
  3. 団体名モーダル が表示される
    • 団体名
    • 団体名(フリガナ)

2. チャンネル作成

  • モーダル送信後、申請専用チャンネルが自動作成される(#申請-{団体名} など)
  • form-worker に申請レコードが新規作成される(ステータス: in_progress
  • 申請者に専用チャンネルへの誘導メッセージが返る

3. 代表者情報入力

申請チャンネルで以下を入力:

  • 代表者氏名 / フリガナ
  • 学籍番号(教員は空欄可)
  • 電話番号
  • メールアドレス

4. 申請者情報

「代表者と同一ですか?」ボタンで分岐:

選択動作
同一申請者情報をスキップ
異なる申請者氏名 / フリガナ / 学籍番号 / 電話 / メールを追加入力

5. 企画情報入力

  • 企画名
  • 企画詳細・説明

6. 参加形式・日程選択

セレクトメニューで選択:

項目選択肢
参加形式ステージ / 講堂 / 屋外露店 / 講義棟
参加日土曜日 / 日曜日 / 両日

「確定する」ボタンで確定。

7. 受付完了・来室案内

  • 参加形式・日程を確定した時点で基礎情報を form-worker に PUT し、ステータスを pending_basic に更新
  • 申請チャンネルに基礎情報確認メッセージ(承認/修正依頼/却下 ボタン付き)が投稿される
  • 申請者には以下の案内メッセージが表示される:
    • 署名済みの同意書(印刷・直筆署名したもの)を持参
    • 一時預かり金を持参
    • 学祭室へ来室するよう案内

Phase 1 審査(実行委員)

基礎情報確認メッセージのボタン、または sho-room の申請詳細ページから操作。

操作ステータス遷移動作
基礎情報 承認approved_basicチャンネル昇格・ロール付与、基礎情報確認書PDF送信、Phase2 開始案内送信
修正依頼revision_basicコメントをチャンネルに通知、再入力ボタン表示
却下rejectedチャンネルに却下通知、ログチャンネルに記録

Phase 2 — 詳細情報申請

「詳細情報入力を開始する」ボタンで開始。参加形式によってフローが分岐する。

共通ステップ

  1. 電力申請 — 電気機器名・電力量をモーダルで入力
  2. 貸出備品申請 — 机・椅子・ホワイトボード等(参加形式別に追加フィールドあり)

参加形式別フロー

ステージ / 講堂

電力申請
→ 発表時間選択(15分刻み、セレクトメニュー)
→ 備品申請
→ レイアウト図アップロード(JPEG)
→ メンバーリスト CSV アップロード
→ 特記事項(任意)
→ 提出

備品追加フィールド:

  • ステージ: 小ステージ台数
  • 講堂: 長机台数

屋外露店

電力申請
→ 備品申請(布パーテーション含む)
→ ガス申請(あり/なし)
→ あり: コンロ数・着火器具・持込火器等を入力
→ 販売物(あり/なし)
→ あり: 販売物詳細表 CSV アップロード
→ 食品販売(あり/なし)
→ あり: 材料表・調理過程・車搬送有無を入力
→ レイアウト図アップロード(JPEG)
→ メンバーリスト CSV アップロード
→ 特記事項(任意)
→ 提出

講義棟

電力申請
→ 備品申請(布パーテーション・プロジェクター含む)
→ 販売物(あり/なし)
→ あり: 販売物詳細表 CSV アップロード
→ レイアウト希望 第1希望〜第3希望(各 JPEG + 希望位置ラジオ)
→ メンバーリスト CSV アップロード
→ 特記事項(任意)
→ 提出

レイアウト位置:

  • 全体 / 前方のみ / 後方のみ

提出処理

  • 詳細情報を form-worker に PUT
  • 備品申請・メンバーリストを PUT(CSV はパースして登録)
  • ステータスを pending_detail に更新
  • 申請チャンネルに詳細情報確認メッセージ(承認/修正依頼/却下 ボタン付き)を投稿

Phase 2 審査(実行委員)

sho-room の申請詳細ページ(/forms/:id)からのみ操作可能。Discord ボット側には審査ボタンを配置しない。

操作ステータス遷移動作
詳細情報 承認approved詳細情報確認書 PDF 送信、最終承認メッセージ送信、ログ記録
修正依頼revision_detailステータス更新のみ(Discord 通知なし)
却下rejectedステータス更新のみ(Discord 通知なし)

ステータス遷移図

in_progress
↓ 参加形式・日程確定(基礎情報送信)
pending_basic
↓ 承認 → approved_basic
↓ 修正依頼 → revision_basic → (再入力) → pending_basic
↓ 却下 → rejected

approved_basic
↓ Phase2 開始・提出
pending_detail
↓ 承認 → approved(最終)
↓ 修正依頼 → revision_detail → (再入力) → pending_detail
↓ 却下 → rejected

ファイルフォーマット仕様

ファイル形式上限バリデーション
電力申請CSV5 MB.csv 拡張子
レイアウト図JPEG10 MB.jpg / .jpeg 拡張子
メンバーリストCSV5 MBヘッダなし、列: 学籍番号,氏名
販売物詳細表CSV5 MB.csv 拡張子

実行委員向け管理コマンド(form-bot)

コマンド説明
/setupチャンネル・ロール等のサーバー設定
/list申請一覧表示(ステータス・形式フィルタ可)
/deadline set申請締め切り日時を設定
/deadline clear締め切りを解除
/timetableタイムテーブル生成(stage/hall向け)
/export pdf指定申請の確認書 PDF を再出力

sho-room(審査管理UI)

/forms — 申請一覧(ステータス・参加形式でフィルタ可)

/forms/:id — 申請詳細

  • 基礎情報・詳細情報・メンバー・備品の表示
  • 審査操作(FORM_SUBMISSION_APPROVE 権限が必要)
    • 承認 / 修正依頼 / 却下
    • PATCH /api/forms/applications/:id/status を呼び出す