Skip to content

要件定義

最終更新: 2026-08-08

関連: アーキテクチャ / データ取込 / セットアップ

ビジョン

お金の管理が苦手でも続く仕組みにする。
支出はできるだけ自動で集まり、AIが厳し目にフィードバックし、可視化は既存 Grafana で行う。

成功条件

  • 支払いのたびに、手間ほぼゼロで Discord に厳し目フィードバックが届く
  • 「今週いくら使ったか / 残り感覚」が日常的に分かる
  • 週1の CSV 補正で、通知漏れがあっても帳尻が合う
  • Grafana で日次・週次・カテゴリ別が見える

前提・制約

項目 内容
主な支出 PayPay(都度チャージ → 残高払い)
その他支出 楽天カードの引き落とし・サブスク系
スマホ Android
Android クライアント Tasker + AutoNotification(正式)。通知時に端末 GPS も付与。自作アプリは作らない
実行基盤 自宅 Proxmox
ドメイン nkjm.dev(サブドメインを用途別に割り当て)
DB PostgreSQL
可視化 既存 Grafana VM(PostgreSQL データ源)
AI(運用) Gemini API(Cursor とは別)
通知先 Discord(フィードバック + 手動/画像入力)。LINE は後回し
自動取込 PayPay は Cloudflare Tunnel 直。Discord は自動の本線にしない
計算ルール MVP 後に注入

詳細なデータ取得は データ取込
Android 連携は Tasker
公開面は Cloudflare

MVP スコープ

Must

  1. Android 通知の受信・パース・保存
  2. 利用メールの受信・パース・保存
  3. Gemini による分類と厳し目コメント
  4. Discord 即時通知
  5. 週次 CSV 取込と差分補正
  6. Grafana 向けデータ公開(最低限の日次/週次)

Later

  • 予算ルール(月収・固定費・曜日配分など)の注入
  • スクショ取込の本格化(Discord 手動画像は対応済み。Tasker 自動経路は別)
  • LINE 連携
  • 楽天 e-NAVI スクレイピング自動化
  • 自作 Android ミニアプリへの置き換え(必須ではない)

ユーザーストーリー(MVP)

  1. PayPay で支払うと、数十秒以内に Discord で怒られる
  2. 楽天カード請求が発生すると、メール経由で同様に記録・通知される
  3. 日曜に CSV を置ると、週次の精算と取りこぼし報告が来る
  4. Grafana を開くと、今週どれだけ使ったか一目で分かる

非機能要件(要約)

  • Android → サーバは ingest.finance.nkjm.dev + Cloudflare Tunnel
  • 認証は Access Service Token + Bearer の二重(詳細は Cloudflare
  • 永続データは PostgreSQL(SQLite 不使用)
  • 秘密情報は env / Tasker ローカル変数。Git に置かない
  • 二重計上しないことを優先
  • 生データ(通知本文・メール・CSV)は必ず保存