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)
- 検索バー固定配置
- ステータスバッジ表示(入場済み/未入場)
F-006: Trackable Links
- 短縮URLプロジェクトの一覧・作成・QR生成
fwd.soshosai.comAPI連携
F-007: 管理者システム
- スタッフ検索・一覧(ページネーション)
- スタッフ詳細・操作モーダル
- BAN操作(理由入力、確認ダイアログ)
- 権限レベル比較による操作制限
F-008: イベント管理
- 学内イベントデータの操作
- 参加者一覧(ページネーション)
F-009: LINE連携
- LINE公式アカウント連携
- 受信メッセージ一覧・返信管理
F-010: 備品管理
- 備品一覧、検索、編集、CSV出力
- 詳細は備品管理システム仕様書を参照
5. 認証フロー
6. 権限とDiscordロールの連携
- スタッフが持つDiscordロールを取得
Departmentsテーブルで該当ロールの権限を確認- 複数ロールがある場合、最高権限を
Staffs.authorityに設定
7. データ管理ルール
- ID形式: UUIDv7(時系列ソート可能)
- 日時形式: SQLiteのDATETIME関数(
DATETIME('now', 'localtime')) - ページネーション: サーバーサイドで実装
- 検索: 「検索」ボタン押下時のみクエリ発行(リアルタイム検索禁止)
DB設計の詳細はDB設計を参照
8. 用語集
| 用語 | 意味 |
|---|---|
| 蒼翔祭 | 会津大学学園祭の正式名称 |
| 学祭委員 | 学園祭実行委員会のメンバー |
| Sho-Room | 学祭委員専用の統合管理ツール(本システム) |
| FZ-N1 | 現場で使うハンディ端末(備品管理で使用) |
| JWT | JSON Web Token。認証情報を安全にやり取りするための仕組み |
| BAN | アカウント停止措置 |
9. サポート連絡先
システムに関する質問やトラブルは、管理チームにDiscordでお問い合わせください。