Skip to content

Real-Time Currency Converter With GUI Built In Python & Tkinter - Convert Between 160+ Currencies, Analyze Historical Inflation Data, Track Conversion History (CSV), Auto-Save Sessions, And Background API Sync - Free ExchangeRate-API Integration Included 💱

Notifications You must be signed in to change notification settings

hexbido/Currency-Converter-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python Currency Converter App Currency Exchange

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.

AboutTech StackGalleryEvolutionHow To RunWarnings


separator

About The Project Memo

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.


separator

Tech Stack & Tools Tools

Python Tkinter API Requests VS Code Miro

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.


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


View More Screenshots (Click Here) Search

Basic Version - Extra Shots

Basic Shot 2 Basic Shot 3

Basic Shot 4





Advanced Version - Extra Shots

Advanced Shot 2 Advanced Shot 3

Advanced Shot 4 Advanced Shot 5

Advanced Shot 6

Live Demo Video

Watch The Application In Action: Live Currency Conversion, Historical Analysis, And Real-Time Data Synchronization.

Watch Video
Click To Watch Video ▷

separator

Features & Evolution Rocket

The Transition From The Basic Console Converter To The Advanced GUI Application Highlights A Significant Leap In User Experience And Professional Functionality.

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)

Key Features In Advanced Version Star

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.


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/Currency-Converter-App.git
cd Currency-Converter-App

2️⃣ Install Required Dependencies

Install The Necessary Python Packages Using Pip:
# If You Are Using 'pip3' Place The Number "3" After pip.
pip install requests python-dateutil

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. Enter Your Email
4. Copy Your API Key
5. Paste It In The Configuration Section Of The Code (Line ~13)

4️⃣ Run The Basic Version

Navigate To The Basic Version Folder And Execute The Console Converter:
cd Basic-Version
python Currency_Converter.py

5️⃣ Run The Advanced Version (GUI)

To Launch The Full Application With GUI And All Features:
cd Advanced-Version
python Currency_Converter_AI.py

6️⃣ Using The Application

Follow These Simple Steps To Convert Currencies And Analyze Historical Data:

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.


separator

Warnings & Troubleshooting Warning

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 ⚠️" If Connection Fails.

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 Red Heart By B I D O

About

Real-Time Currency Converter With GUI Built In Python & Tkinter - Convert Between 160+ Currencies, Analyze Historical Inflation Data, Track Conversion History (CSV), Auto-Save Sessions, And Background API Sync - Free ExchangeRate-API Integration Included 💱

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages