Built to order

E-Learning Course Platform with Video Lessons and Progress Tracking

This project builds a complete e-learning platform: a searchable course catalog, video lessons with resume playback, lesson quizzes with instant feedback, per-course progress tracking, learning streaks, achievements and completion certificates. The backend handles JWT authentication, video streaming with range requests and progress persistence, while the report documents the data model and streaming design for a confident viva. Suitable for B.E./B.Tech final-year projects in Computer Science, IT and Web Development.

E-Learning Course Platform with Video Lessons and Progress Tracking — project thumbnail preview
More project photos (2)

The problem

Online learning platforms look simple from the outside — a list of videos — but the engineering underneath is a strong final-year topic: user accounts and roles, a course/lesson content model, video streaming that supports seeking, quiz engines with instant grading, and progress state that must stay consistent across devices. Most student "course website" projects are static pages; this one is a real platform. Instructors can structure courses into lessons with video, notes and quizzes; students get resume-where-you-left-off playback, scored quizzes with explanations, progress rings per course, weekly activity charts, streaks and achievements, and a PDF certificate when a course is completed. An admin dashboard covers course publishing and enrollment analytics.

How it works

  1. Users register and authenticate with JWT; roles (student, instructor, admin) gate the catalog, course builder and analytics views.
  2. Instructors create courses as ordered lessons — each lesson holds a video file, rich-text notes and an optional quiz — then publish through a draft/review flow.
  3. The video endpoint serves files with HTTP Range support, so seeking jumps without re-downloading; the client reports playback position every 10 seconds.
  4. Students enroll, watch lessons (positions persist per user), and take quizzes; correct answers are graded instantly with explanations.
  5. A lesson counts complete at 90% watched or on quiz pass; course progress aggregates lesson states and drives the dashboard rings and charts.
  6. At 100%, the server renders a PDF certificate; streaks increment on days with ≥1 completed lesson and achievements unlock on rule triggers.

Tech stack:

  • Node.js, Express
  • MongoDB (courses, users, progress)
  • JWT authentication
  • HTTP range-request video streaming
  • PDFKit (certificates)
  • HTML/CSS/JavaScript frontend
  • bcrypt (password hashing)
  • Docker (deployment)
Parameter Value
Video streaming HTTP Range requests, seekable playback
Resume granularity Playback position saved every 10 s
Lesson completion 90% watched or quiz pass
Quiz grading Instant, client + server validated
Certificate PDF, generated on 100% completion
Auth JWT, bcrypt-hashed passwords, 3 roles
Concurrent streams Approximately 100 (design target)
Deployment Docker Compose (app + MongoDB)

Project features

  • [Course catalog] Searchable, category-filtered catalog with ratings, durations, difficulty levels and instructor profiles.
  • [Video lessons with resume] HTML5 video with HTTP range-request streaming (seeking works), playback-position saved per user per lesson.
  • [Lesson quizzes] Multiple-choice quizzes with instant right/wrong feedback and score tracking toward course completion.
  • [Progress tracking] Per-lesson completion, per-course progress rings, and a dashboard showing all enrollments at a glance.
  • [Streaks & achievements] Daily learning streaks and unlockable badges (quiz master, bookworm, finisher) for engagement.
  • [Certificates] Auto-generated PDF completion certificates with the student name, course and date.
  • [Instructor & admin tools] Course builder (lessons, ordering, quizzes), publishing workflow and enrollment analytics.

What is included

  • Complete full-stack source code (platform + admin)
  • Course/lesson/quiz data model and seed content
  • Video streaming and progress-tracking implementation
  • Certificate PDF generator
  • Deployment guide (VPS, storage sizing, HTTPS)
  • Project report PDF (background, streaming design, data model, testing)
  • PPT presentation for final review
  • Viva Q&A preparation document (range requests, JWT, data modeling, progress state)

Limitations & prerequisites

  • Video is progressive HTTP download, not adaptive bitrate (HLS/DASH) — listed as future scope for large catalogs.
  • 100 concurrent streams is a design target, stated honestly — the report documents the load test actually run for the order.
  • Quizzes are multiple-choice only in this build; code-evaluation questions are future scope.
  • Certificates are self-issued by the platform, not accredited credentials.
  • Payment/enrollment gating is out of scope; all courses are free in this build.

Frequently Asked Questions

How does resume-playback work?

The video element reports its current time every 10 seconds (and on pause); the server stores it per user per lesson. Reopening the lesson seeks straight to the saved position.

Why HTTP Range requests for video?

Without them, seeking would force re-downloading from the start. Range requests let the browser fetch only the needed byte range, so scrubbing is instant — the report explains the request/response headers involved.

How is progress kept consistent?

Lesson completion is computed server-side from watch events and quiz results, stored per user, and aggregated into course percentages — so the dashboard, rings and certificates always agree.

Can instructors add their own courses?

Yes — the course builder supports creating lessons (video + notes + quiz), reordering them, and publishing through a draft → review → published flow.

How are certificates generated?

On 100% completion the server renders a PDF with the student name, course title and date using PDFKit; the download link appears on the dashboard.

Is this project suitable for a final-year project?

Yes — for Computer Science, IT and Web Development programs. It demonstrates full-stack development, media streaming, data modeling and a complete usable product. Suitable for B.E./B.Tech final-year projects in Computer Science, IT and Web Development.

Components & software requirements
  • Node.js, Express
  • MongoDB (courses, users, progress)
  • JWT authentication
  • HTTP range-request video streaming
  • PDFKit (certificates)
  • HTML/CSS/JavaScript frontend
  • bcrypt (password hashing)
  • Docker (deployment)
Delivery information

Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.

Support terms

Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.

Download abstract (PDF)

Related guides

All guides
Technical illustration of a cloud server pushing event envelopes outward to web application endpoints for payments, dashboards and chat.Web development and IoT students who have built a REST API or an ESP32 project and now need external services (payments, GitHub, messaging) to notify their app when things happen

Webhooks Explained: Receive Data from Payments, GitHub and IoT

A webhook lets a service call your server the moment an event happens — payments, code pushes, form submissions. This guide explains the event anatomy, HMAC signature verification, the fast-acknowledge reliability pattern, local testing, and how webhooks compare with polling, WebSockets and SSE.

Read guide
Illustration of Docker Compose orchestrating a full-stack application with frontend, API, database, and cache containers connected in one network.B.E./B.Tech Computer Science and IT students whose full-stack projects need a frontend, backend, and database running together and are tired of setup instructions that only work

Docker Compose for Full-Stack Projects

Stop juggling four terminals and setup docs that only work on your laptop. This guide builds a complete Docker Compose stack — frontend, API, database, cache — with annotated config, healthchecks, persistent volumes, and a dev/prod split that survives demo day.

Read guide
Illustration of a web page with a comment section: a shield filtering user input so scripts are neutralized into harmless text before rendering in visitors' browsers.B.E./B.Tech Computer Science, IT and Web Development students building web applications with user-generated content: comments, profiles, forums, dashboards

XSS Attacks Explained for Students

Cross-site scripting turns your comment section into code running in visitors' browsers. Learn the three XSS types conceptually, why browsers execute injected input, what it enables, and the defender's toolkit: output encoding, Content Security Policy, safe DOM handling, and hardened cookies. No payloads — prevention only.

Read guide
Get a quotation