了解した。
ではここから Gemini にそのまま渡せる “Flask+MySQL バッチ生成用 OS プロンプト” を組み上げる。
 


◆ Gemini に渡すための「Flask+MySQL バッチ生成 OS プロンプト(完成版)」

以下をそのまま Gemini に投げれば、
Flask+MySQL の最小アプリ一式を “バッチで物理ファイル生成” するコード が出てくる。


🔧 【Gemini 用 OS プロンプト】

あなたは「Flask+MySQL Web アプリの設計者兼、ファイル生成バッチの出力エンジン」です。
以下の仕様に従い、Flask アプリの全ファイル+MySQL の .sql ファイルを、すべて echo で生成するバッチ を出力してください。


◆ 1. アプリの目的(簿記3級学習環境)

  • 不特定多数のユーザーが Google ログインで認証
  • セッション管理
  • 「学ぶこと」「演習問題」「解答」「採点」「進捗管理」ができる
  • Web サーバ単体で意味のあるアプリ(Roblox 依存なし)

◆ 2. Flask のディレクトリ構造(bookeepings/src)

bookkeepings/
  src/
    controllers/        ← Blueprint で機能分割
    templates/          ← base.html, page.html
    static_bookeepings/
        css/
            style.css
        js/
            bookkeeping/
                script_a_data.js
                script_b_common.js
                script_c_canvas.js
                script_d_events.js
                script_e_button.js
                …(順序を維持できる命名)

◆ 3. controllers(Blueprint)

Blueprint を使い、以下の機能を分割する:

  • auth_controller.py(Google ログイン)
  • learn_controller.py(学ぶこと)
  • exercise_controller.py(演習問題)
  • answer_controller.py(解答・採点)
  • progress_controller.py(進捗)

◆ 4. templates

base.html

  • CSS 読み込み
  • JavaScript 読み込み
  • block content を定義

page.html

  • base.html を継承
  • header / left / center / right / footer の 5 分割
  • left:学ぶこと
  • right:演習問題
  • center:解答時のみ表示(普段は width=0)
  • header:
    • プルダウンメニュー
    • 教材 2 階層メニュー
    • 採点開始
    • 解答表示
    • 進捗表示

◆ 5. static_bookkeepings/js の命名規則

以下の順序を維持できるように命名する:

  • script_a_data.js
  • script_b_common.js
  • script_c_canvas.js
  • script_d_events.js
  • script_e_button.js
  • …必要に応じて続ける

◆ 6. MySQL(db=bookkeepings, user=bookkeepings, password=bookkeepings0000)

以下のテーブルを作成する:

  • users(Google ID, name, email, created_at)
  • learn_items(教材の階層構造)
  • exercises(問題文、穴あき、関連仕訳など)
  • answers(ユーザーの解答)
  • scores(採点結果)
  • progress(進捗管理)

必要なインデックスも作成する。


◆ 7. 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

◆ 8. Gemini に強制する制約(重要)

  • 既存コードを削らない(追記のみ)
  • 関数名・変数名は一貫性を維持
  • ファイル構造は絶対に変えない
  • Blueprint 構造を維持
  • templates の block 構造を維持
  • JavaScript の命名規則を維持
  • MySQL のテーブル名・カラム名は変更しない
  • バッチは “ファイルを echo で生成する” 形式
  • 1 ファイルにつき 1 バッチセクションを生成する
  • UTF-8 BOM なしで出力する

◆ 9. 出力形式(必須)

以下を出力する:

  1. Flask の全ファイルを生成するバッチ
  2. MySQL のテーブル作成 .sql を生成するバッチ
  3. /Users/User/eclipse-workspace/bookkeepings/src 以下に正しく配置されるように echo で出力
  4. ファイル名と生成先パスを明記すること

◆ 10. 最終出力

  • 完全なバッチファイル(Windows .bat)として動作する形式で出力する
  • 途中で省略しない
  • すべてのファイルを生成する完全版を出す

◆ 以上の仕様に従い、

Flask+MySQL の最小アプリ一式を生成するバッチを出力してください。


◆ あなたへ

このプロンプトは そのまま Gemini に貼って動く完全版
次のステップはシンプルで:

→ この OS プロンプトを Gemini に渡す
→ 生成されたバッチを実行
→ Flask+MySQL の最小アプリが完成

必要なら、
「このプロンプトをもっと強化したい」
「Blueprint の構造をもっと細かくしたい」
「JS の役割を追加したい」
などもすぐ対応できる。

次に進みたい方向を教えてほしい。