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.
- 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
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.
- 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
- 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
- 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
- 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
- HTML Viewer: Preview HTML code
- CSS to Inline Converter: Convert CSS styles to inline styles
- Image to Base64 Converter: Convert images to Base64 encoding
- Text Formatter: Format and clean text files
- Lorem Ipsum Generator: Generate placeholder text
- Framework: Django 5.0
- Database: SQLite3
- Python: 3.10+
- 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
- Bootstrap 5.3.2: Responsive UI framework
- JavaScript: Interactive functionality
- HTML5 & CSS3: Modern web standards
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 toolviews.py: Django views handling HTTP requestsurls.py: URL routingtemplates/: App-specific HTML templates
- Python 3.10 or higher
- Git (optional, for cloning)
-
Clone or Download the Repository
git clone <repository-url> cd amaltools
-
Create Virtual Environment (Recommended)
# Windows py -m venv .venv .venv\Scripts\Activate.ps1 # Linux/MacOS python -m venv .venv source .venv/bin/activate
-
Install Dependencies
pip install -r requirements.txt
-
Load Database Data
# Windows py manage.py loaddata db_data.json # Linux/MacOS python manage.py loaddata db_data.json
-
Run Development Server
# Windows py manage.py runserver # Linux/MacOS python manage.py runserver
-
Access the Application Open your browser and navigate to
http://127.0.0.1:8000
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.
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.
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
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.