Reference

Variable / Setting Reference

src/constants/custom.config.ts および public/data/*.json 内で定義されている各変数が、画面 UI や各機能のどの部分に対応・影響しているかの一覧表です。

1. custom.config.ts 変数対応表

アプリ全体の基本メタデータ、ブランドカラー、各機能の表示トグルを制御する変数群です。

変数名 (Key Path)型 (Type)デフォルト例対応する UI / 影響範囲
identity.eventNamestring"FesTime 2026"イベント名
identity.organizationNamestring"Organization"イベントを運営する団体名
identity.appTitlestring"FesTime App"ブラウザの <title>
identity.appDescriptionstring"Real-time status, voting, and management"SEO用 <meta name="description">、OGP説明文
identity.eventStartDatestring (YYYY-MM-DD)"2026-05-27"イベント開始の日付判定 (タイムテーブル Day1 連動)
identity.eventEndDatestring (YYYY-MM-DD)"2026-05-28"イベント終了の日付判定 (タイムテーブル Day2 連動)
navigation.homepageUrlstring"https://rsu-suba.github.io/FesTime/"イベント公式サイト URL
navigation.basePathstring"/FesTime"サブディレクトリ配信時のベースパス
theme.primaryColor.lightstring (HEX)"#1f1f1f"ライトモード時の CSS 変数 --main-color、主要ボタン枠線
theme.primaryColor.darkstring (HEX)"#f0f0f0"ダークモード時の CSS 変数 --main-color、主要ボタン枠線
theme.backgroundColor.lightstring (HEX)"#ffffff"ライトモード時の CSS 変数 --bg-color、カード背景色
theme.backgroundColor.darkstring (HEX)"#18181a"ダークモード時の CSS 変数 --bg-color、カード背景色
features.boothbooleantrue模擬店・混雑状況の有効化
features.votebooleantrue人気投票の有効化
features.busbooleantrueバス時刻表の有効化
features.qabooleantrueQ&A 掲示板の有効化
features.lostbooleantrue落とし物の有効化
features.exhibitionbooleantrue展示物一覧の有効化
features.eventbooleantrueタイムテーブル・ステージ進行の有効化
features.newsbooleantrueお知らせ配信の有効化
features.mapbooleantrueマップの有効化
features.closedOverlaybooleanfalse終了後のオーバーレイ表示
bus.defaultFromStopstring"キャンパス 発"バスカードの初期選択「出発地」ドロップダウン値
bus.defaultToStopstring"中央駅 着"バスカードの初期選択「到着地」ドロップダウン値

2. 各 JSON マスターデータの変数対応表

public/data/ 配下の各 JSON ファイルで定義される変数の対応表とフォーマット例です。

1. 模擬店データ public/data/booth.json

各模擬店の基本情報、メニュー、および出店場所を定義します。

キー名 (Key)型 (Type)設定例対応する UI / 影響範囲
idnumber1 : 連番店舗一意識別 ID (Supabase データベース同期キー)
namestring"ポップコーン"模擬店一覧カードの見出し、投票フォームの選択肢名
teamstring"チームA"出店団体・クラス名
placestring"テント番号1"出店場所・ブース番号
menuArray<Item>[{"content": "100g", "price": 200}]販売品目 content と価格 price の配列
imagestring"./img/booth/popcorn.jpg"模擬店の紹介画像パス
public/data/booth.json
[
  {
    "id": 1,
    "name": "ポップコーン",
    "team": "チームA",
    "place": "テント番号1",
    "menu": [
      { "content": "100g", "price": 200 }
    ],
    "image": ""
  },
  {
    "id": 2,
    "name": "焼き鳥",
    "team": "チームB",
    "place": "テント番号2",
    "menu": [
      { "content": "1本", "price": 150 },
      { "content": "3本", "price": 400 }
    ],
    "image": ""
  }
]

2. タイムテーブル public/data/events.json

ステージや各会場プログラムのスケジュールを日程別に定義します。

キー名 (Key)型 (Type)設定例対応する UI / 影響範囲
day1 / day2Event[][...]開催日程ごとのイベント配列
namestring"オープニング"タイムテーブルカード内の企画タイトル
startstring (HH:mm)"10:00"開始時刻 (進行中ハイライト判定)
endstring (HH:mm)"10:20"終了時刻 (プログレスバー計算)
public/data/events.json
{
  "day1": [
    { "name": "オープニング", "start": "10:00", "end": "10:20" },
    { "name": "カラオケ大会", "start": "10:40", "end": "11:10" }
  ],
  "day2": [
    { "name": "ライブステージ", "start": "10:10", "end": "12:10" },
    { "name": "吹奏楽部 演奏", "start": "12:30", "end": "13:15" }
  ]
}

3. スマートバス時刻表 public/data/bus.json

往路 (Outbound) と復路 (Inbound) の各停留所および運行ダイヤをマトリクス形式で定義します。

キー名 (Key)型 (Type)設定例対応する UI / 影響範囲
Outbound / InboundRouteData{ route: [...], time: [...] }系統ごとの路線定義
routestring[]["キャンパス 発", "中央駅 着"]経由する停留所名の配列 (乗降地セレクタの選択肢)
timestring[][] (HH:mm)[["08:00", ...], ["08:30", ...]]各停留所の発着時刻配列 (インデックス順に対応)
public/data/bus.json
{
  "Outbound": {
    "route": ["キャンパス 発", "中央駅 着"],
    "time": [
      ["08:00", "09:00", "10:00", "11:00"],
      ["08:30", "09:30", "10:30", "11:30"]
    ]
  },
  "Inbound": {
    "route": ["中央駅 発", "キャンパス 着"],
    "time": [
      ["13:00", "14:00", "15:00", "16:00"],
      ["13:30", "14:30", "15:30", "16:30"]
    ]
  }
}

4. 展示企画データ public/data/exhibitions.json

校内各教室や体育館で行われるクラス展示・部活動展示の情報を定義します。

キー名 (Key)型 (Type)設定例対応する UI / 影響範囲
idnumber1展示一意識別 ID (マップ・QRスポット連動キー)
namestring"写真展示"展示企画のタイトル、投票フォームの選択肢名
teamstring"写真同好会"出展クラス・部活動名
placestring"教室1"展示場所・教室名
imagestring"./img/exhibition/ClassA.jpg"展示企画の紹介画像パス
public/data/exhibitions.json
[
  {
    "id": 1,
    "name": "写真展示",
    "team": "写真同好会",
    "place": "教室1",
    "image": ""
  },
  {
    "id": 2,
    "name": "フォトスポット",
    "team": "実行委員会",
    "place": "フォトブース",
    "image": ""
  }
]

5. マップ & QR現在地スポット public/data/spots.json

校内に設置された各 QR コードの ID、場所名、および周辺にある模擬店・展示の ID を定義します。

キー名 (Key)型 (Type)設定例対応する UI / 影響範囲
idstring"1F_NW"QR コードのクエリ ID ?spot=1F_NW
locationstring"校舎 1階 北西"現在地スポットカードの見出し表示
nearbyStallsnumber[][1, 2]現在地周辺の模擬店 ID 配列 (booth.jsonid と連動)
nearbyExhibitionsnumber[][1, 3]現在地周辺の展示 ID 配列 (exhibitions.jsonid と連動)
public/data/spots.json
[
  {
    "id": "1F_NW",
    "location": "校舎 1階 北西",
    "nearbyStalls": [1, 2],
    "nearbyExhibitions": [1]
  },
  {
    "id": "2F_NE",
    "location": "校舎 2階 北東",
    "nearbyStalls": [3, 4],
    "nearbyExhibitions": [2, 3]
  }
]

6. 投票対象マスター public/data/vote.json

人気投票の対象となる模擬店 (s) および展示 (e) の ID と名称を定義します。
注意: SQLによる自動生成のため、変更が発生すると投票機能が正しく動かない可能性があります。

キー名 (Key)型 (Type)設定例対応する UI / 影響範囲
idstring"01" / "31"投票ターゲットの一意識別 ID
namestring"ポップコーン"投票画面の選択肢名および管理者集計画面の項目名
category"s" | "e""s" (模擬店) / "e" (展示)投票部門のカテゴリ区分
public/data/vote.json
[
  { "id": "01", "name": "ポップコーン", "category": "s" },
  { "id": "02", "name": "焼き鳥", "category": "s" },
  { "id": "31", "name": "写真展示", "category": "e" },
  { "id": "32", "name": "フォトスポット", "category": "e" }
]