型と計算、外部接続、Reactユースケース、UIを別パッケージにしています。会計ロジックはフレームワークに依存しません。
開発者向け
自由に組み合わせられるモジュール構造
オープン会計はTypeScript製の会計アプリです。複式簿記の計算、UI、データ保存などを パッケージに分け、用途に応じて組み合わせられる構成にしています。
- Language
- TypeScript
- License
- Apache-2.0
- Architecture
- Ports & Adapters
- Tests
- Vitest + Playwright
パッケージ構成
アーキテクチャ
UI、会計ロジック、保存処理の依存方向を定めています。独自アプリでは必要なPortを実装し、 composition rootで使用するパッケージを指定します。
ドメイン、DB接続、ユースケース、APIの依存方向を固定しています。
SQLite Wasm + OPFS、インメモリDB、印刷処理、埋め込みバックエンドの実装があります。
参照アプリ側で、必要なパッケージと実装を組み合わせます。
依存関係図パッケージ依存関係
設計文書を読む仕様
公開APIとテスト
API、DB、アーカイブ形式の仕様を文書化し、保存方式ごとの動作をテストしています。
公開している境界
- バックエンド用の OpenkkBackendPort
- 保存方式用の OpenkkDbPort
- バージョン付き会計期間アーカイブZIP
- クライアントとサーバーで共通化しすぎない型境界
継続的な検証
- Vitestによるドメインロジック・パーサー検証
- DBアダプター共通の契約適合テスト
- Playwrightによる締め処理のE2Eテスト
- TypeScriptによる全ワークスペース検査
セットアップ基本的な確認コマンド
npm install
npm test
npm run lint今後
ロードマップ
現在利用できる機能と、今後実装を検討している機能を分けて掲載しています。
Now利用可能
現在利用できる機能
- ブラウザで利用できる複式簿記と帳票生成
- ローカル保存とクラウド保存
- バックエンドとDBアダプターの差し替え
- 会計期間アーカイブの入出力
Next予定
APIとCLIの追加
- HTTPバックエンドの参照実装を公開
- CLIを整備
- AIの提案内容を確認してから反映する操作を追加
- 変更履歴と変更理由を保存する監査情報を追加
Explore検討中
外部連携と拡張機能
- 業種別の構成例
- 外部サービス用アダプター
- ローカル環境で動作する自動化
- 会計データの相互運用
機械可読データ
JSONとMarkdownで公開
このページのプロジェクト情報は、JSONとMarkdownでも公開しています。仕様については、 公式ページとGitHubの文書を参照してください。