A modern, feature-rich unit converter application built with Python and Tkinter, designed for precise and efficient unit conversions across multiple categories.
- Length: Meters, Kilometers, Miles, Feet, Inches, etc.
- Weight: Kilograms, Pounds, Ounces, Grams, etc.
- Temperature: Celsius, Fahrenheit, Kelvin
- Area: Square Meters, Square Feet, Acres, Hectares, etc.
- Volume: Liters, Gallons, Cubic Meters, etc.
- Speed: Kilometers per hour, Miles per hour, Meters per second
- Time: Seconds, Minutes, Hours, Days, etc.
- Pressure: Pascal, Bar, PSI, Atmosphere, etc.
- Energy: Joules, Calories, Kilowatt-hours, etc.
- 🎨 Modern and intuitive design
- 📱 Responsive layout
- 🔄 Quick unit swapping
- ⚡ Real-time conversion
- 🎯 High precision calculations
- Python 3.8 or higher
- pip (Python package installer)
- Git (for cloning the repository)
git clone https://github.com/sabbirahmad12/unit-converter-application.git
cd unit-converter-application
pip install -r requirements.txt
python main.py
- Select the conversion category
- Enter the value to convert
- Choose source and target units
- Click "Convert" or press Enter
- View the result
- Use the swap button (↔) to quickly switch between units
- Copy results to clipboard with Ctrl+C
- Toggle between light and dark themes
- Adjust precision in settings
unit-converter-application/
│
├── main.py # Application entry point
├── config.py # Configuration and constants
├── theme_manager.py # Theme management
├── converter_engine/ # Core conversion logic
│ ├── __init__.py
│ ├── length_converter.py
│ ├── weight_converter.py
│ └── ...
└── ui/ # User interface components
├── home_page.py
├── area_page.py
└── ...
- Built with Python 3.8+
- Uses Tkinter for GUI
- Implements object-oriented design patterns
- Follows PEP 8 style guidelines
- Modular and extensible architecture
- MVC (Model-View-Controller)
- Factory Pattern for converter creation
- Strategy Pattern for conversion algorithms
- Observer Pattern for theme changes
- Type hints for better code maintainability
- Comprehensive error handling
- Unit tests for core functionality
- Documentation for all public methods
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
- Follow PEP 8 style guide
- Write meaningful commit messages
- Add tests for new features
- Update documentation as needed
- Keep code modular and reusable
This project is licensed under the MIT License - see the LICENSE file for details.
- GitHub Issues: For bug reports and feature requests
- Telegram: Join our community
- Thanks to all contributors
- Inspired by various open-source projects
- Built with ❤️ for the Python community