Skip to content

Repository files navigation

Personal Finance Tracker

A comprehensive desktop application for tracking personal finances including income, expenses, multiple wallets, investments, and debts. Built with Tauri (Rust), React, TypeScript, and SQLite.

Features

  • Dashboard: Real-time financial overview with key metrics

    • Total balance across all wallets
    • Monthly income and expenses
    • Net change calculation
  • Wallet Management: Track multiple accounts

    • Bank accounts, cash, digital wallets
    • Multi-currency support
    • Real-time balance updates
  • Income Tracking: Record all income sources

    • Categorization by type
    • Source tracking
    • Date-based filtering
  • Expense Tracking: Monitor spending

    • Category-wise breakdown
    • Vendor information
    • Automatic wallet balance updates

Tech Stack

  • Backend: Tauri 2 (Rust) with SQLite
  • Frontend: React 19 + TypeScript + Vite
  • Styling: Tailwind CSS
  • State Management: TanStack Query
  • Icons: Lucide React
  • Database: SQLite (local, file-based)

Getting Started

Prerequisites

  • Node.js (v18 or higher)
  • pnpm
  • Rust (latest stable)

Installation

  1. Install dependencies:
pnpm install
  1. Run in development mode:
pnpm tauri dev

This command will:

  • Start the Vite dev server (port 1420)
  • Compile the Rust backend
  • Launch the Tauri desktop application

Building for Production

pnpm tauri build

The built application will be in src-tauri/target/release/.

Project Structure

├── src/                      # React frontend
│   ├── components/          # React components
│   │   ├── Dashboard.tsx   # Main dashboard
│   │   ├── WalletForm.tsx  # Add/edit wallets
│   │   └── TransactionForm.tsx  # Add income/expenses
│   ├── hooks/              # Custom React hooks
│   │   ├── useWallets.ts
│   │   ├── useIncome.ts
│   │   └── useExpenses.ts
│   ├── types/              # TypeScript types
│   ├── lib/                # Utilities
│   └── App.tsx             # Root component
├── src-tauri/              # Rust backend
│   ├── src/
│   │   ├── db/            # Database setup
│   │   ├── handlers/      # Tauri command handlers
│   │   ├── models/        # Data models
│   │   └── lib.rs         # Main entry point
│   └── Cargo.toml
└── package.json

Usage

Creating a Wallet

  1. Click the "+ Wallet" button in the dashboard
  2. Fill in wallet details:
    • Name (e.g., "Main Bank Account")
    • Type (Bank, Cash, or Digital)
    • Initial balance
    • Currency (USD, EUR, GBP, INR)
  3. Click "Create Wallet"

Adding Income

  1. Click the "+ Income" button
  2. Select the wallet to receive the income
  3. Enter amount and category (e.g., "Salary", "Freelance")
  4. Optionally add source and description
  5. Select the date
  6. Click "Add income"

The wallet balance will be automatically updated.

Adding Expenses

  1. Click the "+ Expense" button
  2. Select the wallet to deduct from
  3. Enter amount and category (e.g., "Food", "Transport")
  4. Optionally add vendor and description
  5. Select the date
  6. Click "Add expense"

The wallet balance will be automatically updated.

Database

The application uses SQLite with the following tables:

  • wallets: Store wallet information and balances
  • income: Track income transactions
  • expenses: Track expense transactions
  • investments: Track investment assets (future feature)
  • debts: Track debts and loans (future feature)

Database file: finance_tracker.db (created automatically in the app directory)

Development

Available Commands

# Frontend development
pnpm dev              # Start Vite dev server
pnpm build            # Build frontend

# Tauri development
pnpm tauri dev        # Run app in dev mode
pnpm tauri build      # Build production app

# Rust development
cd src-tauri
cargo check           # Check Rust code
cargo clippy          # Run linter

Adding New Features

See CLAUDE.md for detailed architecture and development guidelines.

Future Enhancements

  • Investment tracking (crypto, stocks, deposits)
  • Debt management with payment schedules
  • Budget planning and alerts
  • Data visualization with charts
  • Export to CSV/PDF
  • Recurring transactions
  • Multi-currency conversion
  • Data backup/restore

License

This project is for personal use.

About

app to managing my financial

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages