This project is a Personal Finance Tracker built with Python using Tkinter for the user interface and pandas for data handling. It allows users to record and track their income and expenses conveniently with CSV file storage.
- ✅ Add Transactions: Add income and expense entries with date, amount, category, and description.
- ✅ View Transactions: Display transactions within a specified date range in a tabular format.
- ✅ Plot Transactions: Generate a graph showing income and expense trends over time.
- ✅ CSV-Based Storage: Transactions are stored in a CSV file (
finance_data.csv).
📁 finance_tracker
├── 📄 main.py # CSV management and data handling
├── 📄 data_entry.py # User input validation functions
├── 📄 finance_tracker_gui.py # Tkinter-based GUI for the finance tracker
├── 📄 finance_data.csv # CSV file for storing transactions
├── 📄 README.md # Project documentation
- Clone the repository:
git clone <repository_url>- Navigate to the project folder:
cd finance_tracker- Install required packages:
pip install pandas matplotlib- Run the Tkinter GUI:
python finance_tracker_gui.py- Open the Tkinter GUI using the command above.
- Enter the date (dd-mm-yyyy format).
- Enter the amount.
- Select the category (Income or Expense).
- Add a brief description.
- Click Add Transaction.
- Enter a start date and end date (dd-mm-yyyy format).
- Click View Transactions.
- Transactions will be displayed in a table below.
- After viewing transactions, click Plot Transactions to generate a graph.
- Transactions are stored in
finance_data.csv. - The CSV columns are:
date,amount,category,description. - Date format used is:
dd-mm-yyyy.
- Added a Tkinter GUI (
finance_tracker_gui.py) for better usability. - Automated date validation using the dd-mm-yyyy format.
- Enhanced error handling for invalid date and amount inputs.
- Improved CSV handling with pandas for filtering and plotting transactions.
- Exporting the project as an executable (
.exefile). - Adding monthly summary reports.
- Implementing data encryption for sensitive financial data.
This project is intended for educational purposes and personal use only.
Feel free to contribute to this project! 🚀