SOQ International Academy

Tech Stack

Software, runtime, and dependency map for SOQ International Academy (Source/). Use this page for environment setup; use IT Architecture for the end-to-end diagram, Requirements for the short pre-install checklist, and Hosting for production capacity sizing.

tech_stack screenshot

Live screenshot from the SOQ beauty demo (aiacademy.aiee.dev).

Application stack

LayerTechnologyNotes
Application Laravel 9 — PHP ^8.1 (PHP 8.2 recommended) Feature-sliced monolith under Source/
Surfaces Public web — Panel /panel “ Admin (configurable prefix) ” API /api Optional features are managed via Admin Features / Settings
UI Blade templates “ design theme assets ” Admin UI Optional theme / landing builder modules via Admin Features / Settings
Front-end build Node.js + npm — Laravel Mix Needed only when rebuilding JS/CSS assets (npm run dev / prod)
Auth / API Session auth “ Sanctum ” JWT (mobile/API) Set APP_KEY and JWT_SECRET in .env
Commerce Payment channel drivers “ accounting ” payouts Gateway credentials are Admin / .env integrations
Live learning Zoom “ BigBlueButton ” Agora — Jitsi Provider accounts required; video runs on the provider cloud
Content / files Local storage — optional S3-compatible / MinIO Prefer object storage or CDN for large video libraries

Required runtime software

PHP
  • Minimum: PHP 8.1 (Composer constraint ^8.1).
  • Recommended production: PHP 8.2.
  • Alignment: Web PHP-FPM/Apache module and CLI PHP (Composer, Artisan, cron, queues) must be the same major.minor line.
PHP extensions (preflight)
  • OpenSSL, PDO + pdo_mysql, Mbstring, Tokenizer, XML, Ctype, JSON, BCmath, Zip, EXIF, Fileinfo, GD
  • ionCube Loader — not used on this build (plain PHP only)
  • Enable the same extensions for both web and CLI PHP
Database
  • Minimum: MySQL 5.7+ or MariaDB 10.2+
  • Recommended: MySQL 8.0 or MariaDB 10.6+
  • Dedicated database + user with rights to create/alter tables during install and updates
Web server
  • Apache with mod_rewrite, or Nginx with front-controller rewrite rules
  • Document root must point to Source/public (never the project root)
  • Production: HTTPS / valid TLS certificate

Related: Short checklist ? Requirements. Capacity sizing ? Hosting.

Developer / ops tooling

ToolRequired?Purpose
Composer Yes (deploy / local rebuild) Install PHP packages from composer.json
Git Recommended Source control for the academy repo
Node.js + npm Only for asset rebuilds Laravel Mix scripts in Source/package.json
Cron / scheduler Yes in production Reminders, scheduled jobs — see CronJobs
Queue worker Yes in production Emails, notifications, background jobs (do not leave production on sync)
Redis Optional (recommended at scale) Cache / sessions under high concurrency
FFmpeg Optional Only if local video processing tooling is used on the host

Laravel runtime defaults

When these keys are omitted from .env, Laravel uses safe local defaults:

  • CACHE_DRIVER ? file
  • QUEUE_CONNECTION ? sync (jobs run inline; fine for local, not ideal for production)
  • SESSION_DRIVER ? file
  • MAIL_MAILER / MAIL_DRIVER ? often log in local (no real SMTP until configured)

Production: configure real SMTP, a durable queue driver + worker, HTTPS APP_URL, and consider Redis for cache/sessions.

Local development (typical Windows / XAMPP)

ComponentExpectedStatus guidance
PHP 8.2 + extensions (no ionCube) Required Verify with php -v and php -m
Composer Required composer -V; Source/vendor present after install
MariaDB / MySQL Required Service listening on DB_HOST:DB_PORT; database name matches DB_DATABASE
Source/.env Required APP_KEY, DB_*, APP_URL set for local URL
Node / npm Optional Only if you change Mix/Sass/JS sources
Redis / FFmpeg / real SMTP Optional locally Not required to browse Admin/Panel with file cache and log mail
  1. Start Apache + MySQL (or equivalent) and confirm the academy database exists.
  2. From Source/, confirm php artisan --version works.
  3. Serve via the web root at public/ or php artisan serve for quick local checks.
  4. Keep DEMO_ONE_CLICK_LOGIN and seeded demo accounts out of customer production.

Production software checklist

  1. Ubuntu Server LTS (recommended) with PHP 8.2 and required extensions (no ionCube).
  2. MySQL 8.0 / MariaDB 10.6+ with dedicated credentials.
  3. Nginx or Apache ? public/, HTTPS, writable storage/ and bootstrap/cache/.
  4. Composer install (production flags as appropriate), then Artisan migrate/seed as your runbook requires.
  5. Cron for the scheduler / cron HTTP endpoints; long-running queue worker under process supervision.
  6. SMTP, payment, live-class, and storage credentials — see Access (Account, Login, Gmail).
  7. Optional: Redis, object storage/CDN, monitoring — see Hosting.

Baseline capacity (one node): about 6 CPU cores, 32 GB RAM, 240 GB NVMe, =250 Mbit/s — details on the Hosting page. Shared hosting is not recommended for that profile.

Still optional after core install

  • Real SMTP (replace log mailer) for signup, reset, and notifications
  • Payment gateway keys for paid checkout
  • Zoom / other live-class API credentials
  • S3 / MinIO / CDN for media
  • Redis when concurrency grows
  • Optional modules that show Feature not activated until enabled in Admin Features / Settings