Skip to content
On this page


Package enabling live video stream


What does it do

This package is used for creating Webinar for EscolaLms.


  • composer require escolalms/webinar
  • php artisan migrate
  • php artisan db:seed --class="EscolaLms\Webinar\Database\Seeders\WebinarsPermissionSeeder"
  • Integration with Youtube


  • In App\Console\Kernel to method schedule add
    • $schedule->job(new ReminderAboutWebinarJob(WebinarTermReminderStatusEnum::REMINDED_HOUR_BEFORE))->everyFiveMinutes() - reminder about to webinar before one hour, executed every 5 minutes
    • $schedule->job(new ReminderAboutWebinarJob(WebinarTermReminderStatusEnum::REMINDED_DAY_BEFORE))->everySixHours(); - reminder about to webinar before one day, executed every 6 hours


All the endpoints are defined in swagger


Run ./vendor/bin/phpunit --filter=Webinar to run tests. See tests folder as it's quite good staring point as documentation appendix.

Test details codecov phpunit


  • EscolaLms\Webinar\Events\ReminderAboutTerm => Event is dispatched after execute cron job EscolaLms\Webinar\Jobs\ReminderAboutWebinarJob, Event is dispatched when deadline for purchased webinars before 1 hours and 1 day
  • EscolaLms\Webinar\Events\WebinarTrainerAssigned => Event is dispatched after assigned trainer to webinar
  • EscolaLms\Webinar\Events\WebinarTrainerUnassigned => Event is dispatched after unassigned trainer from webinar


  • EscolaLms\Webinar\Listeners\ReminderAboutTermListener => Listener execute a method that singed the status in the webinar reminder

How does this work on frontend.



Permissions are defined in seeder

Database relation

  1. Trainers Webinar is related belongs to many with User
  2. Tags Webinar model morph many to model tags
  3. Users Webinar is related belongs to many with User which bought webinar
Webinar 1 -> n User
Webinar 1 -> n Tags
Webinar 1 -> n User