h-1.flutter.0/README.md
2026-03-01 16:47:34 +09:00

96 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 販売アシスト1号 / 母艦「お局様」プロジェクト概要
販売アシスト1号は **オフライン単体で見積・納品・請求・レジ業務まで完結できる販売アシスタント** であり、オプション機能として **オンライン接続時に母艦「お局様」とデータ同期・バックアップ・監視を行う二層構造** を目指しています。
---
## コアコンセプト
| モード | 目的 | 主な特徴 |
| --- | --- | --- |
| オフライン・スタンドアロン | 端末単体で全業務を完結 | SQLite に全データ保存、印影以外は非暗号化、AI などによる再利用も想定 |
| オンライン(システムオプション) | 母艦と接続しデータ交換・監視 | SSH/クラウドトンネル経由で同期、APK寿命チェックやバックアップを遠隔制御 |
母艦「お局様」はブリッジモニタリングバックアップに専念し、実務機能は販売アシスト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
---
## 将来像・ロードマップ
1. **母艦お局様Web UI 100%**
- 各クライアントのハッシュチェーン監視
- SSH/Cloudflare/自社 DDNS いずれにも対応するブリッジ機能
- Google Drive への自動バックアップ、容量推定
2. **販売アシスト1号の拡張モジュール化**
- 売上POS、仕入、在庫、チャット、通知をモジュールとして追加
- ダッシュボードにモジュールカードを組み込む方式へ刷新
3. **チャット&サポート**
- 「順次対応である」旨を明記した問い合わせチャットをローカル実装
- 母艦側で受信・返信・履歴管理ができる仕組みを構築
4. **寿命延命と母艦同期**
- 母艦と定期同期できた端末は自動で寿命を延長(例: 半年)
---
## リポジトリ構成(抜粋)
```
/home/user/dev/h-1.flutter.0
├── README.md … 本ファイル
├── analysis_options.yaml … Lint 設定
├── lib/ … Flutter アプリ本体
│ ├── screens/ … 各種画面business_profile_screen 等)
│ ├── widgets/ … 共通ウィジェットcontact_picker_sheet 等)
│ ├── services/ … 永続化・ユーティリティcompany_profile_service 等)
│ └── utils/build_expiry_info.dart … ビルド寿命ユーティリティ
├── scripts/build_with_expiry.sh … dart-define 付きビルドスクリプト
├── android/, ios/, macos/, windows/, linux/ … 各プラットフォームテンプレート
├── assets/ … 画像・リソース
├── test/ … テストコード
└── 目標.md / 目的.md … 設計メモ
```
※ フルツリーが必要になった場合は `tree``list_dir` の出力を README 末尾に追加して更新していきます。
---
## セットアップ & ビルド
1. Flutter 3.x 環境を用意し、依存パッケージを取得
```bash
flutter pub get
```
2. 90 日寿命 APK の生成
```bash
chmod +x scripts/build_with_expiry.sh
./scripts/build_with_expiry.sh [debug|profile|release]
```
- スクリプト内で `APP_BUILD_TIMESTAMP` を UTC で自動付与
- `flutter analyze``flutter build apk` を連続実行
3. 実機/エミュレータで起動すると、寿命切れ時には `ExpiredApp` が自動表示されます。
---
## 更新ポリシー
- README は **機能追加・アーキテクチャ変更・モジュール構成の見直し時に必ず更新** します。
- 変更履歴とファイルツリーは必要に応じて追記し、最新状態を反映させます。
- 設計検討中の内容(母艦 Web UI、チャット、モジュール化などは本 README の「将来像」節で随時アップデートします。
---
ご要望・アイデアがあれば Issue/チャットで共有いただき、README に反映していきます。