A professional-grade currency conversion application that has evolved from a simple 1st-year Python project into a modern, real-time currency converter with comprehensive global coverage.
pip install requests
python Compact_Modern_Converter.py
Currency Converter/
โโโ ๐ Compact_Modern_Converter.py # โญ Main application (recommended)
โโโ ๐ Currency Converter.py # ๐ Original 1st year project
โโโ ๐ currencyData.txt # ๐พ Offline fallback data
โโโ ๐ requirements.txt # ๐ฆ Dependencies
โโโ ๐ README.md # ๐ Documentation
- 157 live currencies from every major economy
- Real-time exchange rates updated every 30 minutes
- Comprehensive regional support including:
- ๐บ๐ธ Major economies (USD, EUR, GBP, JPY, CNY)
- ๐ฆ๐ช Middle Eastern currencies (AED, SAR, QAR, KWD)
- ๐ฟ๐ฆ African currencies (ZAR, NGN, EGP, MAD)
- ๐ง๐ท Latin American currencies (BRL, ARS, MXN, COP)
- ๐ธ๐ช European currencies (SEK, NOK, DKK, PLN, CZK)
- ๐น๐ญ Asian currencies (THB, SGD, MYR, KRW, IDR)
- ๐ฅ Precious metals (Gold, Silver, Platinum, Palladium)
- โฟ Cryptocurrency (Bitcoin)
- Google-inspired design with clean, professional aesthetics
- Intuitive dropdown menus for easy currency selection
- Real-time conversion as you type
- Animated status indicators showing live rate updates
- Currency symbols for accurate display (โน, $, โฌ, ยฃ, ยฅ, etc.)
- Responsive design optimized for desktop use
- Bidirectional conversion (any currency โ any currency)
- One-click swap button for quick currency exchange
- Auto-refresh every 30 minutes for live rates
- Manual refresh for instant updates
- Offline fallback when internet is unavailable
- Input validation with helpful error messages
- Thread-safe API calls for non-blocking operation
- Comprehensive error handling with graceful recovery
- Smart caching for improved performance
- Network failure resilience with offline mode
- Memory-efficient currency data management
Version | Interface | Currencies | Features | Status |
---|---|---|---|---|
Original | Console | ~12 (INR-based) | Basic conversion | ๐ Historical |
Modern | GUI | 157+ (Global) | Real-time, Bi-directional | โญ Current |
- โ Before: Text-based input/output
- โ After: Modern graphical interface with visual feedback
- โ Before: ~12 currencies, INR-centric
- โ After: 157+ currencies, any-to-any conversion
- โ Before: Fixed rates from text file
- โ After: Live API integration with auto-refresh
- โ Before: No error handling, basic validation
- โ After: Comprehensive error handling, input validation, offline fallback
# Live rate fetching from exchangerate-api.com
โ
157+ currencies automatically detected
โ
Real-time rate conversion
โ
Smart error handling and recovery
โ
Offline fallback capability
# Professional interface elements
โ
Animated status indicators
โ
Currency dropdown menus with search
โ
Real-time conversion display
โ
Responsive layout design
โ
Professional color scheme
# Comprehensive currency support
โ
Major world currencies (USD, EUR, GBP, etc.)
โ
Regional currencies (AED, SAR, ZAR, etc.)
โ
Precious metals (Gold, Silver, Platinum)
โ
Cryptocurrency (Bitcoin)
โ
Proper currency symbols and formatting
- Enter amount (e.g., 1000)
- Select source currency (e.g., Indian Rupee)
- Select target currency (e.g., US Dollar)
- View instant conversion result
- Swap currencies: Click the ๐ button
- Refresh rates: Click "๐ REFRESH" for latest rates
- Real-time typing: Conversion updates as you type
- Status monitoring: Check live rate status in header
git clone https://github.com/TM-Mehrab-Hasan/modern-currency-converter-using-python.git
cd "modern-currency-converter-using-python"
pip install requests
python Compact_Modern_Converter.py
python -m venv currency_env
currency_env\Scripts\activate
pip install requests
python Compact_Modern_Converter.py
- ๐บ๐ธ USD - US Dollar ($)
- ๐ช๐บ EUR - Euro (โฌ)
- ๐ฌ๐ง GBP - British Pound (ยฃ)
- ๐ฏ๐ต JPY - Japanese Yen (ยฅ)
- ๐จ๐ณ CNY - Chinese Yuan (ยฅ)
- ๐ฎ๐ณ INR - Indian Rupee (โน)
- ๐ฆ๐ช AED - UAE Dirham (ุฏ.ุฅ)
- ๐ธ๐ฆ SAR - Saudi Riyal (๏ทผ)
- ๐ฟ๐ฆ ZAR - South African Rand (R)
- ๐ง๐ท BRL - Brazilian Real (R$)
- ๐ฅ XAU - Gold (troy ounce)
- ๐ฅ XAG - Silver (troy ounce)
- โฟ BTC - Bitcoin
- ๐ XPD - Palladium
This project demonstrates evolution from basic to advanced programming:
- Data Structures: From simple dictionaries to complex currency mapping
- API Integration: REST API calls with error handling
- GUI Development: Professional interface design with Tkinter
- Threading: Non-blocking operations for better UX
- Error Handling: Comprehensive exception management
- Real-time Processing: Live data integration and display
- Academic Project: Basic currency conversion with file I/O
- Professional Application: Real-time global currency converter with modern UI
- API Integration: Live data fetching and processing
- GUI Development: Modern interface design principles
- Error Handling: Robust application architecture
- User Experience: Intuitive and responsive design
- Global Awareness: International currency support
Feel free to fork this project and enhance it further! Some ideas:
- Add currency trend charts
- Implement historical rate data
- Add more visual animations
- Support for cryptocurrency exchanges
- Mobile-responsive design
This project is open source and available under the MIT License.
If you want a standalone Windows executable (.exe) so users can run the app without installing Python, use PyInstaller to bundle the app.
- Install the build tool (one-time on your build machine):
pip install -r build-requirements.txt
- Build a single-file, windowed executable (run from project root):
pyinstaller --onefile --noconsole --add-data "currencyData.txt;." --name "ModernCurrencyConverter" Compact_Modern_Converter.py
- On Windows the
--add-data
separator is;
(source;dest). On macOS/Linux use:
. - The generated executable will be in
dist/ModernCurrencyConverter.exe
.
- Quick distribution checklist
- Test the EXE on a clean Windows machine (no Python installed).
- If the app fails to start on another machine, ensure the Visual C++ Redistributable (matching your Python build) is installed.
- If you need an installer (setup wizard), I can provide an Inno Setup script to bundle the EXE, README and license.
- Troubleshooting & Notes
- PyInstaller may produce harmless DLL warnings during build; check the
build/ModernCurrencyConverter/warn-ModernCurrencyConverter.txt
file if the EXE doesn't run. - If you want to reduce size, consider UPX (optional) or exclude unused packages.
- For cross-platform builds, build on each target OS (Windows EXE from Windows, macOS app from macOS).
Runtime requirements (for running from source):
requests>=2.25.1
Build-time requirements (for creating the standalone executable):
pyinstaller==6.15.0