Cobra Developers
Blog, Industry

How to build an online course platform

The short answer

To build an online course platform, write the lessons first, then build five parts around them: enrollment and accounts, lesson delivery with progress saved on the server, identity checks if a regulator requires them, payment, and a certificate issued only from a verified completion record. Regulated courses must be designed around the regulator's rules from the start.

We built an online traffic school. AZ Defensive Driving School is a complete course platform: sixteen original lessons, identity checks, payments, and certificates, written to the Arizona Supreme Court's requirements for defensive driving schools.

We should be exact about where it stands. The platform is built and the certification packet is drafted. It is not live. It goes live when the court approves it.

That makes it a useful example of what a course platform involves before the first enrollment. It also taught us that the video player is the smallest part of the job.

What does an online course platform need?

An online course platform needs five working parts: lessons, progress tracking, identity checks where required, payments, and certificates. The lessons are the product. The other four exist so that the right person can pay, complete the material in order, and leave with proof that someone else will accept.

PartWhat it doesWhat goes wrong without it
LessonsDeliver the material in a fixed orderStudents skip to the end
Progress trackingRecords what each student has finishedStudents lose their place or claim work they did not do
Identity checksConfirm the enrolled person is the one taking the courseThe certificate cannot be trusted
PaymentsCollect the fee and record that it was paidAccess and payment fall out of step
CertificatesProve completion to a third partyThe course has no value outside the platform

Not every course needs all five. A hobby course sold to adults who want to learn has no use for identity checks and may not need a certificate. A course that a court, an employer, or a licensing board relies on needs every row.

How do you build a course platform, step by step?

Build a course platform in the order that lets you test with a real student as early as possible. Write the content first, deliver it second, and add money last. A platform with payments working and no lessons teaches you nothing about whether the course is any good.

  1. Read the rules. If a regulator or accrediting body governs the course, its requirements decide the design.
  2. Write the lessons. Finish the content before building around it. Ours is sixteen original lessons.
  3. Build accounts and enrollment. A student signs up and is tied to one course record.
  4. Build lesson delivery and progress. Lessons unlock in order and the server records each completion.
  5. Add quizzes or checks. Whatever the course uses to confirm the student was paying attention.
  6. Add identity checks. Only if the rules require them, and in the form the rules describe.
  7. Add payment. Connect the fee to the enrollment record.
  8. Issue certificates. Generate them from the completion record, never by hand.
  9. Test the whole path. Take the course yourself, start to finish, on a phone.

Step one is first for a reason. On our platform the court's requirements shaped the features, and discovering a requirement after building would have meant rebuilding.

How does progress tracking work?

Progress tracking works by storing each student's position on the server, not in their browser. Every time a lesson or quiz is completed, the platform writes a record with the student, the lesson, and the time. The next lesson unlocks only when the record for the previous one exists.

Keeping this on the server matters for two reasons. A student who starts on a laptop and continues on a phone should land where they left off. And a record kept only in the browser can be edited by anyone who knows how, which makes it worthless as proof.

For a casual course, the completion record is a convenience. For a regulated one, it is the product. It is what the certificate is built from, and it is what you would show if anyone asked how you know a student finished. We store ours in PostgreSQL, a conventional choice for data that has to be right. Our reasoning for that default is in how to choose a database.

Why do some courses need identity checks?

Some courses need identity checks because the certificate is relied on by someone who was not in the room. When a court, employer, or licensing body accepts a certificate, it is trusting that the named person did the work. An identity check is how the platform supports that claim.

How the check is done should come from the rules that govern your course, not from a developer's preference. Different bodies specify different methods, and some specify none.

If your course is regulated, read the current requirements from the body that regulates it and have your own advisor confirm them. We cannot tell you what yours are.

For an unregulated course, skip this part. An identity check adds friction for the student, and friction with no purpose loses enrollments.

How do payments and certificates connect?

Payments and certificates connect through the enrollment record. Payment marks the enrollment as paid. Completion marks it as finished. A certificate is generated only when the record shows both, so nobody receives proof of a course they did not pay for or did not complete.

Our platform takes payment through Stripe. The rule to follow with any provider is that its confirmation is the source of truth. A platform should not grant access because a browser landed on a thank-you page. It should grant access because the provider reported that the payment succeeded. That pattern, and why card numbers should never touch your own server, is covered in how to add payments to a web app.

Certificates should be produced by the system from the stored record, with the student's name, the course, and the completion date. A certificate someone types up by hand can be wrong, and one that is wrong once makes every other one questionable.

Should you build a course platform or use a hosted one?

Use a hosted course platform if your course is unregulated and follows the usual shape: videos, quizzes, a payment, and a completion badge. Those products exist, they are inexpensive next to custom software, and they let you find out whether anyone wants the course before you spend much.

Build your own when the rules require something a hosted product does not do, or when the course is part of a larger product. A regulated course is the common case. Ours had to be written to a specific set of requirements, so we built it.

If you are unsure, start hosted. Moving lessons to a custom platform later is far easier than building one for a course that does not sell. That is the same reasoning as starting with an MVP.

Frequently asked questions

How long should each lesson be?

Short enough to finish in one sitting on a phone, unless a regulator sets a required length. Many small lessons with a clear end are easier to complete than a few long ones, and they make progress tracking more meaningful.

Do online courses need video?

No. Text, images, and short quizzes are enough for many subjects, and they load faster and are easier to update. Use video where seeing something done teaches more than reading about it.

Can students take a course on a phone?

They should be able to. Many students will use nothing else. Design each lesson for a small screen first and test the whole course on a phone before launch.

What happens if a student stops partway through?

Their progress should be saved on the server so they can return on any device and continue from the same lesson. If the course has a deadline for finishing, show it clearly.

Can a certificate be verified later?

It can, if the platform keeps the completion record it was generated from. Give each certificate a reference that ties it back to that record, so a question about it can be answered from stored data.

If you have a course to put online, especially a regulated one, tell us what the rules require and we will tell you what it takes to build.

Who wrote this

The Cobra Developers team. We are a software studio in Arizona that builds and runs its own products and builds websites, web apps, and automation for clients. This post draws on our work on AZ Defensive Driving School. Everything here comes from projects we shipped; see all 30 of them.

guest@cobra: ~