Just Save — 支出アナライザー

Web

概要

Just Save(リポジトリ名: just-fecking-save)は、CSV や PDF の取引ファイルをアップロードして支出を解析する Next.js アプリケーションです。アップロードされたトランザクションを読み取り、名称や金額、日付を正規化して自動でカテゴリを割り当て、一般的なサブスクリプションサービス(Netflix 等)を検出します。家計やサービス利用の傾向を素早く把握できるため、月次の定期支出管理や不要なサブスクリプション整理に役立ちます。UI は React/Next.js ベースで、TypeScript による型安全な実装が行われています(約300字)。

GitHub

リポジトリの統計情報

  • スター数: 1
  • フォーク数: 0
  • ウォッチャー数: 1
  • コミット数: 7
  • ファイル数: 15
  • メインの言語: TypeScript

主な特徴

  • CSV と PDF の両方のトランザクションファイルをアップロードして解析可能
  • 自動カテゴリ付与(Streaming、Gaming、Software など)
  • 一般的なサブスクリプションサービスの自動検出
  • Next.js + TypeScript で構築されたシンプルなフロントエンド中心アーキテクチャ

技術的なポイント

このプロジェクトは Next.js(React)を UI とサーバー(API)両方の土台にしたシングルリポジトリ構成で、TypeScript による型定義で可読性と安全性を確保しています。解析パイプラインは大きく「入力(CSV/PDF) → テキスト抽出 → レコード正規化 → カテゴリマッピング → 可視化」の段階に分かれます。CSV はカラムパースとヘッダマッピング、PDF はテキスト抽出(テキスト層の抽出や OCR の併用が想定される)を行い、日付・金額・説明を正規化します。カテゴリ付与やサブスクリプション検出は基本的にキーワード/正規表現ベースのルールマッチングで、サービス固有の名称パターンを照合して自動識別します。

実装面では、フロントエンドでファイルを受け取りプレビュー表示→サーバーサイド(あるいはクライアントサイド)で解析処理を行う流れが自然で、非同期処理やファイルストリームの扱いがポイントになります。TypeScript を使うことでトランザクション型やカテゴリ型を明確にしておくと、解析結果の集約・フィルタリング・集計ロジックが書きやすくなります。拡張性としては、ルールベースから機械学習やクラスタリング(頻出語の抽出やベクトル類似度)へ移行する余地があり、ユーザー学習機能やカスタムカテゴリ定義を追加すると実用性が高まります。

依存ライブラリは README に詳細はないものの、典型的な実装では CSV 解析ライブラリ、PDF テキスト抽出ライブラリ、日付/通貨パースユーティリティ、UI は React コンポーネント群を使用します。セキュリティ面では個人の金融データを扱うため、アップロード処理のバリデーション、サーバー側での一時保管の管理、ローカル処理を優先する設計(データをサーバーに残さない)などが重要です。(約700字)

プロジェクトの構成

主要なファイルとディレクトリ:

  • .eslintrc.json: file
  • .gitignore: file
  • README.md: file
  • app: dir
  • components: dir
  • package.json: file
  • tsconfig.json: file
  • public: dir
  • styles: dir
  • pages/api: dir
  • utils: dir
  • LICENSE: file …他 4 ファイル

まとめ

シンプルで実用的な支出解析ツール。拡張やルールの調整で実務利用に耐える。

リポジトリ情報:

READMEの抜粋:

Just Save - Expense Analyzer

A Next.js application that analyzes expenses and subscriptions from CSV and PDF files. Upload your transaction files to get categorized insights into your spending.

Features

  • 📄 CSV & PDF Support: Upload and process both CSV and PDF transaction files
  • 🏷️ Automatic Categorization: Transactions are automatically categorized (Streaming, Gaming, Software, etc.)
  • 🔍 Service Detection: Automatically detects common subscription services (Netflix, Spo…