Bulk Image Converter Pro

Version 2.0.2 — Comprehensive Installation & User Guide

Thank you for purchasing Bulk Image Converter Pro! This document covers everything you need to install, configure, and customise the application. For technical support, contact us via your Envato profile.

Table of Contents

1. Overview & Features

Bulk Image Converter Pro is a premium, privacy-first image conversion platform. Users can convert, resize, and process images entirely client-side or through a powerful server-side engine.

Key Features

2. Server Requirements

ComponentMinimumRecommended
PHP8.08.2+
MySQL / MariaDB5.7 / 10.38.0 / 10.11
Web ServerApache 2.4Apache 2.4 + nginx reverse proxy
PHP ExtensionsGD, PDO MySQL, ZipArchiveGD + Imagick, PDO MySQL, ZipArchive, mbstring, cURL
Disk Space100 MB500 MB
Memory (PHP)128 MB256 MB
HTTPSNot requiredStrongly recommended
Note: Imagick (ImageMagick) provides better quality conversions than GD. The app auto-detects and prefers Imagick when available.

3. Installation

3.1 Quick Install (Shared Hosting)

  1. Upload files — Upload the entire project to your web root (e.g., public_html).
  2. Create database — Create a MySQL database and user in your hosting control panel.
  3. Import schema — Import database.sql into your database via phpMyAdmin or CLI:
    mysql -u your_user -p your_database < database.sql
  4. Set permissions — Ensure these directories are writable:
    chmod 755 temp/ logs/ uploads/
  5. Configure environment — Copy .env.example to .env and fill in your database credentials.
  6. Visit your site — Open your domain in a browser. The converter should load immediately.
Important: Never commit .env to version control. It contains sensitive database and SMTP credentials.

3.2 Manual Configuration (No .env)

If your hosting doesn't support .env files, edit api/config.php directly:

define('DB_HOST', 'localhost');
define('DB_NAME', 'your_database_name');
define('DB_USER', 'your_database_user');
define('DB_PASS', 'your_database_password');

3.3 Using Composer (Optional)

The app uses Composer for PHPMailer and Parsedown. Run this from the project root:

composer install --no-dev

Composer is optional — the app falls back gracefully if vendor/ is not present, though email sending and blog features will be limited.

4. Configuration

4.1 Environment Variables

VariableDefaultDescription
APP_ENVproductionproduction, development, maintenance
DB_HOSTlocalhostDatabase server hostname
DB_NAMEimage_convert_proDatabase name
DB_USERrootDatabase username
DB_PASSrootDatabase password
GUEST_CREDITS_SECRETfallback_...Random string for guest credit signing
TRUST_PROXY_HEADERS0Set to 1 behind Cloudflare/load balancer
TRUSTED_PROXY_IPSComma-separated IPs of trusted proxies

4.2 Site Settings (Admin Panel)

After logging in as admin, visit Admin → General Settings to configure:

4.3 Apache Rewrite Rules

The included .htaccess enables clean URLs for format pairs (e.g., /png-to-webp), blog posts, and the sitemap. Ensure mod_rewrite is enabled on your server.

5. Database Setup

5.1 Schema Overview

TablePurpose
usersRegistered users, passwords, credit balances, subscription status
adminsAdmin login credentials
packagesCredit packages (Starter, Pro, Enterprise) with pricing
payment_methodsAvailable payment options (Bank Transfer, Crypto, etc.)
transactionsPayment receipt tracking (pending/approved/declined)
support_ticketsUser-submitted support requests
ticket_repliesAdmin replies to support tickets
site_settingsKey-value store for all configurable settings
activity_logsAudit trail for user and admin actions
visitor_activityAnonymized visitor tracking for analytics
page_viewsPage view statistics
advertisementsBuilt-in promotional ads and cross-promotions
support_resourcesHelp center articles and links

5.2 Seed Data

The database.sql includes seed data with sample packages, payment methods, ads, and a default admin account (admin / admin123). Change this password immediately after first login.

6. Admin Access

6.1 First Login

  1. Navigate to /admin/login.php
  2. Login with default credentials (if not changed):
    Username: admin
    Password: admin123
  3. Change your password from the Admin Users page.
Security: Always change the default admin password. For production, use the CLI tool instead:
php tools/create_admin.php --username=admin --password="your-strong-password"

6.2 Admin Panel Sections

SectionDescription
DashboardAnalytics overview: signups, payments, conversions, errors, recent activity
UsersManage registered users, view credits, approve/decline, search
PaymentsReview payment receipts, approve or decline with reason
FinanceRevenue analytics, transaction history, receipt viewer
PackagesCreate/edit credit packages with pricing and limits
SettingsSite name, email SMTP, credit costs, favicon, security code
AdsManage in-app advertisements and cross-promotions
SupportView, reply, and close user support tickets
NotificationsSystem activity log with read/unread tracking
PerformanceConversion success rates, error tracking

7. Email Setup

7.1 Configure SMTP

  1. Go to Admin → General Settings
  2. Fill in SMTP Host, Port, Username, Password, and Encryption
  3. Set the Support Email address (used as the From address)
  4. Click Save

7.2 Email Templates

HTML email templates are located in api/templates/email/. You can customise these freely:

Templates use {{variable}} placeholders which are replaced dynamically.

Tip: If SMTP is not configured, the app logs email errors and continues operating normally. All core features work without email.

8. Credit System & Payments

8.1 How Credits Work

Each file conversion costs 1 credit. Advanced features (PDF, EXIF strip) cost additional credits as configured in Admin Settings. Users start with a daily guest limit and can purchase packages to increase their balance.

8.2 Subscription Plans

The app supports monthly subscription cycles. When a user's plan expires, their credits revert to the default package. You can configure:

8.3 User Flow

  1. User selects a package from the Pricing page
  2. Choose a payment method and upload a receipt
  3. Admin reviews and approves/declines the payment in Payments
  4. Credits are added to the user's account automatically on approval

9. Free Tools Suite

Six free tools are included to drive engagement and SEO traffic:

ToolURLDescription
EXIF Viewer/tools/exif-viewer.phpUpload an image to view all EXIF, GPS, IPTC, and XMP metadata
Image Inspector/tools/image-inspector.phpDetailed image analysis: dimensions, color depth, compression info
Color Palette/tools/color-palette.phpExtract dominant colors from any image with hex codes
Size Comparator/tools/size-comparator.phpCompare file sizes across formats and quality settings
Image Cropper/tools/image-cropper.phpClient-side image cropping with aspect ratio presets (1:1, 16:9, etc.)
Google Operator Search/tools/google-operator-search.phpBuild advanced Google search queries with operators and presets

All tools are rate-limited for guest users (configurable in Admin Settings). Signed-in users get unlimited access.

10. SEO & Sitemap

10.1 Built-in SEO Features

10.2 Adding Blog Posts

Create a markdown file in blog/posts/ with this naming convention:

YYYY-MM-DD-your-post-slug.md

Blog posts automatically appear on the blog index and are added to the sitemap.

11. Customisation

11.1 Styling

CSS is organised into three files:

11.2 JavaScript

11.3 Layouts & Components

11.4 Adding Format Pairs

Edit config/format-pairs.php to add new conversion pairs. Each entry automatically creates a landing page and sitemap entry.

11.5 White-Labelling

To rebrand the application:

  1. Update APP_NAME and APP_AUTHOR in api/config.php
  2. Change site_name in Admin Settings
  3. Replace favicons in assets/icons/
  4. Update email templates in api/templates/email/
  5. Update the footer copyright text in components/footer.php

12. Troubleshooting

IssueSolution
Uploads failIncrease upload_max_filesize and post_max_size in PHP. The .htaccess sets 100M by default.
ZIP download failsEnsure the ZipArchive PHP extension is installed and enabled.
Conversions failEnsure GD or Imagick is installed. Check PHP error logs for details.
Blank page / 500 errorEnable APP_ENV=development to see PHP errors. Check that all file paths are correct.
404 on format pagesEnsure mod_rewrite is enabled and .htaccess is present in the web root.
Database connection errorVerify DB_HOST, DB_NAME, DB_USER, DB_PASS in your .env file. Check that the MySQL server is running.
Emails not sendingVerify SMTP settings in Admin → Settings. Check that PHPMailer is installed (composer install).
"Daily limit reached"Increase tool_daily_limit_guest in Admin Settings or have the user create an account.
Admin security screen loopsDisable admin security in Admin Settings, or set admin_security_enabled to 0 in the database.
Images not showing after deployFlush any CDN or server cache. Verify that temp/ and uploads/ directories are writable.
500 on vendor/autoload.phpRun composer install --no-dev or create an empty vendor/ directory if not using Composer.
Debug Mode: Set APP_ENV=development in your .env to display PHP errors and enable verbose logging. Never use this in production.

13. Updating

  1. Backup your database and custom files (.env, custom templates, uploaded files).
  2. Replace files — Upload the new version, overwriting existing files (keep your .env safe).
  3. Run migrations — Check the changelog for any database schema changes. Apply them manually if needed.
  4. Clear caches — Clear any PHP opcache, CDN cache, or browser cache.
  5. Verify — Test conversion, login, admin panel, and email sending.
Always make a full backup before updating! This includes both the database and all application files.

14. Support

Support is provided exclusively through Envato's item support policy:

Before contacting support:

  1. Check this documentation thoroughly
  2. Check the troubleshooting section above
  3. Check your server error logs
  4. Provide your APP_ENV, PHP version, and web server details
You're all set! Bulk Image Converter Pro is fully installed and ready to use. For feature updates and new tools, follow us on Envato.

Bulk Image Converter Pro v2.0.2 — Documentation © DemoHomeX