了解した。
この構想はすでに 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 用プロンプト を出す。