Skip to content

Python Expenses Tracker Evolution: From Basic Logger To Complete Financial Dashboard - Tabbed Interface (Ledger + Analytics), Multi-Currency Support, Advanced Search & Filters, Budget Alerts, Professional Excel Reports, And Persistent Settings - Complete Financial Management Solution 💰

Notifications You must be signed in to change notification settings

hexbido/Expenses-Tracker-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python Expenses Tracker App Money with Wings

A Professional Financial Management Solution: From Simple Data Entry System To Advanced Analytics Dashboard, Real-Time Currency Conversion, Export Capabilities, Budget Tracking, And Interactive Charts.

AboutTech StackGalleryEvolutionHow To RunWarnings


separator

About The Project Memo

This Repository Represents The Ninth & Final Major Milestone In My Front-End Diploma (Programming Fundamentals Track).

It's More Than Just An Expense Tracker, It's A Documentation Of My Journey In Financial Software Development & Data Visualization - The Project Chronicles The Evolution From Simple Expense Logging Using Basic JSON Storage To A Sophisticated Financial Dashboard Powered By Real-Time API Integration With Advanced Analytics.

The Final Version Is An Intelligent Financial Management Tool That Provides Real-Time Currency Conversion Via ExchangeRate-API, Features A Modern Tabbed Interface With Data Ledger And Analytics Dashboard, Implements Advanced Filtering And Search Capabilities, Supports Multiple Export Formats (Excel, CSV, JSON, HTML, TXT), Includes Budget Tracking With Alert System, Displays Interactive Charts (Donut, Bar, Line) Using Matplotlib, And Offers Dark/Light Theme Toggle With Persistent Settings.


separator

Tech Stack & Tools Tools

Python CustomTkinter ExchangeRate API Matplotlib Requests OpenPyXL VS Code Miro

Python (3.10+): The Core Language Driving All Application Logic, Data Processing, And Financial Calculations.
CustomTkinter Framework: Powers The Modern Visual Interface With Custom Widgets, Tabbed Navigation, And Professional Dark/Light Theme Design.
Requests Module: Handles All HTTP Communication With ExchangeRate-API For Fetching Live Currency Conversion Rates.
ExchangeRate-API: Provides Real-Time Currency Conversion Rates For 160+ Currencies With Caching System For Optimal Performance.
Matplotlib: Creates Interactive Data Visualizations Including Donut Charts, Bar Graphs, And Line Trends For Spending Analysis.
OpenPyXL: Generates Professional Excel Reports With Custom Formatting, Color Schemes, And Automatic Column Sizing.
TkCalendar: Provides A Professional Date Picker Widget With Custom Styling For Easy Date Selection.
JSON Module: Manages Data Persistence By Saving Expenses And User Settings To Local JSON Files.
Threading Module: Implements Background Data Processing For Currency Conversion And Chart Generation To Keep UI Responsive.
Collections Module: Utilizes DefaultDict For Efficient Data Aggregation When Processing Category And Time-Based Analytics.
Miro: Used For Planning And Designing The Application Architecture, Database Schema, And Feature Flow Before Development.


separator
The Project Followed A Structured "Plan-Then-Code" Approach - Below Is The Comparison Between The Planning Phase And The Final Execution For Both Versions.

Basic Version Advanced Version
Planning (Logic)

Basic Flowchart
Planning (Logic)

Advanced Flowchart
Execution (Main Result)

Basic Output
Execution (Main Result)

Advanced Output
UI Design

Basic UI
UI Design

Advanced UI

View More Screenshots (Click Here) Search

Basic Version - Extra Shots

Basic Shot 2 Basic Shot 3

Basic Shot 4 Basic Shot 5

Basic Shot 6 Basic Shot 7

Basic Shot 8





Advanced Version - Extra Shots

Advanced Shot 2 Advanced Shot 3

Advanced Shot 4 Advanced Shot 5

Advanced Shot 6 Advanced Shot 7

Advanced Shot 8 Advanced Shot 9

Advanced Shot 10 Advanced Shot 11

Advanced Shot 12 Advanced Shot 13

Advanced Shot 14

Live Demo Video

Watch The Application In Action: Real-Time Currency Conversion, Analytics Dashboard, And Export Features Demonstration.

Watch Video
Click To Watch Video ▷

separator

Features & Evolution Rocket

The Transition From The Basic Expense Logger To The Advanced Analytics Dashboard Highlights A Significant Leap In Functionality And Financial Insight.

Feature Basic Version Advanced Version (Analytics)
Interface Design Single View Layout Tabbed Interface (Ledger + Analytics)
Data Visualization Table Only 3 Chart Types (Donut/Bar/Line)
Export Formats No Export 5 Formats (Excel/CSV/JSON/HTML/TXT)
Search & Filter No Search Advanced Filtering (Text + Category + Payment)
Budget System No Budget Budget Tracking + Alert System
Theme Support Dark Only Dark/Light Toggle
Settings System No Settings Persistent Preferences
Performance Synchronous Multi-Threaded Processing

Key Features In Advanced Version Star

Real-Time Currency Conversion: Automatically Converts All Expenses To Your Preferred Currency Using ExchangeRate-API With Smart Caching System.
Interactive Analytics Dashboard: Visualize Spending Patterns With 3 Chart Types - Donut (Category Breakdown), Bar (Top 5 Categories), Line (Trend Over Time).
Advanced Search & Filtering: Find Expenses Quickly Using Text Search, Category Filter, And Payment Method Filter With Instant Results.
Multiple Export Formats: Export Your Financial Data To Excel (.xlsx), CSV, JSON, HTML Report, Or Text File With Custom Formatting.
Budget Tracking System: Set Monthly Budgets And Receive Color-Coded Alerts (Green/Orange/Red) Based On Remaining Balance.
Dual Currency Display: View Table Data In One Currency And Summary Total In Another - Perfect For Multi-Currency Management.
Smart Settings Panel: Customize Keyboard Shortcuts, Auto-Clear Behavior, Delete Confirmations, And Theme Preferences With Persistent Storage.
Professional UI/UX: Features Modern Design With Toolbar, Date Picker, Custom Currencies, Smooth Animations, And Responsive Layout.


separator

Installation & Usage Download

Follow The Steps Below To Run The Project Locally On Your Machine - Ensure You Have Python 3.10+ Installed.

1️⃣ Clone The Repository

Open Your Terminal And Run The Following Command To Download The Project Files:
git clone https://github.com/hexbido/Expenses-Tracker-App.git
cd Expenses-Tracker-App

2️⃣ Install Required Dependencies

Install The Necessary Python Packages Using Pip:
# For Windows Users:
pip install customtkinter requests tkcalendar  # Basic Version
pip install customtkinter requests tkcalendar matplotlib openpyxl  # Advanced Version

# For macOS/Linux Users:
pip3 install customtkinter requests tkcalendar  # Basic Version
pip3 install customtkinter requests tkcalendar matplotlib openpyxl  # Advanced Version

3️⃣ Get Your Free API Key

Register For A Free ExchangeRate-API Key (Takes 1 Minute):
1. Visit: https://www.exchangerate-api.com/
2. Click "Get Free Key"
3. Sign Up With Your Email
4. Copy Your API Key
5. Paste It In Line ~13 Of The Code: API_KEY = "YOUR_KEY_HERE"

4️⃣ Run The Basic Version

Navigate To The Basic Version Folder And Execute The Simple Expense Tracker:
# For Windows:
cd Basic-Version
python Expenses_Tracker.py

# For macOS/Linux:
cd Basic-Version
python3 Expenses_Tracker.py

5️⃣ Run The Advanced Version (Analytics)

To Launch The Full Application With All Advanced Features:
# For Windows:
cd Advanced-Version
python Expenses_Tracker_AI.py

# For macOS/Linux:
cd Advanced-Version
python3 Expenses_Tracker_AI.py

6️⃣ Using The Application

Follow These Simple Steps To Track Your Expenses And Analyze Spending Patterns:

Adding Expenses: Enter Amount, Select Currency, Choose Category, Select Payment Method, Pick Date, Then Click "+ ADD EXPENSE".
Viewing Analytics: Click "ANALYTICS" Tab To See Spending Charts - Donut (Categories), Bar (Top 5), Line (Time Trend).
Searching Expenses: Use The Search Box To Find Expenses By Amount, Currency, Category, Payment, Or Date - Apply Filters For Precise Results.
Changing Display Currency: Use The "View Value In" Dropdown To Convert All Table Values To Your Preferred Currency Instantly.
Setting Budget: Click "Budget" Button To Set Monthly Limit - Get Color-Coded Alerts When Approaching Or Exceeding Budget.
Exporting Data: Click "Export" Button And Choose Format - Excel (Professional Report), CSV (Spreadsheet), JSON (Backup), HTML (Web), Or TXT (Simple).
Customizing Settings: Click ⚙️ Icon To Access Preferences - Enable Keyboard Shortcuts, Auto-Clear, Confirm Delete, And Reset All Data.
Switching Themes: Click ☀ / 🌙 Icon In Toolbar To Toggle Between Dark And Light Modes - Preference Saves Automatically.


separator

Warnings & Troubleshooting Warning

Please Review The Following Notes To Ensure Smooth Operation And Avoid Common Issues:

API Key Required: Both Versions Require A Valid ExchangeRate-API Key - Get Yours For Free At https://www.exchangerate-api.com/ (No Credit Card Needed).

Internet Connection: Real-Time Currency Conversion Requires A Stable Internet Connection - The App Will Show Error Messages If API Calls Fail.

Dependencies Installation: Basic Version Needs: customtkinter, requests, tkcalendar - Advanced Version Also Needs: matplotlib, openpyxl

API Rate Limits: Free Tier Allows 1,500 Requests/Month - The App Uses Smart Caching To Minimize API Calls And Avoid Hitting Limits.

Data Persistence: Expenses Are Saved To expenses_data.json And Settings To user_settings.json - Deleting These Files Will Reset Everything.

Chart Display (Advanced): Analytics Charts Require Matplotlib Package - Install With: pip install matplotlib (Windows) Or pip3 install matplotlib (macOS/Linux).

Excel Export (Advanced): Excel Export Requires OpenPyXL Package - Install With: pip install openpyxl (Windows) Or pip3 install openpyxl (macOS/Linux).

Date Format: All Dates Are Stored In YYYY-MM-DD Format - The Calendar Widget Handles Formatting Automatically.

Custom Currency Codes: When Adding Custom Currencies, Use 3-Letter ISO Codes (e.g., TRY, MXN) For Proper API Recognition.

Budget Alerts: Budget Tracking Compares Your Total Spent In Summary Currency Against Your Set Limit - Change Summary Currency To Match Your Budget.

Multi-Threading: The Advanced Version Uses Background Threads For Currency Conversion And Charts - This Keeps The UI Responsive During Heavy Operations.

Reset Data Danger: The "RESET ALL DATA" Button In Settings Permanently Deletes All Expenses - This Action Cannot Be Undone.

Theme Persistence: Your Theme Choice (Dark/Light) Is Saved And Automatically Restored On Next Launch.


Made With Red Heart By B I D O

About

Python Expenses Tracker Evolution: From Basic Logger To Complete Financial Dashboard - Tabbed Interface (Ledger + Analytics), Multi-Currency Support, Advanced Search & Filters, Budget Alerts, Professional Excel Reports, And Persistent Settings - Complete Financial Management Solution 💰

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages