113 lines
3.0 KiB
Markdown
113 lines
3.0 KiB
Markdown
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: マイページ(酒向カード)およびゲーミフィケーション実装。 |