初回コミット

This commit is contained in:
2026-04-03 21:28:33 +09:00
commit 9a5086187b
47 changed files with 16941 additions and 0 deletions
+58
View File
@@ -0,0 +1,58 @@
# 家計簿アプリ
MoneyForward のCSVを取り込んで複式簿記で管理する個人用Webアプリ。
## 起動方法
```bash
npm run dev
# → http://localhost:5173
```
## 技術スタック
- React 18 + TypeScript + Vite
- Tailwind CSS(ダークテーマ、slate系カラー)
- Zustand(状態管理、localStorageにpersist
- PapaParseShift-JIS CSV読み込み)
- Recharts(棒グラフ・ドーナツ円グラフ)
## 主要ファイル
| ファイル | 役割 |
|---|---|
| `src/types/index.ts` | 型定義(Account, Transaction, JournalEntry等)|
| `src/utils/accounts.ts` | 勘定科目マスタ・カテゴリ/金融機関マッピングのデフォルト値 |
| `src/utils/csvParser.ts` | MoneyForward CSVパース → 複式仕訳変換 |
| `src/utils/bookkeeping.ts` | 残高計算・P/L・B/S・元帳構築ロジック |
| `src/store/index.ts` | Zustandストア(全データ管理) |
| `src/components/` | 各画面コンポーネント |
## 画面構成
- **ダッシュボード**: 月次収支サマリ、棒グラフ、支出内訳円グラフ、費目別ランキング
- **CSVインポート**: Shift-JIS CSV ドロップ→仕訳変換(重複自動スキップ)
- **仕訳帳**: 全仕訳一覧(列幅リサイズ対応)
- **総勘定元帳**: 勘定科目別の借方/貸方/残高明細
- **バランスシート**: 貸借対照表(B/S)と損益計算書(P/L)タブ
- **設定・マッピング**: MFカテゴリ→勘定科目、金融機関→資産勘定のマッピング管理
## 重要な設計上の注意点
### `_skip_` accountId
ATM引き出し・Suicaチャージ・口座間振替など「資産間移動」はカテゴリマッピングで `_skip_` を指定すると仕訳生成をスキップする。ただし `天引き貯金``投資用振り込み` は資産移動だが**支出として計上**する方針。
### 勘定科目タイプ
`asset` / `liability` / `equity` / `income` / `expense` の5種。`normalBalance``debit` なら借方残高科目、`credit` なら貸方残高科目。
### 選択月の共有
`selectedMonth` はZustandストアで全ページ共有。ページ切り替えで月選択がリセットされないようにしている。
### データの保存場所
全データはブラウザの **localStorage** に保存(Zustand persist)。ブラウザの閲覧データを削除すると消える。コードからは参照不可。
## よくある改善作業
- **未分類カテゴリの追加**: `src/utils/accounts.ts``DEFAULT_CATEGORY_MAPPINGS` または `DEFAULT_INSTITUTION_MAPPINGS` に追記し、「設定」画面で「デフォルトを再適用」ボタンを押してもらう
- **勘定科目の追加**: `src/utils/accounts.ts``DEFAULT_ACCOUNTS` に追記(`id` はユニークな文字列、`order` で表示順を制御)
- **新しいMF金融機関の追加**: `DEFAULT_INSTITUTION_MAPPINGS` に追記