escolalms/webinar

Escola Headless LMS Webinar

Maintainers

👁 qunabu

Package info

github.com/EscolaLMS/Webinar

Type:package

pkg:composer/escolalms/webinar

Statistics

Installs: 11 648

Dependents: 4

Suggesters: 1

Stars: 6

Open Issues: 0

0.1.44 2026-05-26 12:28 UTC

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT d8fa7b5891876b8f432c50bb95514c7c3d2800b5

  • Hubert Krzysztofiak <hubert.krzysztofiak.woop@escolasoft.com>

README

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

Loading

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