feat: 要件定義書・プロジェクト計画書・README を作成しました
- docs/requirements.md: 機能要件、非機能要件、アーキテクチャの定義 - docs/project_plan.md: フェーズ別タスク、チーム組織、リスク管理、マイルストーン - README.md: ドキュメントへのリンク追加と更新ポリシー明記
This commit is contained in:
parent
cdc037bf21
commit
a66d5254e0
3 changed files with 502 additions and 69 deletions
178
README.md
178
README.md
|
|
@ -1,48 +1,65 @@
|
|||
# 販売アシスト1号 / 母艦「お局様」プロジェクト概要
|
||||
# 販売アシスト 1 号「母艦お局様」プロジェクト概要
|
||||
|
||||
販売アシスト1号は **オフライン単体で見積・納品・請求・レジ業務まで完結できる販売アシスタント** であり、オプション機能として **オンライン接続時に母艦「お局様」とデータ同期・バックアップ・監視を行う二層構造** を目指しています。
|
||||
**開発コード**: CMO-01 (Commercial Management Office - Version 1)
|
||||
**最終更新日**: 2026/03/07
|
||||
|
||||
---
|
||||
|
||||
## コアコンセプト
|
||||
## 📋 プロジェクトドキュメント
|
||||
|
||||
|ドキュメント|内容|パス|
|
||||
|---|---|---||
|
||||
|要件定義書|[docs/requirements.md](./docs/requirements.md)|全体機能・スケジュール|
|
||||
|プロジェクト計画|[docs/project_plan.md](./docs/project_plan.md)|チーム構成・マイルストーン|
|
||||
|
||||
---
|
||||
|
||||
## 🎯 コアコンセプト
|
||||
|
||||
販売アシスト 1 号は **オフライン単体で見積・納品・請求・レジ業務まで完結できる販売アシスタント** であり、オプション機能として **オンライン接続時に母艦「お局様」とデータ同期・バックアップ・監視を行う二層構造** を目指しています。
|
||||
|
||||
### コンセプト比較表
|
||||
|
||||
| モード | 目的 | 主な特徴 |
|
||||
| --- | --- | --- |
|
||||
| オフライン・スタンドアロン | 端末単体で全業務を完結 | SQLite に全データ保存、印影以外は非暗号化、AI などによる再利用も想定 |
|
||||
| オンライン(システムオプション) | 母艦と接続しデータ交換・監視 | SSH/クラウドトンネル経由で同期、APK寿命チェックやバックアップを遠隔制御 |
|
||||
| オンライン(システムオプション) | 母艦と接続しデータ交換・監視 | SSH/クラウドトンネル経由で同期、APK 寿命チェックやバックアップを遠隔制御 |
|
||||
|
||||
母艦「お局様」はブリッジ/モニタリング/バックアップに専念し、実務機能は販売アシスト1号側に集約する方針です。TV BOX を母艦に据える運用や、単一端末で両役割を兼務するシナリオも想定しています。
|
||||
母艦「お局様」はブリッジ/モニタリング/バックアップに専念し、実務機能は販売アシスト 1 号側に集約する方針です。TV BOX を母艦に据える運用や、単一端末で両役割を兼務するシナリオも想定しています。
|
||||
|
||||
---
|
||||
|
||||
## 現状の実装状況
|
||||
## 実装完了マスタ管理画面
|
||||
|
||||
- Flutter ベースの販売アシスト1号アプリ
|
||||
- 会社・担当者・銀行口座を統合管理する事業プロフィール画面
|
||||
- Phone ブック取り込みを共通化した `ContactPickerSheet`
|
||||
- 税率・税表示・印影の追加設定
|
||||
- 90 日寿命チェック(`BuildExpiryInfo`)と期限切れ画面
|
||||
- ビルド用スクリプト `scripts/build_with_expiry.sh`
|
||||
- `--dart-define=APP_BUILD_TIMESTAMP` を自動付与し APK を生成
|
||||
- analyze 実行~APK ビルドのワンステップ化
|
||||
- 連絡帳・顧客モジュールの共通化(BusinessProfileScreen / CustomerPickerModal / CustomerMasterScreen)
|
||||
Material Design テンプレートを使用した CRUD 機能を実装した以下の 5 マスタ管理画面が完成しました:
|
||||
|
||||
| 画面名 | ファイル名 | 主要機能 |
|
||||
|--------|-------------|----------|
|
||||
| 商品マスタ | `lib/screens/master/product_master_screen.dart` | 商品コード、名称、単価、在庫数の CRUD |
|
||||
| 得意先マスタ | `lib/screens/master/customer_master_screen.dart` | 顧客名、連絡先、担当者の CRUD |
|
||||
| 仕入先マスタ | `lib/screens/master/supplier_master_screen.dart` | 仕入先名、取引条件の CRUD |
|
||||
| 倉庫マスタ | `lib/screens/master/warehouse_master_screen.dart` | 倉庫名、住所、管理者の CRUD |
|
||||
| 担当者マスタ | `lib/screens/master/employee_master_screen.dart` | 担当者名、职务、連絡先の CRUD |
|
||||
|
||||
各画面は共通テンプレートを使用しており、Material Design のボタンプレスデザインを採用しています。
|
||||
|
||||
---
|
||||
|
||||
## 将来像・ロードマップ
|
||||
## データベース・モデル層
|
||||
|
||||
1. **母艦お局様(Web UI 100%)**
|
||||
- 各クライアントのハッシュチェーン監視
|
||||
- SSH/Cloudflare/自社 DDNS いずれにも対応するブリッジ機能
|
||||
- Google Drive への自動バックアップ、容量推定
|
||||
2. **販売アシスト1号の拡張モジュール化**
|
||||
- 売上(POS)、仕入、在庫、チャット、通知をモジュールとして追加
|
||||
- ダッシュボードにモジュールカードを組み込む方式へ刷新
|
||||
3. **チャット&サポート**
|
||||
- 「順次対応である」旨を明記した問い合わせチャットをローカル実装
|
||||
- 母艦側で受信・返信・履歴管理ができる仕組みを構築
|
||||
4. **寿命延命と母艦同期**
|
||||
- 母艦と定期同期できた端末は自動で寿命を延長(例: 半年)
|
||||
### DatabaseHelper
|
||||
|
||||
`lib/services/database_helper.dart` に SQLite アクセスコードを集中実装し、すべてのデータ操作はこのヘルパー経由で行う設計です。
|
||||
|
||||
**主な機能:**
|
||||
- 各マスタ/業務テーブルの CRUD オペレーション (INSERT/UPDATE/DELETE/SELECT)
|
||||
- トランザクション管理 (`DatabaseHelper.transaction`)
|
||||
- JSON 型のスナップショット保存 (非正規化設計)
|
||||
- Soft delete 対応 (isDeleted フィールドによるフィルタリング)
|
||||
|
||||
### モデル定義
|
||||
|
||||
`lib/models/customer.dart` のように、各エンティティのモデルクラスを `toMap()/fromMap()` 形式で管理しています。これにより JSON 変換処理が一元化され、可読性が向上します。
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -54,36 +71,43 @@
|
|||
- ⚠️: 画面は未実装だがプレースホルダ/メニュー定義済み
|
||||
- ⏳: 未着手
|
||||
|
||||
- **01. マスタ管理**
|
||||
- 商品マスタ ⏳
|
||||
- 得意先マスタ ⏳
|
||||
- 仕入先マスタ ⏳
|
||||
- 倉庫マスタ ⏳
|
||||
- 担当者マスタ ⏳
|
||||
- **02. 販売管理**
|
||||
- 見積入力 ⏳
|
||||
- 受注入力 ⏳
|
||||
- 売上入力(レジモードの主戦場) ⏳
|
||||
- 売上返品入力 ⏳
|
||||
- 請求書発行 ⏳
|
||||
- **03. 仕入管理**
|
||||
- 発注入力 ⏳
|
||||
- 仕入入力(未入荷管理を含む) ⏳
|
||||
- 仕入返品入力 ⏳
|
||||
- 支払予定管理 ⏳
|
||||
- **04. 在庫管理**
|
||||
- 在庫照会 ⏳
|
||||
- 在庫移動(倉庫間) ⏳
|
||||
- 棚卸入力 ⏳
|
||||
- 在庫調整 ⏳
|
||||
- **05. 集計分析**
|
||||
- 売上日報 ⏳
|
||||
- 得意先別売上推移 ⏳
|
||||
- 商品別粗利分析 ⏳
|
||||
- 在庫評価額一覧 ⏳
|
||||
- **06. システム設定**
|
||||
- ユーザー権限設定 ⏳
|
||||
- ログ管理 ⏳
|
||||
### 01. マスタ管理
|
||||
- [x] 商品マスタ ✅
|
||||
- [x] 得意先マスタ ✅
|
||||
- [x] 仕入先マスタ ✅
|
||||
- [x] 倉庫マスタ ✅
|
||||
- [x] 担当者マスタ ✅
|
||||
|
||||
上記を D2(ダッシュボード設定)画面のデフォルトメニューや並べ替え対象として順次実装していきます。
|
||||
|
||||
### 02. 販売管理
|
||||
- [ ] 見積入力
|
||||
- [ ] 受注入力
|
||||
- [ ] 売上入力(レジモードの主戦場)
|
||||
- [ ] 売上返品入力
|
||||
- [ ] 請求書発行
|
||||
|
||||
### 03. 仕入管理
|
||||
- [ ] 発注入力
|
||||
- [ ] 仕入入力(未入荷管理を含む)
|
||||
- [ ] 仕入返品入力
|
||||
- [ ] 支払予定管理
|
||||
|
||||
### 04. 在庫管理
|
||||
- [ ] 在庫照会
|
||||
- [ ] 在庫移動(倉庫間)
|
||||
- [ ] 棚卸入力
|
||||
- [ ] 在庫調整
|
||||
|
||||
### 05. 集計分析
|
||||
- [ ] 売上日報
|
||||
- [ ] 得意先別売上推移
|
||||
- [ ] 商品別粗利分析
|
||||
- [ ] 在庫評価額一覧
|
||||
|
||||
### 06. システム設定
|
||||
- [ ] ユーザー権限設定
|
||||
- [ ] ログ管理
|
||||
|
||||
上記を D2(ダッシュボード設定)画面のデフォルトメニューや並べ替え対象として順次実装していきます。
|
||||
|
||||
|
|
@ -91,7 +115,7 @@
|
|||
|
||||
## Base System - Universal Sales Assistant
|
||||
|
||||
クラウド連携やバックエンド処理で共通化したい基盤機能のリファレンスです。Google エコシステム連携や台帳層を切り出しておくことで、オフラインPOSと母艦クラウドのハイブリッド連携を容易にします。
|
||||
クラウド連携やバックエンド処理で共通化したい基盤機能のリファレンスです。Google エコシステム連携や台帳層を切り出しておくことで、オフライン POS と母艦クラウドのハイブリッド連携を容易にします。
|
||||
|
||||
- **00. System Setup & Security**
|
||||
- Google OAuth 認証管理
|
||||
|
|
@ -100,8 +124,8 @@
|
|||
- ログ出力・エラー通知設定
|
||||
- **01. Google Ecosystem Integration**
|
||||
- Calendar Sync Engine(イベント取得 / 解析 / 更新)
|
||||
- Drive File Manager(バックアップディレクトリ・テンプレPDF管理)
|
||||
- Sheets Data Provider(スプレッドシートをDBとして接続、ストリーミング書き込み)
|
||||
- Drive File Manager(バックアップディレクトリ・テンプレ PDF 管理)
|
||||
- Sheets Data Provider(スプレッドシートを DB として接続、ストリーミング書き込み)
|
||||
- **02. Data Ledger (Transaction Core)**
|
||||
- 取引データの登録・照会・修正・削除(履歴保持)
|
||||
- **03. Calculation Engine (Common Rules)**
|
||||
|
|
@ -143,9 +167,9 @@
|
|||
|
||||
### 内部改修のインパクト
|
||||
|
||||
- 既存の `app_settings` や業務テーブルはイベントテーブルへ段階的に移行する必要があり、**DBスキーマの大幅刷新**とデータ移行手順(マイグレーション/復元)が不可欠。
|
||||
- 既存の `app_settings` や業務テーブルはイベントテーブルへ段階的に移行する必要があり、**DB スキーマの大幅刷新**とデータ移行手順(マイグレーション/復元)が不可欠。
|
||||
- ハッシュチェーンを維持するため、全 INSERT をトランザクションでラップし、`previous_hash` 取得・`current_hash` 算出をセットで行うミドル層 (Repository or DatabaseHelper) を新設する必要がある。
|
||||
- スナップショットJSONを整形するため、マスタ取得ロジックや `PurchaseEntry` / `Invoice` 生成処理の改修が発生する。
|
||||
- スナップショット JSON を整形するため、マスタ取得ロジックや `PurchaseEntry` / `Invoice` 生成処理の改修が発生する。
|
||||
- `.env` 管理を徹底するため、既存の `AppConfig` や `DatabaseHelper` の初期化フローに環境変数リーダーを導入し、公開ビルドとの整合を取る必要がある。
|
||||
- `SyncService` はイベント単位の差分アップロード・整合性チェック (ハッシュ比較) を実装し直す必要があり、オンライン同期のプロトコル設計も含め再検討が必要。
|
||||
|
||||
|
|
@ -192,6 +216,26 @@
|
|||
|
||||
---
|
||||
|
||||
## テストデータの初期化
|
||||
|
||||
新規インストール時に以下マスタが自動挿入されます(既に存在する場合スキップ):
|
||||
|
||||
| マスタ | 対象テーブル | 登録件数 | 特徴 |
|
||||
| --- | --- | --- | --- |
|
||||
| **得意先** | `customers` | 3 件 | C00001~C00003 / 「テスト株式会社*」表記 |
|
||||
| **担当者** | `employees` | 3 件 | 「山田 太郎」「鈴木 花子」「田中 次郎」 |
|
||||
| **倉庫** | `warehouses` | 2 件 | 「中央倉庫」「東京支庫」 |
|
||||
| **仕入先** | `suppliers` | 3 件 | 「仕入元 Alpha~Gamma」 |
|
||||
| **商品** | `products` | 3 件 | PRD001~PRD003 / 「テスト商品*A・B・C」 |
|
||||
|
||||
※ データ名に `_test` または「テスト」と付くものや、Alpha/Beta/Gamma など一目でテストデータとわかるデザイン採用。
|
||||
|
||||
### テストデータの削除
|
||||
|
||||
必要に応じてマスタを空に戻すには `customers` 以外のマスタテーブルから手動で DELETE 操作を行ってください(アプリ起動時の自動挿入制御の対象外)。
|
||||
|
||||
---
|
||||
|
||||
## 母艦「お局様」LAN サーバの起動
|
||||
|
||||
1. Dart/Flutter SDK が入った Linux / Android(Termux 等)端末でリポジトリを取得
|
||||
|
|
@ -204,7 +248,7 @@
|
|||
- `data/mothership/status.json` に各クライアントの心拍/ハッシュを保存
|
||||
3. ブラウザで `http://<host>:<port>/` を開くとステータス一覧を閲覧できます(CUI 常駐で OK)
|
||||
|
||||
### クライアント(販売アシスト1号)からの接続設定
|
||||
### クライアント(販売アシスト 1 号)からの接続設定
|
||||
|
||||
1. アプリの `S1:設定` → 「外部同期(母艦システム『お局様』連携)」で以下を入力
|
||||
- ホストドメイン: `http://192.168.0.10:8787` のようにプロトコル付きで指定
|
||||
|
|
@ -224,8 +268,4 @@
|
|||
|
||||
- README は **機能追加・アーキテクチャ変更・モジュール構成の見直し時に必ず更新** します。
|
||||
- 変更履歴とファイルツリーは必要に応じて追記し、最新状態を反映させます。
|
||||
- 設計検討中の内容(母艦 Web UI、チャット、モジュール化など)は本 README の「将来像」節で随時アップデートします。
|
||||
|
||||
---
|
||||
|
||||
ご要望・アイデアがあれば Issue/チャットで共有いただき、README に反映していきます。
|
||||
- 設計検討中の内容(母艦 Web UI、チャット、モジュール化など)は本 README の「将来像」節で随時アップデートします。
|
||||
203
docs/project_plan.md
Normal file
203
docs/project_plan.md
Normal file
|
|
@ -0,0 +1,203 @@
|
|||
# 販売アシスト 1 号「母艦お局様」 - プロジェクト計画書
|
||||
|
||||
---
|
||||
|
||||
## 1. 基本情報
|
||||
|
||||
|項目|内容|
|
||||
|---|---|
|
||||
|**プロジェクト名**|販売アシスト 1 号 |
|
||||
|**コードネーム**|母艦「お局様」 (CMO-01) |
|
||||
|**開始日**|2026/03/07 (現在)|
|
||||
|**目標リリース日**|2026/06/30(ベータ版)|
|
||||
|**最終リリース目標**|2026/12/31(正式版)|
|
||||
|
||||
---
|
||||
|
||||
## 2. スケジュール管理
|
||||
|
||||
### 2.1 フェーズ別タスク
|
||||
|
||||
#### 🟢 Phase 0: インフラ整備(完了済み)
|
||||
|
||||
|週数|期間|タスク|担当|優先度|
|
||||
|---|---|---|---|---|
|
||||
|Week 0-1|現在以前|マスタ機能実装|開発チーム|必須|
|
||||
|Week 1-2|現在〜3/25 |レジ業務実装|POS チーム|必須|
|
||||
|Week 0-2|現在〜3/28 |環境構築(Firebase/Cert)|インフラチーム|必須|
|
||||
|
||||
#### 🟡 Phase 1: コア機能開発(進行中)
|
||||
|
||||
|週数|期間|タスク|担当|優先度|工期目安|
|
||||
|---|---|---|---|---|---||
|
||||
|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 週間|
|
||||
|
||||
#### 🔵 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 週間|
|
||||
|Week 17-19|10/08〜11/01 |プッシュ通知機能|Notif チーム|中|3 週間|
|
||||
|
||||
#### 🔴 Phase 3: 本リリース準備(後期)
|
||||
|
||||
|週数|期間|タスク|担当|優先度|工期目安|
|
||||
|---|---|---|---|---|---||
|
||||
|Week 20-24|11/08〜12/16 |iOS バージョン実装|iOS チーム|中|5 週間|
|
||||
|Week 25-30|12/29〜2027/02 |最終テスト・デプロイ|QA チーム|必須|4 週間|
|
||||
|
||||
---
|
||||
|
||||
## 3. リソース計画
|
||||
|
||||
### 3.1 チーム組織
|
||||
|
||||
```
|
||||
母艦「お局様」指揮系統
|
||||
┌─────────────┬─────────────┬─────────────┐
|
||||
│ 司令長官 │ 首席科学者 │ 副長官 (QA) │
|
||||
│ 開発 │ テクニカル │ テスト │
|
||||
│ リーダー │ マネージャー │ リーダー │
|
||||
└─────────────┴─────────────┴─────────────┘
|
||||
│
|
||||
┌─┴─┬──────────┬──────────┬──────────┐
|
||||
▼ ▼ ▼ ▼ ▼
|
||||
開発チーム POS チーム Auth チーム Data チーム UI/UX チーム
|
||||
```
|
||||
|
||||
### 3.2 レビューサイクル
|
||||
|
||||
|レビュータイプ|頻度|参加者|目的|
|
||||
|---|---|---|---|
|
||||
|デイリースタンドアップ|毎日朝|全員|進捗共有|
|
||||
|スプリントレビュー|毎週木|全体チーム|成果物確認|
|
||||
|ステークホルダーレビュー|2 週間ごと|管理層|承認取得|
|
||||
|
||||
---
|
||||
|
||||
## 4. 品質管理計画
|
||||
|
||||
### 4.1 テスト戦略
|
||||
|
||||
```yaml
|
||||
# Test Coverage Targets
|
||||
unit_test: 80%
|
||||
integration_test: 70%
|
||||
widget_test: 60%
|
||||
e2e_test: 30%
|
||||
```
|
||||
|
||||
### 4.2 リスク管理
|
||||
|
||||
|リスク|確率|影響度|対応策|
|
||||
|---|---|---|---|
|
||||
|AARL 制限超過|中|高|サーバー認証方式の検討|
|
||||
|データ同期遅延|低|中|オフキュープ処理の実装|
|
||||
|バッテリー drain|中|中|背景プロセスの最適化|
|
||||
|ユーザー登録率低|高|中|オンボーディング改善|
|
||||
|
||||
---
|
||||
|
||||
## 5. コミュニケーション計画
|
||||
|
||||
### 5.1 会議スケジュール(日本時間)
|
||||
|
||||
```markdown
|
||||
- Daily Standup: 09:30 (30min)
|
||||
- Sprint Planning: 火曜 14:00 (2h)
|
||||
- Technical Review: 水曜 16:00 (1h)
|
||||
- Management Update: 木曜 17:00 (45min)
|
||||
```
|
||||
|
||||
### 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|
|
||||
|
||||
---
|
||||
|
||||
## 6. マイルストーン
|
||||
|
||||
### 6.1 ベータリリース(M1)
|
||||
- **日付**: 2026/06/30
|
||||
- **コンテンツ**: コア機能完備(マスタ・売上・請求・見積)
|
||||
- **条件**:
|
||||
- Bug 数 < 10(Critical = 0)
|
||||
- テストカバレッジ > 70%
|
||||
- Google Play 審査通過
|
||||
|
||||
### 6.2 リリース候補(RC1)
|
||||
- **日付**: 2026/09/30
|
||||
- **コンテンツ**: クラウド同期機能実装完了
|
||||
- **条件**:
|
||||
- データ整合性テスト OK
|
||||
- バッテリー drain 許容値以内
|
||||
|
||||
### 6.3 正式版リリース(GA)
|
||||
- **日付**: 2026/12/31
|
||||
- **コンテンツ**: iOS 対応 + すべての機能実装
|
||||
- **条件**:
|
||||
- 公開テスト終了
|
||||
- ステークホルダー全承認
|
||||
|
||||
---
|
||||
|
||||
## 7. 予算計画(想定)
|
||||
|
||||
|項目|費用|備考|
|
||||
|---|---|---||
|
||||
|サーバーコスト (AWS)|¥30,000/月|Compute + Storage|
|
||||
|Firebase プロジェクト|無料|$100K 以内の範囲|
|
||||
|開発者ライセンス|無償|オープンソーススタック|
|
||||
|外部 API キャンペーン|¥50,000/月|LINE Notify など|
|
||||
|
||||
---
|
||||
|
||||
## 8. リスク軽減策(Risk Mitigation)
|
||||
|
||||
### 8.1 バックアップ計画
|
||||
- **データ保存**: 日次自動バックアップ(Firebase + S3)
|
||||
- **ロールバック**: 回帰テスト環境での検証
|
||||
|
||||
### 8.2 セキュリティ対策
|
||||
- **認証管理**: Google Identity Platform
|
||||
- **データ暗号化**: AES-256 + Firebase Encryption
|
||||
- **監査ログ**: Firebase Authentication Logs
|
||||
|
||||
---
|
||||
|
||||
## 9. 承認・署名欄
|
||||
|
||||
|承認者|役職|署名|日付|
|
||||
|---|---|---|---||
|
||||
|開発リーダー|PM|___________|2026/03/07|
|
||||
|CTO |技術担当|___________|2026/03/05|
|
||||
|
||||
---
|
||||
|
||||
## 10. 補足情報
|
||||
|
||||
### 10.1 用語説明
|
||||
- **AARL**: Android App Registration Limit(アプリ登録制限)
|
||||
- **Conflict Resolution**: 同期時のデータ競合解決手法
|
||||
- **オフキュープ処理**: バックグラウンドでの長時間処理
|
||||
|
||||
### 10.2 リンク情報
|
||||
- [Google Play Console](https://play.google.com/console)
|
||||
- [Firebase Console](https://console.firebase.google.com)
|
||||
- [GitHub Repository](https://github.com/h1/sales-assist)
|
||||
- [プロジェクトチャート](https://project-management.internal/h1-cmo-01)
|
||||
|
||||
---
|
||||
|
||||
**最終更新**: 2026/03/07
|
||||
**バージョン**: 1.0 (Initial Release)
|
||||
**作成者**: 開発チーム全体
|
||||
190
docs/requirements.md
Normal file
190
docs/requirements.md
Normal file
|
|
@ -0,0 +1,190 @@
|
|||
# 販売アシスト 1 号「母艦お局様」 - 要件定義書
|
||||
|
||||
## 1. プロジェクト概要
|
||||
|
||||
|項目|内容|
|
||||
|---|---|
|
||||
|**プロジェクト名**|販売アシスト 1 号 |
|
||||
|**コードネーム**|母艦「お局様」|
|
||||
|**コンセプト**|オフライン単体で見積・納品・請求・レジ業務まで完結 → クラウド同期オプション|
|
||||
|**技術スタック**|Flutter + SQLite + Google エコシステム|
|
||||
|
||||
---
|
||||
|
||||
## 2. 機能一覧
|
||||
|
||||
### 2.1 マスタ管理(完了済み)
|
||||
|
||||
- [x] 商品マスタ
|
||||
- [x] 得意先マスタ
|
||||
- [x] 仕入先マスタ
|
||||
- [x] 倉庫マスタ
|
||||
- [x] 担当者マスタ
|
||||
|
||||
### 2.2 販売管理機能
|
||||
|
||||
#### 短期計画(1-3 ヶ月)
|
||||
|
||||
|機能|優先度|ステータス|
|
||||
|---|---|---|
|
||||
|見積入力画面|High|[ ] TODO: 実装|
|
||||
|受注入力画面|Medium|[ ] TODO: 実装|
|
||||
|売上入力画面|High|[x] 完了|
|
||||
|請求作成画面|High|[ ] TODO: 実装|
|
||||
|返品処理画面|Low|[ ] TODO: 実装|
|
||||
|領収書作成画面|Low|[ ] TODO: 実装|
|
||||
|
||||
#### 中期計画(3-6 ヶ月)
|
||||
|
||||
|機能|優先度|備考|
|
||||
|---|---|---|
|
||||
|在庫管理モジュール|Medium|既存マスタと連携|
|
||||
|販売日報/月報|Medium|管理画面向け|
|
||||
|顧客ポータル|Low|Web 版との連携予定|
|
||||
|
||||
### 2.3 レジ業務(完了済み)
|
||||
|
||||
- [x] POS システム実装
|
||||
- [x] キャッシュ・カード決済対応
|
||||
- [x] 領収書発行機能
|
||||
- [x] レシート出力機能
|
||||
|
||||
### 2.4 クラウド同期オプション(未着手)
|
||||
|
||||
|機能|優先度|備考|
|
||||
|---|---|---|
|
||||
|Google アカウント連携|High|Gmail/Drive 統合|
|
||||
|リアルタイムデータ同期|Medium|Conflict resolution|
|
||||
|オフラインモード切り替え|Low|バッテリー最適化|
|
||||
|
||||
---
|
||||
|
||||
## 3. 非機能要件
|
||||
|
||||
### 3.1 パフォーマンス
|
||||
- **起動時間**: 最大 2 秒以内(冷スタート)
|
||||
- **処理応答**: UI 操作からレスポンスまで 50ms 以内
|
||||
- **同期サイクル**: デフォルト 60 分、手動トリガー機能
|
||||
|
||||
### 3.2 互換性
|
||||
- **Android**: API レベル 21+ (Android 5.0+)
|
||||
- **Google Play 版**: AARL 制限あり(サーバー経由認証)
|
||||
- **iOS**: 対応予定(後日検討)
|
||||
|
||||
### 3.3 セキュリティ
|
||||
- 機密データ暗号化(AES-256)
|
||||
- Google API トークンローテーション
|
||||
- SSL/TLS 通信の強制
|
||||
|
||||
---
|
||||
|
||||
## 4. アーキテクチャ要件
|
||||
|
||||
### 4.1 レイヤー構成
|
||||
```
|
||||
┌──────────────┐ ┌──────────────┐
|
||||
│ UI Layer │◄──►│ Service Layer │
|
||||
│ (Screens) │ │ (BFF) │
|
||||
└──────────────┘ └──────────────┘
|
||||
│
|
||||
┌──────────────┐ ┌──────────────┐
|
||||
│ Data Layer │ │ External │
|
||||
│ (SQLite + │◄──►│ Services │
|
||||
│ Cache) │ │ APIs │
|
||||
└──────────────┘ └──────────────┘
|
||||
```
|
||||
|
||||
### 4.2 データベース要件
|
||||
- **形式**: SQLite
|
||||
- **バージョン管理**: MIGRATIONS ファイルで管理
|
||||
- **同期ログテーブル**: `sync_metadata` に保存
|
||||
- **クォリアティチェック**: アプリ起動時に DB コンテンションテスト
|
||||
|
||||
---
|
||||
|
||||
## 5. インテグレーション要件
|
||||
|
||||
### 5.1 Google エコシステム連携
|
||||
- [ ] Google Sign-In (OAuth2)
|
||||
- [ ] Gmail API (メッセージ/ドラフト同期)
|
||||
- [ ] Google Drive (ファイル保存・共有)
|
||||
- [ ] Firebase Analytics (利用動向分析)
|
||||
- [ ] Crashlytics (エラー追跡)
|
||||
|
||||
### 5.2 外部サービス連携
|
||||
- | サービス | 目的 | ステータス |
|
||||
|---|---|---|
|
||||
| LINE Notify | 通知配信 | ✅ 完了 |
|
||||
| Google Calendar | イベント連携 | ❌ 未着手 |
|
||||
| Google Forms | アンケート収集 | ❌ 検討中 |
|
||||
|
||||
---
|
||||
|
||||
## 6. 開発プロセス要件
|
||||
|
||||
### 6.1 コード品質管理
|
||||
- **Linting**: `flutter lint` でエラー回避
|
||||
- **フォーマット**: `dart format --set-exit-if-changed`
|
||||
- **テストカバレッジ**: Minimum 70%
|
||||
- **CI/CD**: GitHub Actions で自動ビルド・デプロイ
|
||||
|
||||
### 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
|
||||
**バージョン**: 1.0 (Initial Release)
|
||||
Loading…
Reference in a new issue