2 Home
joe edited this page 2026-08-11 14:01:25 +09:00
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.

h-1-core Wiki

プロジェクト名

h-1-core(販売アシスト1号 コア版)

概要

請求書・領収証発行、顧客・商品マスター管理のFlutter製マルチプラットフォームアプリケーション。

  • 言語: Dart 3.12.0+ / Flutter 3.12.0+
  • 状態管理: StatefulWidget + ValueNotifier + シンプルサービスクラス(Provider/Riverpod/Bloc不使用)

主要パッケージ

パッケージ 用途
sqflite ^2.3.0 ローカルSQLite
pdf ^3.11.3 / printing ^5.14.2 PDF生成・印刷
crypto ^3.0.7 / uuid ^4.5.1 ハッシュチェーン・ID生成
intl ^0.20.2 日本語ロケール
http ^1.6.0 Mattermost API
google_sign_in ^6.1.0 / googleapis ^12.0.0 Google連携
google_generative_ai ^0.4.7 Gemini OCR
fl_chart ^1.2.0 / qr_flutter ^4.1.0 グラフ・QRコード
shared_preferences ^2.2.2 設定保存

プラグイン一覧

CorePlugin, DocumentsPlugin, CustomersPlugin, ProductsPlugin, CompanyPlugin, SettingsPlugin, InventoryPlugin, PurchasePlugin, AnalysisPlugin, Accounting2Plugin, QuickActionsPlugin, ExplorerPlugin, BackupPlugin, ConversionPlugin, AuditPlugin, DebugPlugin, DriveBackupPlugin, ProjectPlugin, MemorandumPlugin, ArPlugin, DailyPlugin, SuppliersPlugin, SyncPlugin, PrinterPlugin, CasesPlugin, IcePlugin, ShippingPlugin

P1/PE統合: ProductsPlugin が商品マスター(P1)と価格表(PE)を一本化管理。products.price_list_year IS NULL = P1、IS NOT NULL = PE。旧 PriceListPlugin・price_entries テーブルは廃止済み。

絶対ルール

バージョン番号

  • フォーマット: v{Major}.{Minor}.{PATCH} — PATCHは必ず3桁ゼロ埋め
  • 例: v1.3.001, v1.3.010, v1.3.100 (v1.3.1やv1.3.10は禁止)
  • 機能追加もバグ修正も PATCH をインクリメント。MINOR は原則変えない
  • リリース前に必ず pubspec.yaml のバージョンを確認する

リポジトリ

  • 絶対にソースコードをGitHubにpushしてはならない
  • origin: ssh://git@git.cyberius.biz/joe/h1-c2.git(Forgejo, ソースコード用)
  • github: https://github.com/krasherjoe/h1-c2.git(APK+READMEのみ)

APK署名

  • 鍵: android/keystore/debug.keystore(リポジトリ管理の共通鍵)
  • この鍵が変わると既存ユーザーのデータが全損する。絶対に別の鍵で署名しない

Google Client ID

  • Android用 Client ID は android/app/src/main/res/values/strings.xml の default_web_client_id — 絶対に削除しない
  • iOS/Web用は .env + --dart-define-from-file=.env で注入

コア設計思想(電帳法 + Hash Chain)

詳細: 「電帳法とHashChain」を参照

  1. メインDBは自由 — 電帳法の真の要件は「PDF再現可能」であり、DBの不変性ではない
  2. PDF生成JSONにHash Chainを適用 — 電帳法要件を充足する対象はこれだけ
  3. 数学的事実は法的解釈に依存しない — Hash chainの改ざん防止効果は数学的に保証

関連ドキュメント

ページ 内容
電帳法とHashChain 電帳法対応システム設計根拠書(Hash Chain導入の正当性)
ICE-API仕様 ICEデバッグプラグイン REST API 仕様
Mattermost統合 Mattermost 連携アーキテクチャ(MM Command Bridge / ErrorReporter)
配送管理 配送管理モジュール設計(追跡番号管理・送り状印刷)
OCR受領書類 OCR受領書類データ管理統合(v1.4.357 / DB v27)
コーディング規約 デザインシステムルール・UIコーディング規約
開発ログ/Home バージョン別開発ログ

Wikiの使い方

このWikiはリポジトリの docs/ と .ai/ のミラー+開発ログとして運用します。

  • docs/*.md の設計ドキュメントを各ページにミラー
  • .ai/*.md の開発ガイドを各ページにミラー
  • 開発ログ/ にバージョン別の開発ログを追記
  • 最新のプロジェクト情報はリポジトリの AGENTS.md / .ai/context.md を参照(このWikiはスナップショット)