A Professional Exchange Rate Solution: From Basic Console Currency Conversion To Advanced GUI Application, Real-Time API Integration, Historical Data Analysis, And Conversion History Tracking.
About • Tech Stack • Gallery • Evolution • How To Run • Warnings
This Repository Represents The Fifth Major Milestone In My Front-End Diploma (Programming Fundamentals Track).
It's More Than Just A Converter, It's A Documentation Of My Journey In API Integration & Financial Applications - The Project Chronicles The Evolution From Simple Console-Based Currency Conversion Using Requests Module To A Sophisticated Desktop Application Powered By Tkinter GUI Framework With Real-Time Data Synchronization.
The Final Version Is An Intelligent Financial Tool That Provides Live Exchange Rates From ExchangeRate-API, Features A Modern Dual-Tab Interface For Currency Conversion And Historical Inflation Analysis, Implements Persistent Session Management With CSV History Tracking, And Includes Smart Features Like Auto-Sync, Currency Swap, And Multi-Threaded Data Fetching For Seamless User Experience.
• Python (3.10+): The Core Language Driving All Application Logic, API Communication, And Data Processing Operations.
• Tkinter GUI Framework: Powers The Complete Visual Interface With Custom Styling, Tab Navigation, And Professional Dark Theme Design.
• Requests Module: Handles All HTTP Communication With ExchangeRate-API For Fetching Live Rates And Historical Exchange Data.
• ExchangeRate-API: Provides Real-Time Currency Conversion Rates For 160+ Currencies With Historical Data Access And High Reliability.
• CSV Module: Manages Conversion History Storage And Retrieval, Ensuring Data Persistence Across Multiple Sessions.
• Threading Module: Implements Background Data Fetching To Prevent UI Freezing During API Calls And Network Operations.
• DateTime & DateUtil: Handles Date Calculations For Historical Analysis, Computing Time Differences, And Inflation Rate Comparisons.
• Miro: Used For Planning And Designing The Application Architecture And User Flow Before Writing Any Code.
| Basic Version | Advanced Version |
|---|---|
Planning (Logic)
|
Planning (Logic)
|
Execution (Main Result)
|
Execution (Main Result)
|
Watch The Application In Action: Live Currency Conversion, Historical Analysis, And Real-Time Data Synchronization.
Click To Watch Video ▷
| Feature | Basic Version | Advanced Version (Pro) |
|---|---|---|
| Interface Type | Console/Terminal Based | Professional GUI (Tkinter) |
| Data Source | Manual API Calls Per Request | Background Sync (Threading) |
| Conversion Features | Single Currency Pair | 160+ Currencies With Live Rates |
| Historical Data | Not Available | Inflation Analysis & Date Comparison |
| Session Management | No Persistence | Auto-Save Last Currencies |
| History Tracking | Session Only | CSV Storage (Last 5 Operations) |
• Real-Time Currency Conversion: Instantly Convert Between 160+ Global Currencies With Live Exchange Rates Updated Via Background API Synchronization.
• Dual-Tab Interface: Navigate Between Currency Converter For Real-Time Conversions And Inflation Analyzer For Historical Rate Comparisons.
• Historical Data Analysis: Compare Exchange Rates Between Any Past Date And Today, Calculating Inflation Percentage And Time Duration Automatically.
• Smart Background Sync: Uses Multi-Threading To Fetch API Data Without Freezing The UI, Providing A Seamless And Responsive User Experience.
• Persistent Session Management: Automatically Saves Your Last Used Currency Pair To last_session.txt, Restoring Your Preferences On Next Launch.
• Conversion History Tracking: Logs Your Last 5 Operations To CSV File With Timestamps, Accessible Via The Built-In History Popup Window.
• Professional Dark Theme: Features A Modern UI Design With Custom Color Scheme, Smooth Animations, And Intuitive Currency Swap Button.
• Auto-Calculation: Results Update Instantly As You Type Or Select Different Currencies, With Real-Time Exchange Rate Display.
git clone https://github.com/hexbido/Currency-Converter-App.git
cd Currency-Converter-App# If You Are Using 'pip3' Place The Number "3" After pip.
pip install requests python-dateutil1. Visit: https://www.exchangerate-api.com/
2. Click "Get Free Key"
3. Enter Your Email
4. Copy Your API Key
5. Paste It In The Configuration Section Of The Code (Line ~13)
cd Basic-Version
python Currency_Converter.pycd Advanced-Version
python Currency_Converter_AI.py
• Currency Conversion: Enter The Amount, Select From/To Currencies, And See The Result Update Instantly With Live Exchange Rates.
• Swap Currencies: Click The ⇄ Button To Quickly Swap The From And To Currency Fields.
• Historical Analysis: Switch To The 📅 Inflation Tab, Select A Past Date, And Click "Analyze History" To Compare Rates.
• View History: Click The 📜 Icon In The Top-Right Corner To View Your Last 5 Conversion Operations.
• Session Persistence: Your Last Selected Currency Pair Is Automatically Saved And Restored On Next Launch.
Please Review The Following Notes To Ensure Smooth Operation And Avoid Common Issues:
• API Key Required: The Application Requires A Valid ExchangeRate-API Key - Get Yours For Free At https://www.exchangerate-api.com/ (No Credit Card Needed).
• Internet Connection: A Stable Internet Connection Is Required For Real-Time Rate Fetching - The App Will Show "Offline Mode
• API Rate Limits: Free Tier Allows 1,500 Requests/Month - The App Caches Data To Minimize API Calls And Avoid Hitting Limits.
• Historical Data Limitations: Historical Inflation Analysis Requires A Paid API Plan - Free Tier Shows "🔒 Pro Feature" Message For This Functionality.
• Tkinter Installation: Tkinter Comes Pre-Installed With Python On Most Systems. On Linux, Install With: sudo apt-get install python3-tk
• File Permissions: The Application Creates last_session.txt And history.csv In Its Directory - Ensure Write Permissions Are Available.
• Currency Code Format: Use Standard 3-Letter ISO Codes (USD, EUR, GBP, EGP, JPY) - Invalid Codes Will Result In API Errors.
• Date Validation: When Using Historical Analysis, Ensure The Selected Date Is Not In The Future And Is After The Year 2000 For Accurate Data.
Made With
By B I D O











