了解した。
この構想はすでに Flask+MySQL の最小 OS カーネルとして成立するレベルまで明確に書けている。
ここからは、あなたの構想を Gemini に渡すための OS プロンプト(役割指定+制約+出力形式) に変換するフェーズに入れる。
ただし、まずは あなたの構想を OS 的に整理し直し、欠けている部分を補強し、Gemini が誤解しない構造 に整える。
そのうえで、次のターンで 完全な Gemini 用プロンプト を生成する。
◆ Flask+MySQL 学習環境(簿記3級)
🔧 OS 的に整理した「構想レベル仕様」
1. アプリの目的(OS のミッション)
- 不特定多数のユーザーが Google ログインで認証
- セッション管理
- 簿記3級レベルの学習環境
- 「学ぶこと」「演習問題」「解答」「採点」「進捗管理」ができる
- Web サーバ単体で意味のあるアプリ(Roblox 依存なし)
2. Flask のディレクトリ構造(bookkeepings/src)
bookkeepings/
src/
controllers/ ← Blueprint で機能分割
templates/ ← base.html, page.html
static_bookkeepings/
css/
style.css
js/
bookkeepings/
script_a_data.js
script_b_common.js
script_c_canvas.js
script_d_events.js
script_e_button.js
…(順序を維持できる命名)
● controllers(Blueprint)
- auth_controller.py(Google ログイン)
- learn_controller.py(学ぶこと)
- exercise_controller.py(演習問題)
- answer_controller.py(解答・採点)
- progress_controller.py(進捗)
※ 名前は例。あなたが指定しなくても Gemini が生成できる。
3. templates の構造
base.html
- CSS 読み込み
- JavaScript 読み込み
- block content を定義
page.html
- base.html を継承
- header / left / center / right / footer の 5 分割
- left:学ぶこと
- right:演習問題
- center:解答時のみ表示(普段は width=0)
- header:
- プルダウンメニュー
- 教材 2 階層メニュー
- 採点開始
- 解答表示
- 進捗表示
4. MySQL(db=bookkeepings, user=bookkeepings, password=bookkeepings0000)
必要なテーブル(構想レベル)
- users(Google ID, name, email, created_at)
- learn_items(教材の階層構造)
- exercises(問題文、穴あき、関連仕訳など)
- answers(ユーザーの解答)
- scores(採点結果)
- progress(進捗管理)
※ インデックスは Gemini に任せてよい(構造を理解して作る)。
5. API(Blueprint)
auth
- /auth/login
- /auth/callback
- /auth/logout
learn
- /learn/list
- /learn/item/<id>
exercise
- /exercise/list
- /exercise/get/<id>
answer
- /answer/submit
- /answer/score
progress
- /progress/get
- /progress/update
※ これも構想レベルで十分。
6. JavaScript の役割
- script_a_data.js:データ定義
- script_b_common.js:共通処理
- script_c_canvas.js:canvas 描画(仕訳など)
- script_d_events.js:イベント処理
- script_e_button.js:ボタン処理
- …順序を維持できる命名規則
7. Gemini に強制する制約(重要)
- 既存コードを削らない(追記のみ)
- 関数名・変数名は一貫性を維持
- ファイル構造は絶対に変えない
- Blueprint 構造を維持
- templates の block 構造を維持
- JavaScript の命名規則を維持
- MySQL のテーブル名・カラム名は変更しない
- バッチは “ファイルを echo で生成する” 形式
8. バッチの出力形式
- Flask のファイル一式を生成するバッチ
- MySQL の .sql を生成するバッチ
- すべて echo で出力
- 1 ファイルずつ生成
- 生成先は bookkeepings/src 以下
◆ あなたへ
この構想は Gemini に渡すための OS 仕様として完全に成立している。
次のターンで、これを そのまま Gemini に渡せる “プロンプト+役割指定+制約+出力形式” に変換する。
つまり:
- あなたの構想
→ 僕が OS プロンプトに変換
→ Gemini が Flask+MySQL の最小アプリを生成
→ バッチで物理ファイル化
この流れが完成する。
◆ 次のステップ
この構想を Gemini に渡すための OS プロンプトを生成していいか?
あなたの “はい” を受けて、
次のターンで 完全な Gemini 用プロンプト を出す。