escolalms/webinar

Escola Headless LMS Webinar
12,284 6
Install
composer require escolalms/webinar
Latest Version:0.1.44
PHP:>=7.4
License:MIT
Last Updated:May 26, 2026
Links: GitHub  ·  Packagist
Maintainer: qunabu

Webinar

Package enabling live video stream

swagger codecov phpunit downloads downloads downloads Maintainability

What does it do

This package is used for creating Webinar for EscolaLms.

Installing

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

Schedule

  • 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

Endpoints

All the endpoints are defined in swagger

Tests

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

Events

  • 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

Listeners

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

How does this work on frontend.

sequenceDiagram

    box Embeed in Web App     
    participant Jisti
    actor Tutor
    participant Youtube
    participant Web App
    actor Student
    end

    box Administration
    participant Admin Panel
    actor Admin
    end 

    Admin->>Admin Panel: Creates a webinar instance
    Student->>Web App: Get access to webinar (eg. buys)
    Tutor->>Web App: (on the day of the event) Broadcast 
    Web App->>Jisti: Broadcast with Jitsu GUI 
    Jisti->>Youtube: Broadcast to public 
    Youtube->>Web App: forward for public
    Student->>Web App: Watches webinar with YT GUI

Permissions

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

Related Packages

mews/purifier

Laravel 5/6/7/8/9/10 HtmlPurifier Package

21,010,090 1,982
kyslik/column-sortable

Package for handling column sorting in Laravel 6.x

6,282,182 647
mews/captcha

Laravel 5/6/7/8/9/10/11/12 Captcha Package

6,095,827 2,586
ajthinking/archetype

Programmatically edit PHP and Laravel files.

4,372,487 272