開発者向け

自由に組み合わせられるモジュール構造

オープン会計はTypeScript製の会計アプリです。複式簿記の計算、UI、データ保存などを パッケージに分け、用途に応じて組み合わせられる構成にしています。

Language
TypeScript
License
Apache-2.0
Architecture
Ports & Adapters
Tests
Vitest + Playwright

アーキテクチャ

UI、会計ロジック、保存処理の依存方向を定めています。独自アプリでは必要なPortを実装し、 composition rootで使用するパッケージを指定します。

Client

型と計算、外部接続、Reactユースケース、UIを別パッケージにしています。会計ロジックはフレームワークに依存しません。

Server

ドメイン、DB接続、ユースケース、APIの依存方向を固定しています。

Adapters

SQLite Wasm + OPFS、インメモリDB、印刷処理、埋め込みバックエンドの実装があります。

Composition

参照アプリ側で、必要なパッケージと実装を組み合わせます。

依存関係図パッケージ依存関係
設計文書を読む

公開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の文書を参照してください。