Skip to content

Latest commit

 

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nontaro Asset Management Tool

このプロジェクトは、個人の資産運用戦略に基づき、生活費・予備費・生活防衛資金・投資資金の4つのセグメントを最適に管理・配分するためのデスクトップアプリケーションです。

📌 プロジェクト概要

就職後の収入や日々の余剰資金を、設定されたロジックに従って自動的に「どの口座にいくら振り分けるべきか」を計算し、可視化します。 PythonのGUIライブラリ CustomTkinter を採用し、モダンで視認性の高いダークモードUIを提供します。

🛠 機能一覧

1. ダッシュボード (Dashboard)

  • 資産残高の可視化: 主要4口座(PayPay、ソニー、住信SBI、SBI証券)の残高を一覧表示。
  • しきい値アラート: 設定した目標額を下回っている口座は赤字で警告表示、満たしている口座は緑字で表示されます。
  • 現在の運用モード表示: 資産状況から、現在どのフェーズ(生活費補填、予備費補填、余剰金運用)にいるかを自動判定して表示します。

2. 配分シミュレーター (Allocation Simulator)

  • 余剰資金の配分計算: 今回の入金額(余剰資金)を入力すると、優先順位に従って各口座への振込額を算出します。
  • 結果の反映: 計算結果を確認後、「結果を反映する」ボタンでデータベース上の資産残高を更新できます。
  • 設定の変更: 生活費目標、予備費目標などのしきい値をGUI上からいつでも変更可能です。

3. データ管理 & 履歴

  • JSONによるデータ永続化: 資産データや設定値は data/data.json に自動保存されます。
  • 操作ログ: 資産の更新や計算の履歴を直近10件までポップアップで確認できます。
  • リセット機能: 誤った入力をした際などのために、資産状況を初期化する機能(二段階認証付き)を備えています。
  • 資産情報の編集: 各口座の残高を手動で修正することも可能です。

4. UI / UX

  • 視認性の最適化: 幅広い年齢層や環境に対応するため、フォントサイズを大きく設定し(標準24px〜)、ボタン類も押しやすいサイズ(高さ60px〜)に調整しています。
  • OSごとの最適表示: macOS/Windows/Linuxそれぞれのフォントレンダリング特性に合わせ、最適なフォントファミリとサイズを自動選択します。
  • 入力フォーカス制御: Linux環境等での入力トラブルを回避するため、堅牢なフォーカス制御(クリック時の強制フォーカス取得など)を実装しています。
  • 標準ウィンドウ: OS標準のウィンドウフレームを採用し、安定した操作性(移動、サイズ変更、最小化/最大化)を確保しています。

📊 資産配分ロジック (Allocation Logic)

本システムは以下の優先順位で資金を配分します。しきい値(目標額)はアプリ内で自由に変更可能です。

  1. 生活費補填モード

    • 条件: PayPay銀行(生活費) < 生活費目標額
    • 動作: 余剰資金を最優先でPayPay銀行に充当します。
  2. 予備費補填モード

    • 条件: 上記を満たし、かつ ソニー銀行(予備費) < 予備費目標額
    • 動作: 余剰資金の 50% をソニー銀行(予備費)へ、50% をSBI証券(投資)へ配分します。
  3. 余剰金運用モード

    • 条件: 上記2つを満たしている場合
    • 動作: 余剰資金の 100% をSBI証券(投資)へ配分します。

※ 住信SBI(生活防衛資金)は、長期的な安全資産として監視対象ですが、日々の配分ロジックには直接組み込まれていません(手動管理)。

⚙️ 環境構築 & 実行方法

必要要件

  • OS: Linux (推奨), Windows, macOS
  • Python: 3.10 以上

インストール手順

  1. リポジトリをクローンまたはダウンロードします。
  2. 仮想環境を作成し、有効化します。
    python -m venv venv
    source venv/bin/activate  # Linux/Mac
    # venv\Scripts\activate   # Windows
  3. 依存ライブラリをインストールします。
    pip install -r requirements.txt

アプリケーションの実行

メインスクリプトを実行して起動します。

python src/main.py

開発用モード(ホットリロード)

開発中は、コードの変更を検知して自動再起動するモードが利用できます。

python dev.py

トラブルシューティング

macOSで ModuleNotFoundError: No module named '_tkinter' が発生する場合

Pythonが tcl-tk ライブラリを見つけられていない可能性があります。以下の手順で再インストールしてください。

  1. tcl-tk のインストール (Homebrew使用):

    brew install tcl-tk
  2. Python の再ビルド:

    env \
      PATH="$(brew --prefix tcl-tk)/bin:$PATH" \
      LDFLAGS="-L$(brew --prefix tcl-tk)/lib" \
      CPPFLAGS="-I$(brew --prefix tcl-tk)/include" \
      PKG_CONFIG_PATH="$(brew --prefix tcl-tk)/lib/pkgconfig" \
      CFLAGS="-I$(brew --prefix tcl-tk)/include" \
      PYTHON_CONFIGURE_OPTS="--with-tcltk-includes='-I$(brew --prefix tcl-tk)/include' --with-tcltk-libs='-L$(brew --prefix tcl-tk)/lib -ltcl8.6 -ltk8.6'" \
      pyenv install 3.12.8

    ※ バージョン部分は適宜使用しているものに合わせてください。

📁 ディレクトリ構成

.
├── src/
│   ├── main.py           # エントリーポイント
│   ├── config.py         # OS依存設定(フォント等)
│   ├── logic.py          # 配分ロジック計算
│   ├── data_manager.py   # データ読み書き・ログ管理
│   └── ui/
│       ├── app.py        # アプリケーション本体
│       ├── frames.py     # 各画面(ダッシュボード、シミュレーター)の実装
│       └── custom_window.py # ウィンドウ制御基盤(標準ウィンドウラッパー)
├── data/
│   └── data.json         # 資産データ・設定保存ファイル
├── dev.py                # 開発用ホットリロードスクリプト
├── requirements.txt      # 依存ライブラリ一覧
├── .gitignore            # Git除外設定
└── README.md             # 本ドキュメント

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages