dev3 ·
DEV3 Learnova is a self-hosted online academy with courses, quizzes, certificates, coupons and an instructor studio with commissions.
Stack: Laravel 12, Filament 4 with three panels (/admin, /instructor, /student), a Livewire lesson player, a Blade public site and the shared DEV3 core.
Decisions that mattered
- A single service decides whether a lesson is open: preview lessons first, then an absolute "available from" date, then drip days from the enrolment day, and sequential mode also needs the previous lesson done. It also returns the reason a lesson is locked, so the sidebar, course page and "upcoming unlocks" agree. Unlocks are computed when a course is opened, so drip needs no cron job.
- The quiz engine grades strictly. A multiple choice answer scores only when the chosen set equals the correct set, short answers are normalised for case, spacing and punctuation, and every attempt is stored.
- Uploaded videos and PDFs sit on a private disk or private S3-compatible bucket and stream through short-lived signed URLs, rechecked against enrolment.
Limits: no public live demo; the demo school is fictional.
Trade-off we chose: unlocks are calculated when a course is opened, which avoids a cron job.
Interested in how others protect paid video. Questions and feedback are welcome.
#laravel#filament#lms#case-study
0