Skip to content

Convert any unit in the blink of an eye. Simple, fast, and accurate - all in one place.

License

Notifications You must be signed in to change notification settings

oheyek/MeasureKit

Repository files navigation

MeasureKit Logo MeasureKit

Python Version License Platform Docker Pulls Documentation Live Demo

A powerful web application for unit conversions with an intuitive interface.

✨ Features

  • Multi-Unit Conversions: Convert lengths, temperatures, and weights with precision.
  • Real-Time Calculations: Instant conversions as you type.
  • Web-Based Interface: Accessible from any device with a browser.
  • Accurate Results: High-precision calculations for all supported units.
  • Simple and Fast: Convert any unit in the blink of an eye.
  • Cross-Platform: Works seamlessly on Windows, macOS, and Linux.
  • Containerized: Available as a Docker image for easy deployment.
  • Comprehensive Testing: Thoroughly tested for reliability.

🛠️ Installation

Using Docker (Recommended)

  1. Pull the Docker image:
    docker pull oheyek/measure-kit
  2. Run the container:
    docker run -p 5000:5000 oheyek/measure-kit
  3. Open your browser and go to http://localhost:5000

Running from Source

# Clone the repository
git clone https://github.com/oheyek/MeasureKit.git
cd MeasureKit

# Install dependencies
pip install -r requirements.txt

# Run the application
python app.py

🎯 Usage

  1. Open the application in your browser (locally or online at https://measure-kit-latest.onrender.com/).
  2. Select the type of conversion: Length, Temperature, or Weight.
  3. Enter the value and select the units.
  4. View the converted result instantly.

📋 Supported Conversions

Category Units Available
Length Meters, Feet, Inches, Centimeters, etc.
Temperature Celsius, Fahrenheit, Kelvin
Weight Kilograms, Pounds, Ounces, Grams, etc.

🔧 Technical Details

  • Language: Python 3.14+
  • Web Framework: Flask 3.1.2+
  • WSGI Server: Gunicorn 23.0.0+
  • Testing: pytest 9.0.2+
  • Deployment: Docker, Render

Key Dependencies

flask>=3.1.2
gunicorn>=23.0.0
pytest>=9.0.2

🏗️ Building from Source

Docker Build

# Build the Docker image
docker build -t measure-kit .

# Run the container
docker run -p 5000:5000 measure-kit

🗂️ Project Structure

MeasureKit/
├── app.py                     # Flask application entry point
├── src/
│   ├── __init__.py
│   ├── base.py                # Base conversion logic
│   ├── convertion_handler.py  # Conversion handler
│   ├── length.py              # Length conversions
│   ├── temperatures.py        # Temperature conversions
│   ├── weight.py              # Weight conversions
│   └── tests/
│       ├── __init__.py
│       ├── test_lengths.py    # Length tests
│       ├── test_temperatures.py # Temperature tests
│       └── test_weights.py    # Weight tests
├── static/
│   ├── css/
│   │   └── style.css          # Stylesheets
│   └── img/
│       ├── icon-doxygen.png
│       ├── icon.ico
│       └── icon.png           # Icons
├── templates/
│   ├── base.html              # Base template
│   ├── index.html             # Home page
│   ├── length.html            # Length converter
│   ├── temperature.html       # Temperature converter
│   └── weight.html            # Weight converter
├── pyproject.toml             # Project configuration
├── requirements.txt           # Python dependencies
├── Dockerfile                 # Docker configuration
├── LICENSE                    # MIT License
└── README.md                  # This file

🧪 Testing

The project includes comprehensive unit tests for all conversion functions.

Running Tests

# Install test dependencies
pip install pytest

# Run all tests
pytest

# Run specific test file
pytest tests/test_lengths.py

# Run with verbose output
pytest -v

Test Coverage

  • Length Tests: Various unit conversions and edge cases
  • Temperature Tests: Celsius, Fahrenheit, Kelvin conversions
  • Weight Tests: Kilograms, pounds, ounces, etc.

🤝 Contributions

Contributions are welcome! Here's how you can help:

  1. Fork the repository
  2. Create a new feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

This project is open-source and available under the MIT License.


Happy Converting! 🎉

Author

Made with ❤️ by ohey
Buy Me A Coffee


If you find this project useful, consider buying me a coffee! ☕

About

Convert any unit in the blink of an eye. Simple, fast, and accurate - all in one place.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •