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

Sho-Room 仕様書(概要)

1. システムの目的

本システムは、会津大学学園祭(蒼翔祭)実行委員会 のための統合管理ツールです。

来場者管理、イベント運営、備品管理、外部連携など、学祭運営に必要な機能を一元的に提供します。


2. 技術スタック

  • Framework: Vite + React(TypeScript)
  • Hosting: Cloudflare Pages
  • Database: Cloudflare D1 (soshosai-system-db)
  • API: v3.api.soshosai.com(Hono / Cloudflare Workers)
  • UI: Shadcn UI + Tailwind CSS

3. 対象ユーザー

権限できること
一般スタッフ (staff)入場者確認、来場者データ閲覧、イベント参加者確認
部門管理者 (dept_admin)上記 + データエクスポート、一部設定変更
システム管理者 (system_admin)上記 + スタッフ管理、BAN操作
最高管理者 (super_admin)すべての操作(システムリセット、マスタ編集等)

4. 機能一覧

F-001: 認証基盤

  • Discord OAuth2による認証
  • ログインボタンなし、未認証時は自動リダイレクト
  • BANユーザーは403 Forbidden表示

F-002: 入場者データ表示

  • 来場者データの閲覧(ページネーション対応)
  • ID、氏名、属性等での検索
  • レスポンシブ対応(PC: テーブル、Mobile: カードリスト)

F-003: 入場者グループ管理

  • グループ情報の閲覧・修正
  • グループID検索
  • 紐づくメンバー情報の展開表示

F-004: 入場者数管理(ダッシュボード)

  • リアルタイム集計データの可視化
  • 自動更新(60秒ポーリング)または手動リロード
  • Rechartsによるグラフ描画

F-005: 入場者確認

  • 予約・入場資格の照会(Read-only)
  • 検索バー固定配置
  • ステータスバッジ表示(入場済み/未入場)
  • 短縮URLプロジェクトの一覧・作成・QR生成
  • fwd.soshosai.com API連携

F-007: 管理者システム

  • スタッフ検索・一覧(ページネーション)
  • スタッフ詳細・操作モーダル
  • BAN操作(理由入力、確認ダイアログ)
  • 権限レベル比較による操作制限

F-008: イベント管理

  • 学内イベントデータの操作
  • 参加者一覧(ページネーション)

F-009: LINE連携

  • LINE公式アカウント連携
  • 受信メッセージ一覧・返信管理

F-010: 備品管理


5. 認証フロー


6. 権限とDiscordロールの連携

  1. スタッフが持つDiscordロールを取得
  2. Departmentsテーブルで該当ロールの権限を確認
  3. 複数ロールがある場合、最高権限をStaffs.authorityに設定

7. データ管理ルール

  • ID形式: UUIDv7(時系列ソート可能)
  • 日時形式: SQLiteのDATETIME関数(DATETIME('now', 'localtime')
  • ページネーション: サーバーサイドで実装
  • 検索: 「検索」ボタン押下時のみクエリ発行(リアルタイム検索禁止)

DB設計の詳細はDB設計を参照


8. 用語集

用語意味
蒼翔祭会津大学学園祭の正式名称
学祭委員学園祭実行委員会のメンバー
Sho-Room学祭委員専用の統合管理ツール(本システム)
FZ-N1現場で使うハンディ端末(備品管理で使用)
JWTJSON Web Token。認証情報を安全にやり取りするための仕組み
BANアカウント停止措置

9. サポート連絡先

システムに関する質問やトラブルは、管理チームにDiscordでお問い合わせください。