Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Pragyat-Nikunj/Learning-Management-System-backend/llms.txt

Use this file to discover all available pages before exploring further.

The LMS Backend is a production-ready REST API built with Node.js, Express, and MongoDB. It provides all the server-side functionality needed for a learning management system — from user registration and JWT authentication to course creation, video lecture uploads via Cloudinary, student progress tracking, and integrated Stripe/Razorpay payment processing.

Quickstart

Run the server locally in under five minutes with a step-by-step setup guide.

Environment Setup

Configure all required environment variables for auth, database, and payments.

API Reference

Explore every endpoint with request/response schemas and curl examples.

Authentication

Learn how JWT cookie-based auth works and how to call protected endpoints.

What this API provides

The LMS Backend is organized around five core resource domains, each with its own set of RESTful endpoints:

Users & Auth

Sign up, sign in, profile management, password reset, and account deletion.

Courses

Create, search, publish, and manage courses with thumbnail uploads.

Lectures

Add video lectures to courses with Cloudinary-backed streaming URLs.

Progress Tracking

Track per-lecture completion and mark courses as fully completed.

Payments

Stripe Checkout sessions, webhooks, and purchase status queries.

Security

Rate limiting, Helmet headers, HPP, and Mongo sanitization built in.

Getting started

1

Clone and install

Clone the repository and install dependencies with npm install.
2

Configure environment

Create a .env file with your MongoDB URI, JWT secret, Stripe keys, and Cloudinary credentials. See Environment Setup for the full list.
3

Start the server

Run npm run dev to start the server on port 4000 with hot reload via nodemon.
4

Call your first endpoint

Hit GET /api/v1/healthcheck to confirm the server is running, then register a user with POST /api/v1/user/signup.
The server runs at http://localhost:4000 by default. All API routes are prefixed with /api/v1.

Build docs developers (and LLMs) love