Welcome to eduex
Thanks for choosing the eduex learning platform. This guide walks through Codecanyone
installation
steps, manual setup, demo users, and all major admin configuration panels.
System requirements
Before you run the installer, ensure the target server meets the minimum requirements:
- PHP 8.2+ with extensions: OpenSSL, PDO, Mbstring, Tokenizer, JSON, cURL, Fileinfo, BCMath.
- Database: MySQL 8, MariaDB 10.5+, PostgreSQL 12+, or SQL Server 2019+.
- Queue backend (database driver supported by default; Redis or others optional).
cPanel: create database & upload files
Database & user
- Open MySQL® Databases in cPanel and create a database (for example
eduex_db).
- Create a database user with a strong password, then add the user to the database granting
ALL PRIVILEGES.
Upload application files
- Zip the project locally (excluding
node_modules, storage/logs,
vendor if you prefer running composer on the server).
- In File Manager go to
public_html/ (or the target directory)
and upload the archive, then extract it.
Without terminal access, you can complete migrations by visiting /install after
uploading.
Codecanyone setup wizard
eduex bundles a polished Codecanyone-style wizard for first-time installs. Browse to
/install after configuring your vhost or running php artisan serve.
1. Welcome
Quick intro, high-level checklist, and a reminder about server requirements.
2. Requirements
Automated PHP version and extension checks. You must satisfy all prerequisites to
continue.
3. Permissions
Validates directory write access for storage and
bootstrap/cache.
4. Environment
Guided form covering application info, database credentials, cache/session drivers, and
mail
setup. Values are persisted to .env.
5. Database
Runs migrations, seeds all demo data, performs artisan maintenance commands, and logs
output
in real time.
6. Finish
Displays environment summary, seeded demo accounts, and the path to the
storage/installed marker.
Step 1: Welcome
Step 2: Requirements
Step 3: Permissions
Step 4: Environment
Step 5: Database
Step 6: Finish
Manual installation fallback
If you cannot access the browser wizard (headless servers, CLI-only environments), follow these
steps:
- Copy the environment template and update manually:
cp .env.example .env
php artisan key:generate
- Configure database credentials in
.env, ensure the database exists, then run:
php artisan migrate --force
php artisan db:seed --force
- Run final commands to clear caches and ensure the app key exists:
php artisan optimize:clear
php artisan key:generate --force
- Create the installation marker to skip the wizard:
php -r "file_exists('storage/installed') || touch('storage/installed');"
Tip: Delete storage/installed anytime you need to re-run the
wizard.
Demo accounts
The seeders provision three ready-to-use accounts for quick testing. All use the password
password.
| Role |
Email |
Password |
| Administrator |
admin@eduex.com |
password |
| Instructor |
instructor@eduex.com |
password |
| Student |
student@eduex.com |
password |
Update System
Keeping your system up-to-date is crucial for security and new features. The built-in updater
allows you to apply database changes automatically.
Critical Pre-Update Instructions
- Custom Code Warning: If you have made any custom modifications to
the core code, they will be overwritten during the update.
- Free Update Support: If you are unsure, you can ask our
support team for a free update service.
When uploading the new version files to your server, you must preserve your existing
configuration and user data:
- Backup .env: Rename your current
.env file to
old.env (or keep a local backup).
- Backup Storage: Rename your current
storage folder
to old_storage.
- Upload the new version files (delete old files except your backups).
- Restore Config: Delete the new
.env and rename
old.env back to .env.
- Restore Data: Delete the new
storage folder and
rename old_storage back to storage.
This ensures you keep your database credentials, app
keys, and user uploaded files intact.
One-Click Updater
Once you have uploaded the new files and restored your configuration:
- Login to the Admin Panel.
- Navigate to /admin/updater.
- The system will compare your current database version with the codebase version.
- If an update is available (e.g., Codebase Version > Database Version), the
Update System Now button will be active.
- Click the button to safely run migrations and update the system version.
Watch Update Tutorial
Click to open the step-by-step video guide
Basic Usage & Getting Started
After installation, here's how to start using eduex:
1. First Login & Dashboard Overview
- Open your browser and navigate to your installation URL.
- Log in with one of the demo accounts above.
- Admin Dashboard: Access platform-wide settings, user management, and
analytics.
- Instructor Dashboard: Create and manage courses, track student progress,
view earnings.
- Student Dashboard: Enroll in courses, track learning progress, access
certificates.
2. Creating Your First Course (As Instructor)
- Navigate to Courses → Create New Course.
- Fill in basic details:
- Course Title
- Course Description
- Category
- Price (set to 0 for free courses)
- Upload a course thumbnail image.
- Set course visibility (Draft, Published, or Private).
- Click Save & Continue.
3. Adding Course Content
- Create course modules: Add Module → enter module title → save.
- Add lessons to each module: Click module → Add Lesson.
- Lesson content types:
- Video: Upload or embed from YouTube/Vimeo.
- Text: Rich text content with formatting.
- Document: PDFs and downloadable resources.
- Quiz: Test student knowledge (see quiz section).
4. Creating Quizzes & Assessments
- Navigate to course → Lesson & Modules → Create Quiz.
- Set quiz details:
- Quiz title
- Passing percentage
- Max attempts
- Time limit (optional)
- Add questions: Multiple choice, true/false, short answer, essay.
- Assign passing grades and point values.
- Publish quiz to make it available to students.
5. Managing Student Enrollment
- Students can self-enroll in published courses.
- For paid courses, they complete checkout via your configured payment gateway.
- View enrolled students: Course → Enrollments.
- Monitor progress: Click student name → see lesson completion, quiz scores, time spent.
- Grant certificates manually or automatically upon course completion.
6. Tracking Performance & Analytics
- Admin Dashboard: View total enrollments, revenue, top courses.
- Instructor Analytics: Course performance, student engagement, earnings
breakdown.
- Detailed Reports: Export enrollment, progress, and revenue data.
7. Managing Events & Webinars
- Create live events: Events → Create Event.
- Set event details: Date, time, duration, capacity.
- Enable booking: Students register and receive meeting links/join instructions.
- Record sessions for on-demand playback after live event.
8. Understanding User Roles
Admin: Full platform access—manage users, settings, payments, analytics.
Instructor: Create courses, manage students, track earnings, view
analytics.
Student: Enroll courses, access content, take quizzes, earn certificates.
Key features
Highlights of the eduex platform:
- Multi-role authentication (Admin, Instructor, Student) with approval pipelines.
- Course builder with modules, lessons, quizzes, assignments, certificates, and progress
tracking.
- Event management and booking system for webinars and in-person sessions.
- Payment integrations: Stripe, Paystack, Razorpay, Flutterwave, PayPal, SSLCommerz, Mollie
with
revenue sharing.
- Marketing toolkit: blog, testimonials, newsletter signup, customizable pages.
- Rich analytics dashboards for enrollments, revenue, and learner engagement.
Environment keys referenceMust be set in .env file
Example:
APP_NAME=eduex
APP_URL=https://lms.example.com
| Key |
Description |
Example |
APP_NAME |
Brand name displayed across headers, transactional emails, and metadata. |
eduex |
APP_URL |
Primary application URL. Important for mailers, queues, and asset helpers. |
https://lms.example.com |
Admin settings walkthrough
Sign into the admin dashboard and navigate to Settings to manage the following
modules:
Platform Configuration
- Site name, tagline, footer copy.
- Primary color palette and favicon upload.
- Time zone, date formats, Currency defaults.
Course Settings
- Approval rules for new courses.
- Default Course Visibility
Payment Gateways
- Configure Stripe, Paystack, Razorpay, Flutterwave, PayPal, SSLCommerz, Mollie.
- Enable/disable gateways and set fee structures.
- Manage Offline Payment Methods
Branding & Assets
- Upload logos for light/dark themes and app favicon.
- Manage Color Palette
Contact Details
- Primary support email, phone, physical address.
- Contact Information
Email & Notifications
- Email Preference
- Notification Preference
SMTP Configuration
- SMTP Host
- SMTP Port
- SMTP Username
- SMTP Password
- SMTP Encryption
Authentication & OTP
- Enable login OTP, email verification, and security thresholds.
- Configure OTP expiry and resend limits.
Revenue Distribution
- Set commission percentages for instructors vs. platform.
- Fixed Commission
Withdrawals
- Minimum Withdrawal Amount
Account Deletion
- Approve or reject user-initiated deletion requests.
Recaptcha Configuration
- Enable Google reCAPTCHA v2/v3 site and secret keys.
- Toggle usage on login, registration, and forms.
Frontend Manager
The Frontend Manager module controls most public-facing content. From the admin
sidebar open Frontend Manager to access the following tools:
- Menus — manage main, mobile, footer, and quick-link menus. Use the
Manage buttons to add, sort, nest, or disable menu items without touching code.
- Homepage — update hero titles, highlights, featured categories,
instructor
sections, testimonials, and calls-to-action.
- About Page — edit the mission statement, team bios, statistics, and
timeline
content displayed on the about page.
- Contact Page — configure map iframe, address, phone numbers, contact
form
copy, and support email.
- FAQ Content — maintain frequently asked questions grouped by
category.
Enable/disable items instantly to curate the FAQ section.
- Marquee Items — control the scrolling marquee text that sits at the
top of
marketing pages.
- SEO Metadata — override page titles, descriptions, and OpenGraph
information
for key landing pages.
- Custom Pages — create additional static pages (terms, privacy, refund
policy)
using the built-in editor.
- Footer & Contact — adjust footer description, social links, and
primary
contact information displayed site-wide.
Changes are saved immediately. Clear caches (php artisan optimize:clear) if your
deployment
Theme Settings
eduex supports multiple front-end themes and layouts. To activate, configure, and manage themes, open Frontend Settings > Themes from the admin sidebar.
Activating a Theme
- The admin dashboard displays all installed themes with their respective status, version, and author details.
- Click the Active toggle button on any theme card to activate it as the primary storefront theme.
- Active theme preview is automatically updated using the theme's
screenshot.png asset.
Managing Homepage Layout Variants
Themes can support different design variations (e.g., Kindergarten vs. Early Education variants for the Eduna theme). To manage these variants:
- Open the Homepage tab inside Frontend Manager.
- Locate the Homepage Theme dropdown selection.
- Select your desired variant (for example, Early Education or Kindergarten) and click Update.
- The homepage will automatically adapt to the new design and pull dynamic database contents (courses, categories, events, blogs) for the chosen theme layout variant.
Post-install checklist
- Update branding (logos, hero headlines, footer text).
- Configure payment gateways with live credentials.
- Set up SMTP and test transactional emails.
Troubleshooting
Common issues
- Setup wizard blank page: check
storage/logs/laravel.log for
SQL or
permission errors.
- Cache table missing: run
php artisan migrate --path=database/migrations/0001_01_01_000001_create_cache_table.php.
- Queue jobs not processing: ensure the queue worker is supervised or run
php artisan queue:work.
Useful artisan commands
# Clear caches and rebuild autoload optimizations
php artisan optimize:clear
# Run migrations with seeders again
php artisan migrate:fresh --seed
# Monitor Horizon or queue (if using Redis)
php artisan queue:listen
Support & Contact Information
We're here to help! Use the following resources to get support or reach out with questions:
Getting Help
- Documentation: Review this guide for setup, configuration, and usage
instructions.
- Email Support: For technical issues, feature requests, or general
inquiries.
- FAQ: Check our FAQ section for answers to common questions.
- Community Forum: Connect with other eduex users and share solutions.
Contact Methods
Email: mhquickdev@gmail.com
Response Time: 24-48 hours for support inquiries
Availability: Monday - Friday, 9 AM - 6 PM (GMT+6)
Before Contacting Support
- Check this documentation thoroughly.
- Review the troubleshooting section for common issues.
- Check your server logs:
storage/logs/laravel.log.
- Verify your server meets all system requirements.
- Provide relevant error messages and context when reaching out.
Information to Include
When reporting an issue, include:
- Error message or screenshot
- Your PHP version and database type
- Browser and OS being used
- Steps to reproduce the issue
- Any recent changes to your installation
Ready to Get Started?
If you have questions or need assistance, don't hesitate to reach out.
Contact
Support
Best Practices & Tips
Security Best Practices
- Change default passwords: Update demo account passwords immediately in
production.
- Use HTTPS: Always serve the platform over HTTPS in production.
- Regular backups: Implement automated database and file backups.
- Keep software updated: Update Laravel, PHP, and dependencies regularly.
- Enable reCAPTCHA: Protect login and registration forms from bot attacks.
- Strong email security: Use secure SMTP with authentication and encryption.
Performance Optimization
- Enable caching: Configure Redis or Memcached for sessions and data caching.
- Compress assets: Minify CSS/JS files and optimize images.
- Use CDN: Serve static assets from a CDN for faster delivery globally.
- Database indexing: Ensure critical tables are properly indexed.
- Queue jobs: Use background jobs for emails, notifications, and heavy processing.
Course Creation Tips
- Structure matters: Organize courses into logical modules and lessons.
- Engagement: Mix video, text, and interactive content to keep students
engaged.
- Assessments: Use quizzes strategically to reinforce learning.
- Descriptions: Write clear, compelling course descriptions to improve
enrollment.
- Support materials: Provide downloadable resources, transcripts, and
supplementary materials.
User Management Best Practices
- Regularly audit user accounts and permissions.
- Implement role-based access control (RBAC) for sensitive operations.
- Monitor suspicious login attempts in admin logs.
- Use strong password policies and two-factor authentication when available.
Frequently Asked Questions
Installation & Setup
Q: What if the installer wizard doesn't load?
A: Check your server logs at storage/logs/laravel.log for
database or permission errors. Ensure storage and bootstrap/cache
directories are writable.
Q: Can I run eduex without a database?
A: No, a database is required for the platform to function. Support includes
MySQL, MariaDB, PostgreSQL, and SQL Server.
Q: How do I restore a backup?
A: Restore your database from backup, then upload the backed-up files to
your server. Run php artisan migrate --force if needed.
Configuration & Customization
Q: How do I change the platform colors and logo?
A: Log in as admin and navigate to Settings →
Branding & Assets to upload logos and customize colors.
Q: Can I use a custom domain?
A: Yes, point your domain to the server hosting eduex. Update
APP_URL in your .env file with your domain.
Q: How do I add multiple payment gateways?
A: Go to Settings → Payment Gateways, fill
in credentials for each gateway you want to enable, and toggle them active.
Courses & Content
Q: Can students access course content offline?
A: Not natively, but instructors can provide downloadable PDFs and course
materials for offline reference.
Q: What file formats are supported for course uploads?
A: Video: MP4, WebM, OGG. Documents: PDF, DOC, DOCX, XLS, XLSX. Images: JPG,
PNG, GIF, WebP.
Q: Can instructors see student progress in real-time?
A: Yes, instructors can view student progress, quiz scores, and time spent
in the course analytics dashboard.
Payments & Revenue
Q: Which payment gateways are supported?
A: Stripe, Paystack, Razorpay, Flutterwave, PayPal, SSLCommerz, and Mollie
are all integrated.
Q: How is revenue split between instructors and the platform?
A: Configure revenue sharing percentages in Settings →
Revenue Distribution.
Q: Can I offer refunds?
A: Yes, admins can process refunds manually. Configure refund policies and
expiration in settings.
Flutter App Configuration
Complete guide to re-branding, configuring, and publishing the eduex mobile application.
Prerequisites
- Flutter SDK: 3.9.0+
- Dart SDK: 3.0.0+
- IDE: VS Code or Android Studio
- MacOS: Required for iOS builds
Installation
- Unzip the
eduex_flutter directory.
- Open the folder in your IDE.
- Run dependencies installation:
flutter pub get
- Run the app:
flutter run
Connect to Backend
Link the mobile app to your installed Laravel server.
- Open
lib/config/config.dart.
- Update
baseUrl:
static const String baseUrl = 'https://your-domain.com';
App Name & Package ID
Change App Display Name
Android: Open android/app/src/main/AndroidManifest.xml and update:
android:label="Your App Name"
iOS: Open ios/Runner/Info.plist and update:
<key>CFBundleDisplayName</key>
<string>Your App Name</string>
Change Package Name / Bundle ID
Global Replace: The easiest way is to use your IDE's "Replace in Files"
feature.
Replace com.example.eduex_app with com.yourcompany.appname.
Android Specifics
- Update
applicationId in android/app/build.gradle.kts.
- Update the package path structure in
android/app/src/main/kotlin/com/example/eduex_app/ to match your new ID.
- Update
AndroidManifest.xml.
iOS Specifics
- Open
ios/Runner.xcodeproj within Xcode.
- Select the Runner target.
- Update the Bundle Identifier field.
Logo & Splash Screen
Change App Icon
We use the flutter_launcher_icons package to generate icons for all devices.
- Replace the file at
assets/img/icon.png with your logo (1024x1024px, no
transparency recommended).
- Run the generator command in your terminal:
dart run flutter_launcher_icons
- This works for both Android and iOS.
Change Splash Screen
- Replace
assets/img/splash.png with your own image.
- To change the splash background color, edit
lib/screens/splash/splash_screen.dart.
Colors & Theme
You can change the primary and secondary colors of the entire application from a single file.
- Open
lib/theme/app_theme.dart.
- Locate the
AppTheme class.
- Change the color hex codes:
class AppTheme {
// Primary Brand Color
static const Color primary = Color(0xFF1EA9FF); // Change this
// Secondary Brand Color
static const Color secondary = Color(0xFF085BC5); // Change this
// ... other colors
}
Language & Localization
The app supports multiple languages using Flutter's localization system.
Adding a New Language
- Go to
lib/l10n/ directory.
- Create a new ARB file, e.g.,
app_es.arb for Spanish.
- Copy the content from
app_en.arb and translate the values.
Registering the Language
- Open
lib/main.dart or lib/app.dart.
- Add the new locale to
supportedLocales:
supportedLocales: const [
Locale('en'), // English
Locale('es'), // Spanish (Added)
],
Flutter will automatically generate the Dart code when you run the app again.
Android Deployment
- Generate a keystore file.
- Create
android/key.properties with your keystore details.
- Build the App Bundle:
flutter build appbundle --release
iOS Deployment
- Open workspace:
open ios/Runner.xcworkspace
- Archive and Upload via Xcode.
Changelog
A complete history of releases, new features, improvements, and fixes for the eduex platform.
Version 1.3.1 Latest
✨ New: Dedicated Theme Manager
- Now supports uploading and installing custom themes and dedicated 3rd-party developer themes.
Version 1.3.0
✨ New: Coupon & Discount System
- Added support for percentage-based and fixed-amount discount coupons.
- Configurable coupon validity periods with start/end dates and usage limits.
- Support for both platform-wide and course-specific coupons.
- Instructors can create and manage coupons for their own courses.
- Fully integrated across the Web Platform, Student App, and Instructor App.
✨ New: Course Discussion & Forum System
- Added dedicated discussion forums for each course.
- Students and instructors can create posts, reply to discussions, and like comments.
- Added instructor announcement pinning for important course updates.
✨ New: Fully Integrated Live Classes Module
Web Platform (Laravel)
- Added Live Course option during course creation.
- Instructors can schedule live lessons using Zoom, Google Meet, or custom meeting platforms.
- Added real-time live session banners with direct join functionality.
- Added countdown timers for upcoming live sessions.
- Added automatic recording playback support after session completion.
- Added LIVE badges across course listings, dashboards, and catalog pages.
- Added live status indicators within course curriculum sections.
- Added multilingual support for live class labels and statuses.
Student App (Flutter)
- Added LIVE badge overlays across course listings and enrolled courses.
- Added dedicated live lesson indicators within course curriculum screens.
- Added support for live session status and scheduling data.
✨ New: Advanced Language Manager
- Added Admin Language Manager for creating and removing system languages.
- Added filesystem-based translation management without database dependency.
- Added translation editor with pagination, search filters, and automatic key sorting.
- Added automatic synchronization of new translation keys across all installed languages.
- Improved localization performance through active locale caching.
✨ New: Offline Payment Instructions Support
- Students can now view offline payment instructions directly within the app.
✨ New: XPay PKR Online Payment Gateway
- Added XPay — a Pakistani PKR online payment gateway — to the supported
payment integrations.
✨ New: Cron Job Manager
- Added a new built-in Cron Job Manager for scheduling and monitoring background tasks from
the admin panel.
🔧 Improvements
- Optimized API responses for live course and lesson data.
- Improved multilingual system scalability and maintainability.
- Enhanced overall platform performance for language loading and translation management.
Version 1.2.2
🐛 Fixed
- Fixed: Free Courses Enrolment Error.
- Fixed: Contact us page 2 brand slider.
- Fixed: Dashboard Branding Title.
✨ Added
- Added: Custom CSS, JS, and custom Script insert from admin panel.
- Added: Admin can now delete a course completely.
- Added: Loading effects during course publish.
Version 1.2.1
✨ Added
- Bundle Courses module added.
- Bkash Payment Gateway added.
📱 App
- Block screen recordings and screenshots in app course access page.
🌐 Web
Version 1.2.0
✨ Added
📱 App
- Fixed video player full-screen issue.
🌐 Web
- Multi-language support added.
Version 1.1.1
🐛 Fixed
- Image issue fixed.
- API rate limit issue fixed.
Version 1.1.0
🐛 Fixed
- Logo issue fixed.
- Color issue fixed.
✨ Added