This guide covers everything needed to move IEE Edu from a development environment into a production server — from installing optimized dependencies and compiling frontend assets to configuring the queue worker, setting up the Laravel scheduler for subscription expiry, and verifying the deployment with a smoke test checklist.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/RigbySawGame/ieeEdu_Wen/llms.txt
Use this file to discover all available pages before exploring further.
The fastest way to deploy and scale IEE Edu in production is Laravel Cloud. It handles server provisioning, zero-downtime deploys, queue workers, and the scheduler automatically, so you can skip the manual steps below.
Deployment Steps
Install dependencies
Install Composer packages with the autoloader optimized and development dependencies excluded. Then install Node packages needed to compile frontend assets.
Build frontend assets
Compile and fingerprint all Vue components, Tailwind styles, and JavaScript bundles for production using Vite.The output lands in
public/build/ and the Vite manifest is written to public/build/manifest.json, which Laravel uses to resolve hashed asset filenames at runtime.Configure the production environment
Create or update your Also configure the database connection. The default development configuration uses SQLite; for production a managed MySQL or PostgreSQL instance is recommended:
.env file on the server with production values. At minimum, set the following variables:Configure mail and queues
Notifications (subscription approvals, email verification, password resets) are dispatched through the queue. Both the mailer and the queue driver must be configured before going live.Start a persistent queue worker on the server (managed via Supervisor or your process manager of choice):
Run migrations and optimize caches
Apply any pending database migrations with the
--force flag (required when APP_ENV=production), then clear stale caches and rebuild all Laravel optimization caches in one sequence.| Command | Effect |
|---|---|
migrate --force | Runs migrations without interactive confirmation |
optimize:clear | Clears config, route, view, and event caches |
optimize | Rebuilds config and route caches |
view:cache | Pre-compiles all Blade views |
event:cache | Pre-caches all event→listener mappings |
Set up the storage symlink
If the application stores or serves user-uploaded files (payment vouchers, certificates) from
storage/app/public, create the public symlink so they are accessible via the web server.Configure the scheduler
The You can trigger the command manually at any time to verify it works independently of the cron:
subscriptions:sync-expired command runs on a schedule to automatically revoke classroom access when a student’s membership period ends. Register Laravel’s scheduler in the server crontab to run every minute:Run the smoke test checklist
After every production deploy, verify the critical user flows before announcing availability.
- Log in as an admin user and as a student user
- Navigate to
/planesand submit a membership request - Approve a payment proof in the admin dashboard and confirm the student gains classroom access
- Run the automated test suite in CI or on a staging server:
php artisan test --compact - If
MAIL_MAILERis configured, trigger an email verification flow and confirm delivery (MustVerifyEmail)