構成
| フロントエンド | HTML / CSS / JavaScript |
|---|---|
| 質問データ | シリーズごとのJSON(Couples / Family / Friends) |
| バックエンド | なし。静的ファイルをブラウザへ配信 |
| ビルドツール | 不要 |
| アカウント | 不要 |
| セッション状態 | JavaScriptのメモリ上のみ。永続ストレージは使用しない |
ファイルとURL
index.html | Omoi for全体のハブ。3シリーズへのリンクと全体の使い方 |
|---|---|
couples/index.html | Omoi for Couples単体の入口 |
family/index.html | Omoi for Family単体の入口 |
friends/index.html | Omoi for Friends単体の入口 |
shared/app.js | シリーズ共通のLevel選択・質問表示・セッション進行 |
shared/questions/*.json | シリーズごとの質問データ |
質問の選択ロジック
01
シリーズを判定する
ページのdata-audienceから、Couples・Family・FriendsのどのJSONを読むかを決めます。
02
JSONを読み込む
ブラウザがshared/questions/{audience}.jsonを読み込み、ID・質問文・Levelが正しいデータだけを利用します。
03
Levelで絞る
選択されたLevelと一致する質問のプールをつくります。
04
ランダムに選ぶ
プールをシャッフルし、3 / 5 / 10 / 15問のセッション数に合わせて質問を選びます。
05
メモリ上で進める
選択した質問と現在位置はJavaScriptのメモリ上で保持します。再読み込みやLevel変更でリセットされます。
質問データ
| Couples | 701問(Loves由来698問 + editorial 3問) |
|---|---|
| Family | 200問(Level 1〜4を各50問) |
| Friends | 200問(Level 1〜4を各50問) |
| 質問オブジェクト | id、level、text、categoryなど |
shared/questions/couples.json
shared/questions/family.json
shared/questions/friends.json
// 共通ロジック
fetch(`../shared/questions/${audience}.json`)
Couplesの由来、編集質問、コミット・Blob・SHA-256の情報は、Take-forリポジトリのtools/PROVENANCE.mdとREADMEで確認できます。
正本とライセンス
実装と質問データの最新状態は、公式サイトの説明文ではなく、Take-forリポジトリのmainブランチを正本とします。仕様やデータが変わった場合は、このページも更新します。
