Welcome to TradePro
A full-featured binary trading & investment platform built on CodeIgniter 4. Supports multiple asset classes, automated bots, KYC, wallet management, and a powerful admin panel — all in one installable package.
✦Features
⚡Requirements
Server
/publicRequired PHP Extensions
required extensions are mandatory. optional extensions enable additional functionality.
Composer Dependencies
| Package | Version | Purpose |
|---|---|---|
| codeigniter4/framework | ^4.0 | Core MVC framework |
| endroid/qr-code | ^6.0 | QR code generation for wallets |
| google/apiclient | ^2.12.1 | Google OAuth login |
| minishlink/web-push | ^9.0 | Web Push (VAPID) notifications |
| stichoza/google-translate-php | ^5.3 | Translation services |
Writable Directories
The following directories must be writable by the web server process:
🔧Installation
-
1
Upload & Configure the Document Root
Upload the project files to your server. Set the web server document root (or virtual host) to the
/publicfolder.Apache example (
VirtualHost):# /etc/apache2/sites-available/tradepro.conf <VirtualHost *:80> ServerName yourdomain.com DocumentRoot /var/www/html/tradepro/public <Directory /var/www/html/tradepro/public> AllowOverride All Require all granted </Directory> </VirtualHost>Nginx example:
server { listen 80; server_name yourdomain.com; root /var/www/html/tradepro/public; index index.php; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ \.php$ { fastcgi_pass unix:/run/php/php8.1-fpm.sock; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } } -
2
Install Composer Dependencies
From the project root directory, run:
composer install --no-dev --optimize-autoloaderℹ️ Usecomposer install(without--no-dev) if you plan to run tests. -
3
Set Up the Environment File
Copy the example environment file and open it for editing:
cp env .envEdit
.envand set at minimum:CI_ENVIRONMENT = production app.baseURL = 'https://yourdomain.com/' # Database database.default.hostname = localhost database.default.username = db_user database.default.password = db_pass database.default.database = db_name -
4
Set Directory Permissions
chmod -R 755 writable/ chmod -R 755 public/uploads/ -
5
Run the Web Installer
Navigate to
https://yourdomain.com/installin your browser. The wizard will guide you through four steps:Step What Happens Step 1 Requirements Automatic server check — PHP version, extensions, writable directories. Step 2 Email & Database Configure SMTP (host, port, TLS/SSL, credentials). Runs all 17 database migrations and seeds initial data (assets, strategies, strike rates, email templates, FAQs, reviews). Generates VAPID keys for push notifications. Step 3 Site Settings Set site name, description, branding colors, feature toggles (2FA, KYC, trading bot, transfers), financial limits, referral bonus, template selection, and optional Google OAuth credentials. Step 4 Admin Account Create the super admin account (email, username, password). On completion, install.status = installedis written to.envand you are redirected to/login.✅ Once installed, the/installroute is automatically disabled. To re-run the installer, remove or resetinstall.statusin.env.
⚙️Configuration
Email (SMTP)
Configured during installation. Can be updated in .env:
email.protocol = smtp
email.SMTPHost = smtp.yourmailprovider.com
email.SMTPPort = 587
email.SMTPCrypto = tls
email.SMTPUser = noreply@yourdomain.com
email.SMTPPass = yourpassword
Google OAuth (Optional)
google.clientId = your-client-id.apps.googleusercontent.com
google.clientSecret = your-client-secret
Session & Cache Prefixes
Auto-generated from the site name during installation to avoid conflicts on shared hosts:
session.cookieName = MySite_session
cache.prefix = MySite_
Feature Toggles
The following features can be enabled or disabled from the admin settings panel (Admin → Settings) after installation:
🔑Environment Variables
| Variable | Default | Description |
|---|---|---|
| CI_ENVIRONMENT | development |
Set to production on live servers |
| app.baseURL | — | Full URL including trailing slash |
| database.default.hostname | localhost |
Database host |
| database.default.username | — | Database user |
| database.default.password | — | Database password |
| database.default.database | — | Database name |
| install.status | — | Set to installed after setup completes |
| session.cookieName | auto-generated | Session cookie identifier |
| cache.prefix | auto-generated | Cache key prefix |
| vapid.publickey | auto-generated | Web Push public key |
| vapid.privatekey | auto-generated | Web Push private key |
| email.protocol | smtp |
Mail protocol: smtp, mail, sendmail |
| email.SMTPHost | — | SMTP server hostname |
| email.SMTPPort | 587 |
SMTP port (587 for TLS, 465 for SSL) |
| email.SMTPCrypto | tls |
Encryption: tls or ssl |
| google.clientId | — | Google OAuth client ID (optional) |
| google.clientSecret | — | Google OAuth client secret (optional) |
📁Directory Structure
tradepro/
├── app/
│ ├── Config/ # Routes, database, filters, etc.
│ ├── Controllers/ # 29 controllers (Auth, Trade, Admin…)
│ ├── Models/ # AppModel, Password utilities
│ ├── Views/
│ │ ├── admin/ # Admin panel views
│ │ ├── template/ # Frontend theme views
│ │ └── installer.php # Installation wizard UI
│ ├── Database/
│ │ ├── Migrations/ # 17 schema migration files
│ │ └── Seeds/ # Initial data seeders
│ └── Filters/ # Auth & CSRF middleware
│
├── public/ # ← Web server document
root
│ ├── index.php # Application entry point
│ ├── assets/ # CSS, JS, fonts, icons
│ ├── template/ # Frontend themes
│ ├── uploads/ # User-uploaded files
│ ├── manifest.json # PWA manifest (auto-generated)
│ └── sw.js # PWA service worker
│
├── writable/ # Must be writable by web
server
│ ├── cache/
│ ├── logs/
│ ├── session/
│ └── uploads/
│
├── vendor/ # Composer packages
├── .env # Environment configuration
└── composer.json # Project manifest & dependencies
/public directory.
TradePro v1.5.3 · Built by The Kinsmen · Support