# core-banking-system

勘定系システム（教育・PoC用Web版）の設計および参照実装。

## これは何？（30秒で）

- **誰のため**：金融系SIer、銀行システム担当者、勘定系・元帳・振込処理を学びたいエンジニア
- **何が解決される**：勘定系の主要概念（顧客、口座、複式仕訳、残高、振込、監査、冪等性）を、WebアプリとAPIで動かしながら説明できる
- **なぜ既存ツールではダメか**：業務説明資料だけでなく、仕訳均衡や残高更新の不変条件をテストで確認できる参照実装として使える
- **使う条件**：Windows/macOS/Linux、Node.js 20+、npm、Prisma + SQLite（開発）または PostgreSQL（拡張時）

## 想定ユースケース・価格帯

- **無料OSS**：勘定系PoC、研修、社内勉強会、設計レビューのたたき台
- **有料サポート**：金融業務向けのデモ拡張、Prisma/PostgreSQL永続化、認証・監査・帳票の追加実装
- **診断・設計支援**：既存勘定系刷新、周辺システム分離、元帳・仕訳設計のレビューは個別相談

## デモ

![30秒デモGIF](docs/demo.gif)

<!-- docs/demo.gif に、ログイン→残高照会→振込→仕訳確認までの30秒デモGIFを配置予定。 -->

## 位置づけ

本物の勘定系（日立 OpenStage/BOP、富士通 PROBANK、NTTデータ BeSTA 相当）は、
- 24時間365日無停止
- 全銀システム / 日銀ネット接続
- 数千人月規模の開発・運用
- ゼロ障害が前提

を満たす必要があり、個人開発スコープでは到達不可能。本リポジトリは
**「勘定系の主要業務をWeb技術で再現した教育・PoC用システム」**として、
個人銀行業務＋法人銀行業務の主要機能を網羅する設計を行う。

## 技術スタック

| レイヤ | 採用 |
|---|---|
| Frontend | Next.js 15 (App Router) + TypeScript + Tailwind + shadcn/ui |
| Backend | Next.js API Routes + tRPC |
| ORM | Prisma |
| DB | PostgreSQL 16 (本番) / SQLite (開発) |
| 認証 | NextAuth.js (Credentials + TOTP MFA) |
| バッチ | Node.js + node-cron |
| 帳票 | pdfkit / exceljs |
| 監査 | append-only audit_log テーブル + WORM風運用 |
| インフラ | Docker Compose / Vercel + Supabase |

## 起動方法

### メモリモード（初学者向け）
```sh
npm install
npm test                # 14 unit tests
npm run dev             # http://localhost:3000
```

### Prisma + SQLite モード
```sh
cp .env.example .env
# .env で STORE_BACKEND=prisma に変更
npm run db:push
npm run db:seed         # admin / admin1234 と口座 0011000001 を作成
STORE_BACKEND=prisma npm run dev
```

### Playwright E2E
```sh
npx playwright install chromium
npm run test:e2e
```

## ドキュメント

- [docs/DESIGN.md](docs/DESIGN.md) — Codex 連携用の総合設計書（マークダウン）
- [docs/design.xlsx](docs/design.xlsx) — 機能一覧・テーブル定義・API一覧（Excel）

## スコープ

個人向け + 法人向け + 為替 + 融資 + バッチ + 全銀IF（モック）まで含むフル機能を設計。
実装は段階的に進める（フェーズ1: MVP → フェーズ4: 法人IF）。

## リリース手順

```sh
npm install
npm test
npm run lint
npm run build
```

配布物は GitHub Releases にタグ単位で添付する。静的な設計資料は `docs/`、実行可能なWebアプリは Next.js のビルド成果物を利用する。

## 商用利用・カスタマイズ依頼

- 個人利用・学習利用は無料（MIT）
- 企業導入支援・カスタマイズ・診断レポート作成は応相談：highdefinitionaudiodriver@gmail.com
