escolalms / webinar
Escola Headless LMS Webinar
Installs: 9 481
Dependents: 3
Suggesters: 1
Security: 0
Stars: 6
Watchers: 2
Forks: 1
Open Issues: 0
Type:package
pkg:composer/escolalms/webinar
Requires
- php: >=7.4
- davidbadura/faker-markdown-generator: ^1.1
- escolalms/auth: ^0
- escolalms/cart: ^0
- escolalms/core: ^1
- escolalms/files: ^0
- escolalms/jitsi: ^0
- escolalms/settings: ^0
- escolalms/tags: ^0
- escolalms/youtube: ^0
- laravel/framework: >=9.0
Requires (Dev)
- nunomaduro/larastan: ^2.0
- orchestra/testbench: ^7
- phpunit/phpunit: ^9.0
- dev-main
- 0.1.37
- 0.1.36
- 0.1.35
- 0.1.34
- 0.1.33
- 0.1.32
- 0.1.31
- 0.1.30
- 0.1.29
- 0.1.28
- 0.1.27
- 0.1.26
- 0.1.25
- 0.1.24
- 0.1.23
- 0.1.22
- 0.1.21
- 0.1.20
- 0.1.19
- 0.1.18
- 0.1.17
- 0.1.16
- 0.1.15
- 0.1.14
- 0.1.13
- 0.1.12
- 0.1.11
- 0.1.10
- 0.1.1
- 0.1.0
- 0.0.32
- 0.0.31
- 0.0.30
- 0.0.29
- 0.0.28
- 0.0.27
- 0.0.26
- 0.0.25
- 0.0.24
- 0.0.23
- 0.0.22
- 0.0.21
- 0.0.20
- 0.0.19
- 0.0.18
- 0.0.17
- 0.0.16
- 0.0.15
- 0.0.14
- 0.0.13
- 0.0.12
- 0.0.11
- 0.0.10
- 0.0.9
- 0.0.8
- 0.0.7
- 0.0.6
- 0.0.5
- 0.0.4
- 0.0.3
- 0.0.2
- 0.0.1
This package is auto-updated.
Last update: 2025-10-13 12:23:27 UTC
README
Package enabling live video stream
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 
Tests
Run ./vendor/bin/phpunit --filter=Webinar to run tests. See tests folder as it's quite good staring point as documentation appendix.
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
- TrainersWebinar is related belongs to many with User
- TagsWebinar model morph many to model tags
- UsersWebinar is related belongs to many with User which bought webinar
Webinar 1 -> n User
Webinar 1 -> n Tags
Webinar 1 -> n User