Skip to content

Capybara787/finance-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Personal Finance Tracker

A comprehensive web-based personal finance tracker built with Flask and SQLite. Track your income, expenses, and transfers with beautiful visualizations and persistent storage.

Features

🏠 Dashboard

  • Summary Cards: View total income, expenses, and net amount at a glance
  • Pie Chart Visualization: See expense breakdown by category with percentages
  • Transaction History: Complete list of all transactions with filtering and sorting

💰 Transaction Management

  • Multiple Transaction Types:
    • Expenses (with detailed categories)
    • Income (salary, freelance, investments, etc.)
    • Transfers (between accounts)
  • Multiple Currencies: Support for USD, EUR, GBP, JPY, CAD, AUD, SGD
  • Recurring Transactions: Set up automatic recurring expenses/income
  • Detailed Notes: Add descriptions and notes to any transaction

📊 Categories

Expenses: Food & Dining, Transportation, Housing & Rent, Utilities, Entertainment, Shopping, Healthcare, Education, Travel, Insurance, Taxes, Other

Income: Salary, Freelance, Investment, Business, Gifts, Refunds, Other

Transfers: Bank Transfer, Credit Card Payment, Savings, Investment, Other

🔄 Recurring Transactions

  • Set frequency: Weekly, Bi-weekly, Monthly, Quarterly, Yearly
  • Configure start and end dates
  • Automatic transaction generation

📱 Responsive Design

  • Mobile-friendly interface
  • Modern, clean UI with glassmorphism effects
  • Smooth animations and transitions

Installation

  1. Clone the repository:

    git clone <repository-url>
    cd finance-tracker
  2. Install dependencies:

    pip install -r requirements.txt
  3. Run the application:

    python main.py
  4. Open your browser and navigate to http://localhost:5000

Database

The application uses SQLite for persistent storage. The database file (finance_tracker.db) will be automatically created when you first run the application.

Database Schema

CREATE TABLE transactions (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    type TEXT NOT NULL,                    -- 'expense', 'income', 'transfer'
    amount REAL NOT NULL,
    currency TEXT DEFAULT 'USD',
    category TEXT,
    description TEXT,
    date TEXT NOT NULL,
    is_recurring BOOLEAN DEFAULT FALSE,
    recurring_frequency TEXT,
    recurring_start_date TEXT,
    recurring_end_date TEXT,
    created_at TEXT DEFAULT CURRENT_TIMESTAMP
);

Usage

Adding Transactions

  1. Click "Add Transaction" on the dashboard
  2. Select transaction type (Expense/Income/Transfer)
  3. Enter amount and select currency
  4. Choose appropriate category (dynamically updates based on type)
  5. Add optional description/notes
  6. Set date (defaults to today)
  7. Optionally enable recurring transaction settings
  8. Click "Add Transaction"

Viewing Data

  • Dashboard: Overview with summary cards and pie chart
  • Transaction Table: Complete history with delete functionality
  • Charts: Visual breakdown of expense categories

Managing Transactions

  • Delete transactions using the delete button in the transaction table
  • All changes are automatically saved to the database

Future Enhancements

Planned Features

  • User authentication and multi-user support
  • CSV import from bank statements
  • Export functionality (PDF, Excel)
  • Budget tracking and alerts
  • Advanced analytics and reporting
  • Mobile app version
  • Cloud synchronization

CSV Import

The application is designed to support CSV import from bank statements. Future versions will include:

  • Automatic category detection
  • Transaction matching
  • Bulk import functionality
  • Support for various bank formats

Technology Stack

  • Backend: Flask (Python)
  • Database: SQLite
  • Frontend: HTML5, CSS3, JavaScript
  • Charts: Chart.js
  • Styling: Custom CSS with glassmorphism effects

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly
  5. Submit a pull request

License

This project is open source and available under the MIT License.

Support

For issues, questions, or feature requests, please open an issue on the GitHub repository.

About

A finance traker I'll actually use

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors