README.md刷新

This commit is contained in:
joe 2026-03-01 16:47:34 +09:00
parent 01f5851ddc
commit e8382db72f

101
README.md
View file

@ -1,17 +1,96 @@
# gemi_invoice
# 販売アシスト1号 / 母艦「お局様」プロジェクト概要
A new Flutter project.
販売アシスト1号は **オフライン単体で見積・納品・請求・レジ業務まで完結できる販売アシスタント** であり、オプション機能として **オンライン接続時に母艦「お局様」とデータ同期・バックアップ・監視を行う二層構造** を目指しています。
## Getting Started
---
This project is a starting point for a Flutter application.
## コアコンセプト
A few resources to get you started if this is your first Flutter project:
| モード | 目的 | 主な特徴 |
| --- | --- | --- |
| オフライン・スタンドアロン | 端末単体で全業務を完結 | SQLite に全データ保存、印影以外は非暗号化、AI などによる再利用も想定 |
| オンライン(システムオプション) | 母艦と接続しデータ交換・監視 | SSH/クラウドトンネル経由で同期、APK寿命チェックやバックアップを遠隔制御 |
- [Learn Flutter](https://docs.flutter.dev/get-started/learn-flutter)
- [Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)
- [Flutter learning resources](https://docs.flutter.dev/reference/learning-resources)
母艦「お局様」はブリッジモニタリングバックアップに専念し、実務機能は販売アシスト1号側に集約する方針です。TV BOX を母艦に据える運用や、単一端末で両役割を兼務するシナリオも想定しています。
For help getting started with Flutter development, view the
[online documentation](https://docs.flutter.dev/), which offers tutorials,
samples, guidance on mobile development, and a full API reference.
---
## 現状の実装状況
- 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 に反映していきます。