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

  1. Open MySQL® Databases in cPanel and create a database (for example eduex_db).
  2. Create a database user with a strong password, then add the user to the database granting ALL PRIVILEGES.
  3. System requirements System requirements System requirements

Upload application files

  1. Zip the project locally (excluding node_modules, storage/logs, vendor if you prefer running composer on the server).
  2. In File Manager go to public_html/ (or the target directory) and upload the archive, then extract it.
  3. System requirements System requirements System requirements
    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

Welcome

Step 2: Requirements

Requirements

Step 3: Permissions

Permissions

Step 4: Environment

Environment

Step 5: Database

Database

Step 6: Finish

Finish

Manual installation fallback

If you cannot access the browser wizard (headless servers, CLI-only environments), follow these steps:

  1. Copy the environment template and update manually:
    cp .env.example .env
    php artisan key:generate
  2. Configure database credentials in .env, ensure the database exists, then run:
    php artisan migrate --force
    php artisan db:seed --force
  3. Run final commands to clear caches and ensure the app key exists:
    php artisan optimize:clear
    php artisan key:generate --force
  4. 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.
Before Uploading New Files

When uploading the new version files to your server, you must preserve your existing configuration and user data:

  1. Backup .env: Rename your current .env file to old.env (or keep a local backup).
  2. Backup Storage: Rename your current storage folder to old_storage.
  3. Upload the new version files (delete old files except your backups).
  4. Restore Config: Delete the new .env and rename old.env back to .env.
  5. 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:

  1. Login to the Admin Panel.
  2. Navigate to /admin/updater.
  3. The system will compare your current database version with the codebase version.
  4. If an update is available (e.g., Codebase Version > Database Version), the Update System Now button will be active.
  5. Click the button to safely run migrations and update the system version.
System Updater Interface
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

  1. Open your browser and navigate to your installation URL.
  2. Log in with one of the demo accounts above.
  3. Admin Dashboard: Access platform-wide settings, user management, and analytics.
  4. Instructor Dashboard: Create and manage courses, track student progress, view earnings.
  5. Student Dashboard: Enroll in courses, track learning progress, access certificates.

2. Creating Your First Course (As Instructor)

  1. Navigate to CoursesCreate New Course.
  2. Fill in basic details:
    • Course Title
    • Course Description
    • Category
    • Price (set to 0 for free courses)
  3. Upload a course thumbnail image.
  4. Set course visibility (Draft, Published, or Private).
  5. Click Save & Continue.

3. Adding Course Content

  1. Create course modules: Add Module → enter module title → save.
  2. Add lessons to each module: Click module → Add Lesson.
  3. 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

  1. Navigate to course → Lesson & ModulesCreate Quiz.
  2. Set quiz details:
    • Quiz title
    • Passing percentage
    • Max attempts
    • Time limit (optional)
  3. Add questions: Multiple choice, true/false, short answer, essay.
  4. Assign passing grades and point values.
  5. Publish quiz to make it available to students.

5. Managing Student Enrollment

  1. Students can self-enroll in published courses.
  2. For paid courses, they complete checkout via your configured payment gateway.
  3. View enrolled students: Course → Enrollments.
  4. Monitor progress: Click student name → see lesson completion, quiz scores, time spent.
  5. Grant certificates manually or automatically upon course completion.

6. Tracking Performance & Analytics

  1. Admin Dashboard: View total enrollments, revenue, top courses.
  2. Instructor Analytics: Course performance, student engagement, earnings breakdown.
  3. Detailed Reports: Export enrollment, progress, and revenue data.

7. Managing Events & Webinars

  1. Create live events: EventsCreate Event.
  2. Set event details: Date, time, duration, capacity.
  3. Enable booking: Students register and receive meeting links/join instructions.
  4. 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:

Admin settings

Platform Configuration

  • Site name, tagline, footer copy.
  • Primary color palette and favicon upload.
  • Time zone, date formats, Currency defaults.
Platform configuration

Course Settings

  • Approval rules for new courses.
  • Default Course Visibility
Course settings

Payment Gateways

  • Configure Stripe, Paystack, Razorpay, Flutterwave, PayPal, SSLCommerz, Mollie.
  • Enable/disable gateways and set fee structures.
  • Manage Offline Payment Methods
Payment gateways

Branding & Assets

  • Upload logos for light/dark themes and app favicon.
  • Manage Color Palette
Branding configuration

Contact Details

  • Primary support email, phone, physical address.
  • Contact Information
Contact details

Email & Notifications

  • Email Preference
  • Notification Preference
Email configuration

SMTP Configuration

  • SMTP Host
  • SMTP Port
  • SMTP Username
  • SMTP Password
  • SMTP Encryption
SMTP configuration

Authentication & OTP

  • Enable login OTP, email verification, and security thresholds.
  • Configure OTP expiry and resend limits.
Authentication configuration

Revenue Distribution

  • Set commission percentages for instructors vs. platform.
  • Fixed Commission
Revenue configuration

Withdrawals

  • Minimum Withdrawal Amount
Withdrawals configuration

Account Deletion

  • Approve or reject user-initiated deletion requests.
Account deletion configuration

Recaptcha Configuration

  • Enable Google reCAPTCHA v2/v3 site and secret keys.
  • Toggle usage on login, registration, and forms.
Recaptcha configuration

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.
  • Menus
  • Homepage — update hero titles, highlights, featured categories, instructor sections, testimonials, and calls-to-action.
  • Homepage
  • About Page — edit the mission statement, team bios, statistics, and timeline content displayed on the about page.
  • About Page
  • Contact Page — configure map iframe, address, phone numbers, contact form copy, and support email.
  • Contact Page
  • FAQ Content — maintain frequently asked questions grouped by category. Enable/disable items instantly to curate the FAQ section.
  • FAQ Content
  • Marquee Items — control the scrolling marquee text that sits at the top of marketing pages.
  • Marquee Items
  • SEO Metadata — override page titles, descriptions, and OpenGraph information for key landing pages.
  • SEO Metadata
  • Custom Pages — create additional static pages (terms, privacy, refund policy) using the built-in editor.
  • Custom Pages
  • Footer & Contact — adjust footer description, social links, and primary contact information displayed site-wide.
  • Footer & Contact

Changes are saved immediately. Clear caches (php artisan optimize:clear) if your deployment caches configuration, and refresh the storefront to verify updates.

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

  1. Check this documentation thoroughly.
  2. Review the troubleshooting section for common issues.
  3. Check your server logs: storage/logs/laravel.log.
  4. Verify your server meets all system requirements.
  5. 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 SettingsBranding & 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 SettingsPayment 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 SettingsRevenue 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

  1. Unzip the eduex_flutter directory.
  2. Open the folder in your IDE.
  3. Run dependencies installation:
    flutter pub get
  4. Run the app:
    flutter run

Connect to Backend

Link the mobile app to your installed Laravel server.

  1. Open lib/config/config.dart.
  2. 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

  1. Update applicationId in android/app/build.gradle.kts.
  2. Update the package path structure in android/app/src/main/kotlin/com/example/eduex_app/ to match your new ID.
  3. Update AndroidManifest.xml.

iOS Specifics

  1. Open ios/Runner.xcodeproj within Xcode.
  2. Select the Runner target.
  3. Update the Bundle Identifier field.

Logo & Splash Screen

Change App Icon

We use the flutter_launcher_icons package to generate icons for all devices.

  1. Replace the file at assets/img/icon.png with your logo (1024x1024px, no transparency recommended).
  2. Run the generator command in your terminal:
    dart run flutter_launcher_icons
  3. This works for both Android and iOS.

Change Splash Screen

  1. Replace assets/img/splash.png with your own image.
  2. 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.

  1. Open lib/theme/app_theme.dart.
  2. Locate the AppTheme class.
  3. 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

  1. Go to lib/l10n/ directory.
  2. Create a new ARB file, e.g., app_es.arb for Spanish.
  3. Copy the content from app_en.arb and translate the values.

Registering the Language

  1. Open lib/main.dart or lib/app.dart.
  2. 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

  1. Generate a keystore file.
  2. Create android/key.properties with your keystore details.
  3. Build the App Bundle:
    flutter build appbundle --release

iOS Deployment

  1. Open workspace: open ios/Runner.xcworkspace
  2. Archive and Upload via Xcode.