Files
2026-04-03 21:28:33 +09:00

59 lines
2.9 KiB
Markdown
Raw Permalink Blame History

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.
# 家計簿アプリ
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` に追記