escolalms/webinar
Webinar package for EscolaLMS adds live online sessions to your Laravel LMS: schedule webinars, manage hosts and participants, and connect sessions with courses. Integrates with external webinar providers so learners can join meetings directly from the platform.
Architecture fit. EscolaLMS/Webinar is a modular Laravel package belonging to the EscolaLMS (Wellms) LMS suite. It follows the ecosystem's conventions: a service provider for registration, publishable config and migrations, Eloquent models with repository/contract bindings, API resources, and permission gating via the shared auth/roles layer. It is designed to be dropped into an existing EscolaLMS application rather than run standalone, so it fits well only if the surrounding LMS platform (users, courses, notifications, payments) is already in place or planned.
Integration feasibility. Installable via Composer with config/migration publishing; requires a video-conferencing provider (Zoom/Jitsi-style) credentials plus webhook/callback routes, queued jobs for reminders and lifecycle transitions, and scheduler entries. Release 0.1.44 ("Added order by", PR #83) is an additive change to query/sort behaviour on listing endpoints — no contract removal, no migration or config signature change signalled. Integration effort is dominated by provider setup and permission/role wiring, not by this release.
Technical risk.
0.1.x with frequent patch releases; no SemVer guarantee, so patch bumps can carry behavioural change. Pin exact versions.order by on list endpoints is a classic injection/performance vector. Verify the implementation whitelists sortable columns and validates direction before it reaches ORDER BY; unbounded sort columns can also force filesorts on large attendance tables.Key questions.
order by to an allow-list of columns, and how does it interact with pagination and existing filters?Stack fit. Assumes Laravel (9/10-class) on PHP 8.x, MySQL/Postgres, Redis-backed queues, and the Laravel scheduler. Operationally it needs queue workers for reminders/notifications and a publicly reachable endpoint for provider callbacks. It slots into an EscolaLMS monolith or a modular service alongside Courses, Users, and Notifications.
Migration path. Two distinct paths:
Compatibility. 0.1.44 is a drop-in for ^0.1 consumers — a composer update suffices, with no data migration. The compatibility work is horizontal: align core EscolaLMS package versions and confirm the new sort parameters don't conflict with existing front-end query strings or cached list responses.
Sequencing.
Maintenance. Low effort per release given the narrow scope, but high attention: 0.1.x ships frequently and patch-level changes can alter behaviour. Establish a monthly upgrade cadence, read each changelog, and upgrade staging first. Budget for occasional dependency-resolution work when core packages move.
Support. Requires a runbook covering provider outages, expired or revoked OAuth tokens, webhook failures and replays, and manual webinar state correction (cancel/reschedule) when automated transitions misfire. Support staff need admin visibility into webinar-to-provider session mapping; without it, every attendee issue escalates to engineering.
Scaling. The main pressure points are attendee/registration tables and list endpoints. Sorting added in 0.1.44 makes index coverage a prerequisite, not an afterthought — unindexed sort columns will degrade as attendance rows grow. Watch for N+1 queries when hydrating attendees and presenters, push reminders and notifications onto dedicated queues, and consider archiving past webinar attendance rather than retaining indefinitely.
Failure modes.
composer update on a patch bump.Ramp-up. A competent Laravel developer reaches productivity in roughly one to two days on the package itself; the longer curve is domain literacy — LMS entity relationships, permission model, and provider semantics — plus reading the EscolaLMS conventions. Because documentation for the wider suite is uneven, plan for source-reading time and designate one engineer as the package owner for upgrade triage and provider troubleshooting.
How can I help you explore Laravel packages today?