はじめに
今回からAIに頼り切った家計簿アプリを開発していきます。
要件
今回考えている最低限の要件は以下
・OCR取り込み(レシート等)で手入力を最小限に
・データはSQLiteで管理してみる
・Excel出力機能で拡張性を上げる
プロンプト
家計簿アプリの開発を検討している。
必要な機能を洗い出してください。
以下機能は必須とする。
・OCR取り込み(レシート等)
・データはSQLiteで管理
・Excel出力機能
回答
家計簿アプリとして実用レベルを目指す場合、単なる「収支入力」だけでなく、継続利用・分析・保守性まで考慮した機能設計が重要です。
以下に、必須機能を含めてカテゴリ別に整理します。
1. 基本機能
1-1. 収支登録
必須項目
- 日付
- 金額
- 種別(支出/収入)
- カテゴリ
- 支払方法
- メモ
拡張候補
- タグ
- 店舗名
- 添付画像(レシート原本)
- 定期支出フラグ
- 通貨
1-2. カテゴリ管理
機能
- カテゴリ追加
- 編集
- 削除
- 並び順変更
- アイコン設定
カテゴリ例
- 食費
- 日用品
- 家賃
- 光熱費
- 通信費
- 交通費
1-3. 支払方法管理
管理対象
- 現金
- クレジットカード
- PayPay
- Suica
- 銀行口座
必要機能
- 残高管理
- 締め日管理
- 引き落とし日管理
2. OCR機能(必須)
2-1. レシートOCR取込
入力方法
- 画像選択
- ドラッグ&ドロップ
- カメラ撮影
OCR抽出対象
- 店舗名
- 日付
- 合計金額
- 税額
- 商品一覧
- 支払方法
2-2. OCR後確認画面
OCRは誤認識が発生するため必須。
必要機能
- 認識結果編集
- 商品単価修正
- カテゴリ再設定
- 不要行削除
2-3. OCR学習補助
継続利用で精度改善。
例
- 「セブンイレブン → 食費」
- 「ENEOS → ガソリン」
3. データ管理(SQLite必須)
3-1. SQLite管理
必須テーブル候補
Transactions
Id
Date
Type
CategoryId
Amount
PaymentMethodId
StoreName
Memo
ReceiptImagePath
CreatedAt
UpdatedAt
Categories
Id
Name
Color
SortOrder
PaymentMethods
Id
Name
Type
ClosingDay
PaymentDay
ReceiptItems
Id
TransactionId
ItemName
Price
Quantity
CategoryId
3-2. バックアップ機能
重要。
必要機能
- SQLiteファイル自動バックアップ
- 世代管理
- 復元
3-3. DBメンテナンス
機能
- Vacuum
- Integrity Check
- DBサイズ表示
4. Excel出力機能(必須)
4-1. 明細出力
出力例
| 日付 | カテゴリ | 金額 | 店舗 |
|---|
4-2. 集計出力
集計単位
- 月別
- 年別
- カテゴリ別
- 支払方法別
4-3. グラフ付きExcel
出力内容
- 円グラフ
- 棒グラフ
- 月推移
4-4. Excelテンプレート対応
例
- 自作フォーマットへ出力
- 家計簿フォーマット固定化
5. 分析機能
5-1. ダッシュボード
表示
- 今月支出
- 前月比較
- カテゴリ割合
- 日別推移
5-2. 検索・フィルタ
条件
- 日付範囲
- 金額範囲
- カテゴリ
- 店舗
- OCR有無
5-3. 異常検知
例
- 食費が平均超過
- 固定費急増
6. UI/UX
6-1. 一覧画面
必須
- ソート
- フィルタ
- ページング
- 行色分け
6-2. 入力支援
機能
- オートコンプリート
- 最近使ったカテゴリ
- 金額テンキー
6-3. レシート画像表示
機能
- サムネイル
- 拡大表示
- OCR結果並列表示
7. セキュリティ
7-1. ロック機能
例
- パスワード
- PIN
- 生体認証(将来)
7-2. DB暗号化
SQLite暗号化検討。
候補
- SQLCipher
8. 通知機能
8-1. 定期通知
例
- 入力忘れ通知
- 月末締め通知
8-2. 予算超過通知
条件
- カテゴリ別上限
9. インポート機能
9-1. CSVインポート
取込元
- 銀行
- クレカ明細
- 他家計簿アプリ
9-2. OCR一括取込
機能
- 複数画像投入
- バッチ処理
10. 開発観点で重要な非機能要件
10-1. パフォーマンス
対策
- SQLite Index
- 非同期OCR
- 画像圧縮
10-2. 保守性
推奨
- Repositoryパターン
- MVVM/WPF または MVC
- DI導入
10-3. ログ
出力
- OCR失敗
- DBエラー
- Export失敗
11. 推奨技術構成(C#前提)
UI
- WPF
- WinUI3(将来性重視)
OCR
- Tesseract OCR
- OpenCvSharp
DB
- SQLite
- Dapper または
- Entity Framework Core
Excel
- ClosedXML
- EPPlus
12. MVP(最初に作るべき最小構成)
最初は以下に絞るのが現実的。
MVP推奨
- 支出登録
- カテゴリ管理
- OCR読取
- SQLite保存
- 一覧表示
- Excel出力
- 月別集計
13. 後から追加推奨機能
- クラウド同期
- AIカテゴリ自動判定
- 音声入力
- 複数ユーザー共有
- スマホ連携
- Web版
- 銀行API連携
- サブスク検知
- 予算シミュレーション
画面一覧
上記回答より、なんとなく画面は以下構成にしようと思います。
最初なので最小限、後ほど機能追加していく予定です。
・メインメニュー
・支出新規登録
・一覧画面
最後に
次回は画面を作成して取りあえず動く状態にしようと思います。