Skip to content

Repository files navigation

AMALTools - A Comprehensive Web-Based Toolkit

Python Django License

Overview

AMALTools is a comprehensive web-based toolkit that started as a personal pet project and later evolved into an Extended Project Qualification (EPQ). This Django-powered web application provides a wide range of utility tools, from mathematical calculators to file converters, all accessible through an intuitive web interface.

Project Statistics

  • Development Time: 200+ hours of research, learning, development, and deployment
  • Total Visits: 3,000+ visits
  • Unique Users: 1,100+
  • Peak Daily Users: 97 users in a single day
  • Most Popular Tool: YouTube to MP3/MP4 converter

Project Philosophy

AMALTools was born from the idea of creating web-based GUIs for popular Python libraries, making powerful computational tools accessible to everyone through a simple browser interface. The project demonstrates how complex Python functionality can be wrapped in user-friendly web interfaces.

Features & Tools

🧮 Mathematical Tools (/tools/maths/)

  • Calculator: Advanced mathematical expression evaluator
  • Derivative Calculator: Symbolic differentiation using SymPy
  • Integral Calculator: Both definite and indefinite integration
  • Quadratic Formula Solver: Solves quadratic equations with detailed steps
  • Simultaneous Equations Solver: Solves systems of linear equations
  • SUVAT Calculator: Physics kinematics calculator
  • Fibonacci Sequence Generator: Generates Fibonacci numbers up to nth term
  • Heron's Formula Calculator: Triangle area calculator using side lengths
  • Line Equation Calculator: Finds equation of line between two points
  • Midpoint Calculator: Calculates midpoint between two coordinates

🔄 Number & Text Converters (/tools/converters/)

  • Binary ↔ Decimal Converter: Convert between binary and decimal
  • Binary → Hexadecimal Converter: Convert binary to hexadecimal
  • Binary ↔ Text Converter: Encode/decode text to/from binary
  • Number to Text Converter: Convert integers to written words
  • Zeckendorf Representation: Express integers as sum of non-consecutive Fibonacci numbers

📁 File Converters (/tools/fileconverters/)

  • MP4 to MP3 Converter: Extract audio from video files using FFmpeg
  • Background Remover: Remove backgrounds from images using AI
  • PDF to Image Converter: Convert PDF pages to images
  • CSV ↔ TSV Converter: Convert between comma and tab-separated values
  • Video Extractor: Extract video files from HTML pages

🛠️ Other Tools (/tools/othertools/)

  • YouTube to MP3/MP4 Converter: Download YouTube videos using yt-dlp ⭐ Most Popular
  • QR Code Generator: Convert text to QR codes
  • OCR Tool: Extract text from images using Tesseract
  • Word Counter: Count words and characters in text
  • Data Plotter: Create graphs and charts from data
  • PDF Merger: Combine multiple PDF files
  • PDF Rotator: Rotate PDF pages
  • Image Paste Tool: Handle clipboard image operations

💻 Programming Tools (/tools/programming/)

  • HTML Viewer: Preview HTML code
  • CSS to Inline Converter: Convert CSS styles to inline styles
  • Image to Base64 Converter: Convert images to Base64 encoding

🔧 Miscellaneous Tools

  • Text Formatter: Format and clean text files
  • Lorem Ipsum Generator: Generate placeholder text

Technology Stack

Backend

  • Framework: Django 5.0
  • Database: SQLite3
  • Python: 3.10+

Key Libraries & Dependencies

  • SymPy: Symbolic mathematics (derivatives, integrals)
  • NumPy & Matplotlib: Numerical computing and plotting
  • PIL (Pillow): Image processing
  • yt-dlp: YouTube video downloading
  • MoviePy: Video processing
  • PyMuPDF: PDF manipulation
  • Tesseract (pytesseract): OCR functionality
  • QRCode: QR code generation
  • BeautifulSoup4: Web scraping
  • Selenium: Web automation
  • pandas: Data manipulation
  • rembg: AI-powered background removal

Frontend

  • Bootstrap 5.3.2: Responsive UI framework
  • JavaScript: Interactive functionality
  • HTML5 & CSS3: Modern web standards

Architecture

The application follows Django's MVT (Model-View-Template) pattern with a modular app structure:

AMALTools/
├── converters/          # Number and text conversion tools
├── maths/              # Mathematical calculators and solvers
├── fileconverters/     # File format conversion tools
├── othertools/         # Miscellaneous utilities
├── programming/        # Developer tools
├── miscellaneous/      # Core app with homepage and utilities
├── users/              # User management (authentication, profiles)
├── templates/          # HTML templates
├── static_files/       # CSS, JS, and static assets
└── useful_funcs/       # Shared utility functions

Each app contains:

  • functions/: Core Python logic for each tool
  • views.py: Django views handling HTTP requests
  • urls.py: URL routing
  • templates/: App-specific HTML templates

Installation & Setup

Prerequisites

  • Python 3.10 or higher
  • Git (optional, for cloning)

Quick Start

  1. Clone or Download the Repository

    git clone <repository-url>
    cd amaltools
  2. Create Virtual Environment (Recommended)

    # Windows
    py -m venv .venv
    .venv\Scripts\Activate.ps1
    
    # Linux/MacOS
    python -m venv .venv
    source .venv/bin/activate
  3. Install Dependencies

    pip install -r requirements.txt
  4. Load Database Data

    # Windows
    py manage.py loaddata db_data.json
    
    # Linux/MacOS
    python manage.py loaddata db_data.json
  5. Run Development Server

    # Windows
    py manage.py runserver
    
    # Linux/MacOS
    python manage.py runserver
  6. Access the Application Open your browser and navigate to http://127.0.0.1:8000

Setup Video Tutorial

📺 YouTube Setup Guide

Development Journey

This project represents a significant learning journey in web development, showcasing:

  • Full-Stack Development: From backend logic to frontend interfaces
  • Library Integration: Wrapping complex Python libraries in web interfaces
  • User Experience: Creating intuitive tools for diverse use cases
  • Performance Optimization: Handling file uploads, processing, and downloads
  • Deployment: Taking a project from development to production

The development process involved extensive research into various Python libraries, learning Django framework intricacies, and solving real-world problems through web-based solutions.

Contributing

This project serves as an educational resource and demonstration of web development capabilities. While originally developed as a personal EPQ project, the codebase is available for learning and reference purposes.

Future Enhancements

Potential areas for expansion include:

  • API endpoints for programmatic access
  • Enhanced file processing capabilities
  • Additional mathematical tools
  • Improved user interface and experience
  • Performance optimizations
  • Docker containerization

License

This project is open source and available for educational purposes.


Note: This project was developed as an Extended Project Qualification (EPQ) and represents over 200 hours of dedicated development work. It demonstrates the practical application of Python libraries in web development and showcases the potential of creating accessible tools through web interfaces.

About

The latest version of AMALTools.com. What began as a small EPQ project grew to much more, reaching over 900 unique visitors and achieving 3000+ visits.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages