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.
About • Tech Stack • Gallery • Evolution • How To Run • Warnings
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.
• 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.
| Basic Version | Advanced Version |
|---|---|
|
Planning (Logic) |
Planning (Logic) |
|
Execution (Main Result) |
Execution (Main Result) |
|
UI Design |
UI Design |
Watch The Application In Action: Real-Time Currency Conversion, Analytics Dashboard, And Export Features Demonstration.
Click To Watch Video ▷
| 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 |
• 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.
git clone https://github.com/hexbido/Expenses-Tracker-App.git
cd Expenses-Tracker-App# 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 Version1. 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"
# For Windows:
cd Basic-Version
python Expenses_Tracker.py
# For macOS/Linux:
cd Basic-Version
python3 Expenses_Tracker.py# For Windows:
cd Advanced-Version
python Expenses_Tracker_AI.py
# For macOS/Linux:
cd Advanced-Version
python3 Expenses_Tracker_AI.py
• 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.
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
By B I D O