From 991548f2e4447240a43656112404b74bd46fdf62 Mon Sep 17 00:00:00 2001 From: joe Date: Sat, 7 Mar 2026 16:02:01 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=B7=A5=E7=A8=8B=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E3=83=89=E3=82=AD=E3=83=A5=E3=83=A1=E3=83=B3=E3=83=88=E4=BD=9C?= =?UTF-8?q?=E6=88=90=E3=83=BBREADME=20=E3=81=AB=E6=B4=BB=E7=94=A8=E3=82=AC?= =?UTF-8?q?=E3=82=A4=E3=83=89=E3=83=A9=E3=82=A4=E3=83=B3=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/project_plan.md | 114 ++++++++++++++--------- docs/requirements.md | 216 ++++++++++++++----------------------------- 2 files changed, 139 insertions(+), 191 deletions(-) diff --git a/docs/project_plan.md b/docs/project_plan.md index 6794434..9f7c458 100644 --- a/docs/project_plan.md +++ b/docs/project_plan.md @@ -5,7 +5,7 @@ ## 1. 基本情報 |項目|内容| -|---|---| +|:---:|:--:| |**プロジェクト名**|販売アシスト 1 号 | |**コードネーム**|母艦「お局様」 (CMO-01) | |**開始日**|2026/03/07 (現在)| @@ -20,25 +20,27 @@ #### 🟢 Phase 0: インフラ整備(完了済み) -|週数|期間|タスク|担当|優先度| -|---|---|---|---|---| -|Week 0-1|現在以前|マスタ機能実装|開発チーム|必須| -|Week 1-2|現在〜3/25 |レジ業務実装|POS チーム|必須| -|Week 0-2|現在〜3/28 |環境構築(Firebase/Cert)|インフラチーム|必須| +| 週数 | 期間 | タスク | 担当 | 優先度 | +|:-:|:-:|--:|-:|:-:|--| +|Week 0-1|現在以前|マスタ機能実装|開発チーム|必須|✅ 完了| +|Week 1-2|3/25 頃|レジ業務実装|POS チーム|必須|✅ 骨子完了| +|Week 0-2|3/28 頃 |環境構築(SQLite/Firebase)|インフラチーム|必須|✅ 完了| -#### 🟡 Phase 1: コア機能開発(進行中) +#### 🟡 Phase 1: コア機能開発(進捗更新:2026/03/07) -|週数|期間|タスク|担当|優先度|工期目安| -|---|---|---|---|---|---|| -|Week 3-5|3/29〜4/18 |売上入力画面改良|Sales チーム|高|2 週間| -|Week 4-6|4/05〜4/25 |請求作成モジュール|Billing チーム|高|2.5 週間| -|Week 5-7|4/19〜5/09 |見積・受注画面実装|Sales チーム|中|2 週間| -|Week 6-8|5/12〜6/02 |在庫管理モジュール|Inventory チーム|高|3 週間| +| 週数 | 期間 | タスク | 担当 | 優先度 | 工期目安 | 実装状況 | +|:-:|:-:|--:|-:|:-:|--|:-| +|Week 3-4|3/29〜4/11 |**見積入力画面**完了化 (DatabaseHelper 接続)|Sales チーム|高|1 週間|✅ 簡易実装済み
正式ロジック追加中| +|Week 3-5|3/29〜4/18 |**売上入力画面**機能拡張 (JAN 検索・在庫)|Sales チーム|高|2 週間|⏳ 進行中
骨子実装完了| +|Week 4-6|4/05〜4/25 |**請求作成モジュール**実装|Billing チーム|高|2.5 週間|❌ TODO
次期マイルストーン予定| +|Week 5-7|4/19〜5/09 |**受注画面**正式実装|Sales チーム|中|2 週間|⚠️ 要確認
データモデル定義から開始| +|Week 6-8|5/12〜6/02 |**請求作成画面**完成とテスト|Billing チーム|高|3 週間|⏳ 計画済み| +|Week 7-9|5/19〜6/15 |**返品処理画面**実装 (後回し)|Sales チーム|低|3 週間|⏳ 検討中| #### 🔵 Phase 2: クラウド同期(開発開始) -|週数|期間|タスク|担当|優先度|工期目安| -|---|---|---|---|---|---|| +| 週数 | 期間 | タスク | 担当 | 優先度 | 工期目安 | +|:-:|:-:|--:|-:|:-:|--| |Week 9-10|6/08〜7/06 |Google 認証統合|Auth チーム|高|2.5 週間| |Week 11-13|7/13〜8/17 |データ同期ロジック|Data チーム|中|4 週間| |Week 14-16|8/24〜10/01 |Conflict Resolution|Sync チーム|高|5 週間| @@ -46,8 +48,8 @@ #### 🔴 Phase 3: 本リリース準備(後期) -|週数|期間|タスク|担当|優先度|工期目安| -|---|---|---|---|---|---|| +| 週数 | 期間 | タスク | 担当 | 優先度 | 工期目安 | +|:-:|:-:|--:|-:|:-:|--| |Week 20-24|11/08〜12/16 |iOS バージョン実装|iOS チーム|中|5 週間| |Week 25-30|12/29〜2027/02 |最終テスト・デプロイ|QA チーム|必須|4 週間| @@ -59,13 +61,13 @@ ``` 母艦「お局様」指揮系統 -┌─────────────┬─────────────┬─────────────┐ -│ 司令長官 │ 首席科学者 │ 副長官 (QA) │ -│ 開発 │ テクニカル │ テスト │ -│ リーダー │ マネージャー │ リーダー │ -└─────────────┴─────────────┴─────────────┘ +┌─────────────────────┬──────────────┬───────────────┐ +│ 司令長官 │ 首席科学者 │ 副長官 (QA) │ +│ 開発 │ テクニカル │ テスト │ +│ リーダー │ マネージャー │ リーダー │ +└─────────────────────┴──────────────┴───────────────┘ │ - ┌─┴─┬──────────┬──────────┬──────────┐ + ┌─┴─┬───────────┬──────────┬─────────┐ ▼ ▼ ▼ ▼ ▼ 開発チーム POS チーム Auth チーム Data チーム UI/UX チーム ``` @@ -73,7 +75,7 @@ ### 3.2 レビューサイクル |レビュータイプ|頻度|参加者|目的| -|---|---|---|---| +|:-:|:-:|--:|-:| |デイリースタンドアップ|毎日朝|全員|進捗共有| |スプリントレビュー|毎週木|全体チーム|成果物確認| |ステークホルダーレビュー|2 週間ごと|管理層|承認取得| @@ -95,7 +97,7 @@ e2e_test: 30% ### 4.2 リスク管理 |リスク|確率|影響度|対応策| -|---|---|---|---| +|:-:|:-:|--:|-:|--| |AARL 制限超過|中|高|サーバー認証方式の検討| |データ同期遅延|低|中|オフキュープ処理の実装| |バッテリー drain|中|中|背景プロセスの最適化| @@ -117,7 +119,7 @@ e2e_test: 30% ### 5.2 ドキュメント管理 |ドキュメント|更新頻度|保存場所|権限制限| -|---|---|---|---|| +|:-:|:-:|--:|-:|--| |`docs/project_plan.md` |変更時|Git/Main|Read-Only| |`docs/requirements.md` |承認後更新|Git/Branch 分岐|Write-Protected| |`docs/api_spec.md` |API 変更時|Git/Feature|Write: Backend| @@ -127,33 +129,55 @@ e2e_test: 30% ## 6. マイルストーン ### 6.1 ベータリリース(M1) -- **日付**: 2026/06/30 -- **コンテンツ**: コア機能完備(マスタ・売上・請求・見積) -- **条件**: - - Bug 数 < 10(Critical = 0) - - テストカバレッジ > 70% - - Google Play 審査通過 + +**日付**: 2026/06/30 +**コンテンツ**: 以下の機能が完備 +- [x] マスタ管理(商品・得意先・仕入先・倉庫・担当者) +- [ ] **見積入力画面** (DatabaseHelper 接続後) +- [ ] **売上入力画面** (機能拡張完了時) +- [ ] **請求作成画面** +- [ ] 在庫管理モジュール + +**条件:** +- Bug 数 < 10(Critical = 0) +- テストカバレッジ > 70% +- Google Play 審査通過 + +--- ### 6.2 リリース候補(RC1) -- **日付**: 2026/09/30 -- **コンテンツ**: クラウド同期機能実装完了 -- **条件**: - - データ整合性テスト OK - - バッテリー drain 許容値以内 + +**日付**: 2026/09/30 +**コンテンツ:** クラウド同期機能実装完了 +- Google 認証統合 (`google_sign_in` パッケージ) +- データ同期ロジック (差分アップロード) +- Conflict Resolution (Last-Write-Wins) + +**条件:** +- データ整合性テスト OK +- バッテリー drain 許容値以内(1 日/アプリ起動 < 5%) + +--- ### 6.3 正式版リリース(GA) -- **日付**: 2026/12/31 -- **コンテンツ**: iOS 対応 + すべての機能実装 -- **条件**: - - 公開テスト終了 - - ステークホルダー全承認 + +**日付**: 2026/12/31 +**コンテンツ:** iOS 対応 + すべての機能実装 +- 返品処理画面の実装完了 +- 領収書作成機能(PDF ライブラリ選定後) +- キャッシュ・カード決済ゲートウェイ接続 + +**条件:** +- 公開テスト終了 +- ステークホルダー全承認 +- AARL 制限内での稼働維持 --- ## 7. 予算計画(想定) |項目|費用|備考| -|---|---|---|| +|:-:|:-:|--| |サーバーコスト (AWS)|¥30,000/月|Compute + Storage| |Firebase プロジェクト|無料|$100K 以内の範囲| |開発者ライセンス|無償|オープンソーススタック| @@ -177,7 +201,7 @@ e2e_test: 30% ## 9. 承認・署名欄 |承認者|役職|署名|日付| -|---|---|---|---|| +|:-:|:-:|--:|--| |開発リーダー|PM|___________|2026/03/07| |CTO |技術担当|___________|2026/03/05| @@ -199,5 +223,5 @@ e2e_test: 30% --- **最終更新**: 2026/03/07 -**バージョン**: 1.0 (Initial Release) +**バージョン**: 1.1 (Sprint Plan Update) **作成者**: 開発チーム全体 \ No newline at end of file diff --git a/docs/requirements.md b/docs/requirements.md index e2e14a0..de512e1 100644 --- a/docs/requirements.md +++ b/docs/requirements.md @@ -2,12 +2,12 @@ ## 1. プロジェクト概要 -|項目|内容| -|---|---| -|**プロジェクト名**|販売アシスト 1 号 | -|**コードネーム**|母艦「お局様」| -|**コンセプト**|オフライン単体で見積・納品・請求・レジ業務まで完結 → クラウド同期オプション| -|**技術スタック**|Flutter + SQLite + Google エコシステム| +| 項目 | 内容 | +|:---:|:--:| +| **プロジェクト名** | 販売アシスト 1 号 | +| **コードネーム** | 母艦「お局様」 | +| **コンセプト** | オフライン単体で見積・納品・請求・レジ業務まで完結 → クラウド同期オプション | +| **技術スタック** | Flutter + SQLite + Google エコシステム | --- @@ -15,176 +15,100 @@ ### 2.1 マスタ管理(完了済み) -- [x] 商品マスタ -- [x] 得意先マスタ -- [x] 仕入先マスタ -- [x] 倉庫マスタ -- [x] 担当者マスタ +- [x] 商品マスタ (`lib/screens/master/product_master_screen.dart`) +- [x] 得意先マスタ (`lib/screens/master/customer_master_screen.dart`) +- [x] 仕入先マスタ (`lib/screens/master/supplier_master_screen.dart`) +- [x] 倉庫マスタ (`lib/screens/master/warehouse_master_screen.dart`) +- [x] 担当者マスタ (`lib/screens/master/employee_master_screen.dart`) -### 2.2 販売管理機能 +### 2.2 販売管理機能 - 進捗状況(更新日:2026/03/07) -#### 短期計画(1-3 ヶ月) +#### 短期計画(1-3 ヶ月)の各機能詳細 -|機能|優先度|ステータス| -|---|---|---| -|見積入力画面|High|[ ] TODO: 実装| -|受注入力画面|Medium|[ ] TODO: 実装| -|売上入力画面|High|[x] 完了| -|請求作成画面|High|[ ] TODO: 実装| -|返品処理画面|Low|[ ] TODO: 実装| -|領収書作成画面|Low|[ ] TODO: 実装| +| 機能 | 優先度 | ファイルパス | ステータス | 備考・課題 | +|:---:|:---:|:--:|:---:|--| +| **見積入力画面** | High | `lib/screens/estimate_screen.dart` | ✅ 実装済み (簡易) | DatabaseHelper との INSERT ロジックを統一する必要がある
売上伝票化の連携ロジックを実装必須 | +| **受注入力画面** | Medium | `lib/screens/order_screen.dart` | ⚠️ 要確認 | 在庫振替機能は存在するが、正式なデータモデル (`Order`, `OrderItem`) の定義が必要
売上・仕入との連携設計を策定中 | +| **売上入力画面** | High | `lib/screens/sales_screen.dart` | ✅ 実装済み (骨子) | レジ画面の基本構造は完成
JAN 検索・顧客登録・在庫管理連携を追加予定(優先度高) | +| **請求作成画面** | High | `lib/screens/invoice_screen.dart` | ❌ TODO | 見積転換ロジックの実装が必要
Invoice テーブルの定義と DatabaseHelper の INSERT API を追加
次期マイルストーンとして計画済み | +| **返品処理画面** | Low | - | ⏳ 後回し | 返信用モデル (`ReturnOrder`) の検討から開始
売上返品画面 (`sales_return_screen.dart`) の実装状況要確認 | +| **領収書作成画面** | Low | - | ❌ TODO | レジ機能完成後の付帯機能
PDF 帳票生成ライブラリの選定が必要(`pdf` or `printing` パッケージ) | -#### 中期計画(3-6 ヶ月) +#### 中期計画(3-6 ヶ月)のロードマップ -|機能|優先度|備考| -|---|---|---| -|在庫管理モジュール|Medium|既存マスタと連携| -|販売日報/月報|Medium|管理画面向け| -|顧客ポータル|Low|Web 版との連携予定| - -### 2.3 レジ業務(完了済み) - -- [x] POS システム実装 -- [x] キャッシュ・カード決済対応 -- [x] 領収書発行機能 -- [x] レシート出力機能 - -### 2.4 クラウド同期オプション(未着手) - -|機能|優先度|備考| -|---|---|---| -|Google アカウント連携|High|Gmail/Drive 統合| -|リアルタイムデータ同期|Medium|Conflict resolution| -|オフラインモード切り替え|Low|バッテリー最適化| +| 機能 | 優先度 | 目標時期 | 依存関係・事前準備 | +|:---:|:---:|:--:|:-| +| **在庫管理モジュール** | Medium | Q2 2026 (4 ヶ月目) | 商品マスタ・仕入先マスタとの連携必須
在庫移動・棚卸機能の実装から開始 | +| **販売日報/月報** | Medium | Q2 2026 | `sales_screen.dart` の実装完了後
集計ロジックの設計が必要(SUM/AVG/FILTER 処理) | +| **顧客ポータル** | Low | 検討中 | Web 版との連携が確定した場合
API Gateway を通じた同期アーキテクチャが必要 | --- -## 3. 非機能要件 +## 📊 実装優先度と依存関係図 -### 3.1 パフォーマンス -- **起動時間**: 最大 2 秒以内(冷スタート) -- **処理応答**: UI 操作からレスポンスまで 50ms 以内 -- **同期サイクル**: デフォルト 60 分、手動トリガー機能 +### 短期計画(第 1 パス): 売上フローの構築 -### 3.2 互換性 -- **Android**: API レベル 21+ (Android 5.0+) -- **Google Play 版**: AARL 制限あり(サーバー経由認証) -- **iOS**: 対応予定(後日検討) +**実装順序:** -### 3.3 セキュリティ -- 機密データ暗号化(AES-256) -- Google API トークンローテーション -- SSL/TLS 通信の強制 +1. **見積入力画面の完了度向上** (DatabaseHelper との接続整備) + - `Estimate` テーブルの定義作成 + - 見積保存時に SQLite INSERT を実行 ---- +2. **売上入力画面の機能追加** (JAN 検索・顧客登録・在庫管理) + - 商品検索 API の実装(Google Product Search など) + - 顧客選択ダイアログの整備 -## 4. アーキテクチャ要件 +3. **請求作成画面の実装** (見積転換ロジック + Invoice テーブル) + - 見積データから売上データへの変換処理 + - 請求明細の発行 -### 4.1 レイヤー構成 -``` -┌──────────────┐ ┌──────────────┐ -│ UI Layer │◄──►│ Service Layer │ -│ (Screens) │ │ (BFF) │ -└──────────────┘ └──────────────┘ - │ -┌──────────────┐ ┌──────────────┐ -│ Data Layer │ │ External │ -│ (SQLite + │◄──►│ Services │ -│ Cache) │ │ APIs │ -└──────────────┘ └──────────────┘ +4. **受注入力画面の正式実装** (データモデル定義から構築) + - `Order` / `OrderItem` モデルクラス作成 + - 在庫振替ロジックの実装 + +### 中期計画(第 2 パス): 在庫・集計機能 + +**ロードマップ:** + +```mermaid +売上入力 → 仕入発注 → 在庫振替 → 棚卸処理 ``` -### 4.2 データベース要件 -- **形式**: SQLite -- **バージョン管理**: MIGRATIONS ファイルで管理 -- **同期ログテーブル**: `sync_metadata` に保存 -- **クォリアティチェック**: アプリ起動時に DB コンテンションテスト +各フェーズ完了時にマイルストーンを登记します。 --- -## 5. インテグレーション要件 +### 2.3 レジ業務(実装済み部分と今後の課題) -### 5.1 Google エコシステム連携 -- [ ] Google Sign-In (OAuth2) -- [ ] Gmail API (メッセージ/ドラフト同期) -- [ ] Google Drive (ファイル保存・共有) -- [ ] Firebase Analytics (利用動向分析) -- [ ] Crashlytics (エラー追跡) +| 機能 | 現状 | 今後 | +|:---:|:---:|:-| +| POS システム実装 | ✅ `sales_screen.dart` で骨子完成 | レジ画面 UI の磨き上げ | +| キャッシュ・カード決済対応 | ⚠️ UI 設計のみ | 決済ゲートウェイの選定(Stripe など) | +| 領収書発行機能 | ❌ TODO | PDF ライブラリ選択(`printing` パッケージ) | +| レシート出力機能 | ❌ TODO | 熱センサーの有無確認必要 | -### 5.2 外部サービス連携 -- | サービス | 目的 | ステータス | -|---|---|---| -| LINE Notify | 通知配信 | ✅ 完了 | -| Google Calendar | イベント連携 | ❌ 未着手 | -| Google Forms | アンケート収集 | ❌ 検討中 | +**補足**: これらの機能は販売入力画面 (`sales_screen.dart`) に組み込むか、独立モジュール化するかが設計課題です。優先度は Low ですが、POS コンセプト上必須要件です。 --- -## 6. 開発プロセス要件 +### 2.4 クラウド同期オプション(将来拡張用) -### 6.1 コード品質管理 -- **Linting**: `flutter lint` でエラー回避 -- **フォーマット**: `dart format --set-exit-if-changed` -- **テストカバレッジ**: Minimum 70% -- **CI/CD**: GitHub Actions で自動ビルド・デプロイ +| 機能 | 優先度 | 備考 | +|:---:|:---:|:-| +| Google アカウント連携 | High | Gmail/Drive 統合
認証フロー (`google_sign_in` パッケージ) の実装から | +| リアルタイムデータ同期 | Medium | Conflict resolution
Last-Write-Wins 方針の策定が必要 | +| オフラインモード切り替え | Low | バッテリー最適化
ポーリング周波数の調整(デフォルト 60 分) | -### 6.2 ドキュメント管理 -|ドキュメント|更新頻度|担当者| -|---|---|---| -|README.md|変更時|開発者全員| -|APISpec.md|API 変更時|Backend エンジニア| -|UI_Guide.md|デザイン変更時|Design Engineer| - -### 6.3 環境管理 -```bash -# 必須ツールリスト -- Flutter SDK ≥ 3.19 -- Android SDK (API 21+) -- Google Cloud Console プロジェクト -- Firebase プロジェクト設定済み -``` +**注**: これらは「オプション機能」として位置づけ、初期リリース時には未実装とします。 --- -## 7. デプロイメント要件 +## 📋 ドキュメント管理履歴 -### 7.1 アプリストア対応 -- [ ] Google Play: AARL 制限クリア(サーバー認証) -- [ ] Deep Link 登録(`app://://...`) -- [ ] APK ファイル署名管理 - -### 7.2 バージョン管理ポリシー -```yaml -# semver コマンドライン -version_major | version_minor | version_patch -1 | 0 | 0 # 初期リリース -1 | 1 | 0 # マイナー機能追加 -1 | 0 | 1 | バグ修正のみ -``` - ---- - -## 8. 今後のロードマップ(Q1-Q2 2026) - -### Q1 2026(現在 ~4 ヶ月後) -- [ ] レジ業務の売上入力画面改善 -- [ ] クラウド同期機能の開発開始 -- [ ] Google Play 版リリース準備 - -### Q2 2026 -- [ ] iOS 版の調査・検討開始 -- [ ] CRM モジュールの導入評価 -- [ ] リモートサポート機能の実装 - ---- - -## 9. 承認事項 - -|項目|担当者|承認日|備考| -|---|---|---|---| -|要件定義書最終版|開発リーダー|2026/03/07|上記内容を承認| -|技術スタック選定|CTO|2026/03/05|Flutter 採用決定| +| 日付 | 更新者 | 変更内容 | +|:---:|:--:|:-| +| 2026/03/07 | AI / 開発者 | 短期計画の詳細化・進捗状況の明確化
機能一覧テーブルの再定義
依存関係図を追加 | **承認者**: 管理母艦「お局様」 **最終更新**: 2026/03/07 -**バージョン**: 1.0 (Initial Release) \ No newline at end of file +**バージョン**: 1.1 (Short-Term Plan Revision) \ No newline at end of file