escolalms/webinar

Escola 无头 LMS 网络研讨会

安装次数: 7,454

依赖关系: 3

建议者: 1

安全: 0

星标: 6

关注者: 2

分支: 1

开放问题: 0

类型:软件包

0.1.35 2024-02-14 13:42 UTC

README

启用实时视频流的软件包

swagger codecov phpunit downloads downloads downloads Maintainability

功能介绍

此软件包用于创建 EscolaLms 的网络研讨会。

安装

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

调度

  • 在 App\Console\Kernel 的方法 schedule 中添加
    • $schedule->job(new ReminderAboutWebinarJob(WebinarTermReminderStatusEnum::REMINDED_HOUR_BEFORE))->everyFiveMinutes() - 在网络研讨会开始前一小时提醒,每5分钟执行一次
    • $schedule->job(new ReminderAboutWebinarJob(WebinarTermReminderStatusEnum::REMINDED_DAY_BEFORE))->everySixHours(); - 在网络研讨会开始前一天提醒,每6小时执行一次

端点

所有端点都在 swagger 中定义

测试

运行 ./vendor/bin/phpunit --filter=Webinar 来运行测试。请参阅 tests 文件夹,它是文档附录的好起点。

测试详情 codecov phpunit

事件

  • EscolaLms\Webinar\Events\ReminderAboutTerm => 在执行 cron 作业 EscolaLms\Webinar\Jobs\ReminderAboutWebinarJob 后触发事件,在网络研讨会截止时间前1小时和1天触发
  • EscolaLms\Webinar\Events\WebinarTrainerAssigned => 在为网络研讨会分配培训师后触发事件
  • EscolaLms\Webinar\Events\WebinarTrainerUnassigned => 在从网络研讨会中取消分配培训师后触发事件

监听器

  • EscolaLms\Webinar\Listeners\ReminderAboutTermListener => 监听器执行一个在网络研讨会提醒中签署状态的方法

前端如何实现

权限

权限在 seeder 中定义

数据库关系

  1. Trainers 网络研讨会与用户多对多关系
  2. Tags 网络研讨会模型与标签模型多对多关系
  3. Users 网络研讨会与购买了网络研讨会的用户多对多关系
Webinar 1 -> n User
Webinar 1 -> n Tags
Webinar 1 -> n User