Laravel LMS script: 8 things to check before you self-host an online academy
Last updated

If you are comparing Laravel LMS scripts, the feature lists all look alike: courses, lessons, quizzes, certificates, maybe instructors. The differences show up later, when a paying student finds a lesson still locked, when an employer asks whether a certificate is real, or when an instructor asks why their earnings don't match the sales. This article is a checklist of the eight things worth testing before you choose a self-hosted learning management system, with how we answered each one in DEV3 Learnova, an LMS built on Laravel 12 and Filament 4.

1. Is building a course quick for instructors?
Instructors build the content, so the course builder decides how full your catalogue gets. Check which lesson types it supports, how easy it is to reorder a curriculum, and whether there is a review step before a course goes live.
In Learnova an instructor fills in the course basics (category, level, language, price and sale price, outcomes, requirements, prerequisites and drip mode), then opens the curriculum builder. Sections and lessons are cards you drag to reorder, and lessons can move between sections; changes save as you go. A lesson is a video (an upload, or a YouTube, Vimeo or MP4 link), an article, a PDF shown inline, or a quiz, and any lesson can be a free preview. Uploaded videos and PDFs are stored privately, which matters more than it sounds: see point 5. When the course is ready, the instructor submits it and it waits in the admin's approval queue, where the admin publishes it or sends it back with a note.

2. Can you drip content, and do learners see why a lesson is locked?
Drip schedules keep cohorts together and stop learners from skipping ahead. The detail to test is what a student sees: a padlock with no explanation creates support tickets.
Learnova supports three rules that combine. A lesson can open on a fixed date, or a set number of days after the student enrolled, set on the lesson or for a whole section. Sequential mode adds a second condition: the previous lesson must be complete. Preview lessons are always open. Every locked lesson shows its reason, such as "Unlocks Mar 14" or "Complete the previous lesson", and the student dashboard lists upcoming unlocks. Unlocks are worked out whenever the course is opened, so drip doesn't depend on a cron job running on time.

3. How are quizzes scored?
A quiz that decides who gets a certificate needs clear scoring rules. Check how multiple-answer questions are marked, how short answers are matched and whether retakes can be limited.
Learnova's quizzes mix multiple choice (with one or several correct answers), true/false and short answers. A multiple-choice question scores only when the student picks exactly the correct set. Short answers are compared with a list of accepted answers after ignoring case, extra spaces and punctuation, so "Primary key." matches "primary key". Spelling variants still count as different answers, which is why an instructor can list several accepted answers. Each question has its own points, the quiz has a pass mark, and attempts can be unlimited or capped. The result shows the score against the pass mark, which answers were right and an explanation for each, and every attempt is kept for the student, the instructor and the admin.
To be clear about the limits: an instructor can set a time limit and students see it, but version 1.0.1 doesn't enforce it with a countdown.

4. Can anyone verify a certificate?
A certificate PDF on its own is easy to fake. A useful certificate has a unique code and a public page where anyone can check it.
When a student finishes every lesson and passes every quiz, Learnova issues a certificate automatically with a code such as LNV-7KQM-4XPA. The landscape A4 PDF shows the student, course, instructor, hours, date and signatory, plus a QR code that opens the public verification page. Anyone can also type the code at /verify. Admins can revoke a certificate with a reason, and the verification page then shows it as revoked. The verification page is public, but the PDF itself downloads only for the student who earned it and for admins. The names are stored when the certificate is issued, so renaming a course later doesn't change certificates already out in the world. The certificate document itself is in English in 1.0.1, while the pages around it are translated.

5. Does checkout handle coupons, bundles and refunds, and does paid content stay paid?
Selling courses means more than a Buy button. Look for coupons you can scope, bundles that price fairly, and refunds that also take back access and the instructor's share. Then check where the paid videos actually live: if a lesson file sits in a public folder, anyone with the link can watch it without buying.
Learnova's coupons are a percentage or a fixed amount, with dates, usage limits and a scope of every course, one course or one instructor's courses. Bundles sell several courses for one price, split across the courses in proportion to their list prices, and leave out courses the student already owns. A refund goes back through the gateway, removes access and reverses the instructor's earnings. Payments run through Stripe, PayPal or Razorpay, and a simulated gateway lets you test the whole flow without moving money.
Since version 1.0.1, uploaded lesson videos and PDF handouts are kept in private storage (a private folder, or a private S3-compatible bucket). The player streams them through signed links that expire, and every request, including every seek in a video, checks again that the viewer is enrolled and that drip or sequential rules have opened the lesson (prerequisites are checked at enrolment). A shared link gives a non-enrolled visitor a 403, and a refund takes access away at once. Videos you link from YouTube or Vimeo stay under that host's own privacy settings.

6. If instructors sell, are commissions and payouts traceable?
As soon as other people teach on your platform, you owe them money, and they will check the numbers. Look for commission rules you can override and a ledger instructors can read.
Learnova resolves the platform's commission from the most specific rule: the course's own rate, then the instructor's, then the category's, then the global rate. The fee is rounded and the instructor receives the exact remainder, so the two always add up to the sale price. Each sale lands in the instructor's earnings ledger and becomes available after a hold period that matches your refund window, 14 days by default. Instructors request a payout of their available balance above a minimum, and admins approve it and mark it paid with a transfer reference, or reject it, which returns the amount. Learnova records payouts; you send the money through your bank or PayPal.

7. Will learners keep coming back?
Completion rates depend on the learning experience after the sale. Check the lesson player, progress tracking and the student's home screen.
Learnova's lesson player keeps the curriculum beside the lesson, with a progress ring and "complete & continue". Direct video files remember where the student stopped, and students keep timestamped notes and ask questions that the instructor answers from an inbox. Their dashboard shows a 3D progress constellation, where each course is a star that brightens with progress and wears a gold ring when finished, along with their streak, learning hours, weekly activity, upcoming unlocks and recommendations. Admin reports show the completion funnel and quiz pass rates, so you can see where learners drop off.

8. Can you install it without being a Laravel developer?
A script you can't install is a project you have to hire for. Check whether it ships with vendor/ and built assets, whether there's a web installer, and what the server really needs.
Learnova's download includes vendor/ and the compiled assets, so you need PHP 8.2+ and MySQL, MariaDB or SQLite, but not Composer or Node.js. Visit /install and a five-step wizard checks requirements, tests the database, loads demo or empty data, creates your admin and locks itself; php artisan dev3:install does the same over SSH. The queue runs in sync mode by default, so one cron entry is the only extra setup. If you plan to upload lesson videos rather than link them, raise your PHP and web server upload limits.

See it in action
The video tour follows a student from the catalogue through a coupon checkout, the lesson player and a quiz to a verified certificate, then shows the instructor studio with the curriculum builder, earnings and a payout request, and the admin's approvals and reports.
What else to compare
- Reports: revenue split between the platform and instructors, enrolments by source, completions, top courses and instructors, quiz pass rates, coupon usage and refunds, with CSV export.
- Languages: English and Arabic with a full right-to-left layout on the website, the lesson player and all three panels.
- Security and admin: two-factor sign-in with an authenticator app (8 recovery codes) or email codes, which you can require for admin staff while instructors and students opt in; roles with a permission editor, an audit log, review moderation, backups that include private lesson files, and system health.
- API: a Sanctum-secured REST API for courses, certificate verification and a user's enrolments, described in OpenAPI.
- Quality: Learnova 1.0.1 shipped with 142 Pest tests, Larastan level 6 with no errors and 98 pages checked in a headless browser with no console errors.
Learnova is available as DEV3 Learnova on the DEV3 marketplace for $29, with 118 screenshots and two video tours in place of a live demo. How it's built explains the architecture in more detail.
Featured courses — Hand-picked courses appear as rich cards with generated cover art, ratings, lesson counts and level badges.


