CommonSpecification.md (v1.0) 1. プロジェクト概要 アプリ名: ぽんるーむ(Pon-Room) コンセプト: 日本酒の「記録・解析・循環」を支えるAIアプリ。 ターゲット: - B2C: 一般ユーザー(自分の日本酒体験を記録・診断・共有) B2B: 飲食店(自店の日本酒メニューをPDF/QR付きで作成・印刷) 2. 技術スタック Frontend: Flutter (iOS/Android/Web) Backend/DB: Cloud Firestore, Firebase Auth AI/ML: - Local OCR: Google ML Kit (テキスト抽出) LLM Analysis: Gemini API (2.5 Flash / 3 Flash) Library: - gal: カメラロール保存用 pdf, printing: PDF生成・印刷用 qr_flutter: QRコード生成用 3. 共通データ構造 (JSON Schema) すべてのAI解析およびデータ保存はこの形式に従うこと。 JSON { "display_data": { "name": "銘柄名", "catch_phrase": "AI生成のキャッチコピー", "image_path": "local/path/to/image.jpg", "rating": 4.5 }, "hidden_specs": { "brewery": "蔵元名", "prefecture": "都道府県", "type": "特定名称(純米大吟醸等)", "alcohol_content": 16.0, "polishing_ratio": 23, "rice_variety": "使用米", "sake_meter_value": 0.0, "qr_code_url": "https://pon-room.app/sake/12345" }, "badges": { "is_recommended": false, "is_seasonal": false, "season_tag": "春限定" }, "gamification": { "pon_points": 10, "sake_mbti_type": "フルーティー・モダン型" }, "user_data": { "is_favorite": false, "memo": "テイスティングメモ", "created_at": "ISO8601形式" }, "metadata": { "app_type": "sake", "version": "1.0" } } 4. 機能別ガイドライン 4.1 撮影・解析フロー (Hybrid Analysis) 撮影: 写真撮影後、即座に「カメラロール(端末のギャラリー)」へ保存する(galパッケージ使用)。 OCR: Google ML Kitで画像から生テキストを抽出。 AI解析: 抽出テキストのみをGeminiへ送信し、上記JSON形式で構造化データを取得。 注意: 画像を直接AIに送るのではなく、テキストを介することでトークン節約とエラー回避を行う。 4.2 UI構成 (5タブ・切り替え制) タブ1 (リスト): カード形式。display_dataのみを表示し、極力シンプルに保つ。 タブ2 (スキャン/作成): - Consumerモード: QRスキャン(他店メニューの読み取り・ポイント獲得)。 Businessモード: PDFメニュー作成(QRコード自動埋め込み)。 タブ3 (AI/診断): AIソムリエ、酒蔵マップ(将来拡張)。 タブ4 (マップ): 酒蔵巡りマップ(未実装)。 タブ5 (マイページ): - 酒向(しゅこう)カード: MBTI風の自己診断結果、バッジ、獲得ポイントを表示。 設定: 右上の「歯車アイコン」内にモード切り替え、使い方ガイド、システム設定を集約。 4.3 オンボーディング (Onboarding) 初回起動時に4枚のステップガイドを表示。 各画面右上の「?」アイコンでガイドを再表示。 Businessモード切り替え時は専用の3ステップガイドを追加表示。 4.4 B2B/B2C 循環ロジック B2B: PDF出力時に各銘柄の qr_code_url をQRコードとして埋め込む。 B2C: そのQRをスキャンすると、詳細情報が表示され「ポンポイント」が貯まる仕組みを想定。 5. 開発優先順位 (Roadmap) Phase 1: CommonSpecification.md に基づくデータモデルの再定義。 Phase 2: カメラロール保存機能の実装(データ消失リスク回避)。 Phase 3: PDF + printing 実装(Antigravity評価用のB2B機能)。 Phase 4: OCR + Gemini API連携の最適化。 Phase 5: マイページ(酒向カード)およびゲーミフィケーション実装。