Skip to content

Latest commit

Β 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“š StudyNotion

Advanced MERN Learning Management System (LMS)

A production-ready Learning Management System (LMS) built using the MERN Stack with secure authentication, online course management, instructor and student dashboards, integrated payments, cloud media management, and a comprehensive Admin Panel.


React Node.js MongoDB JWT Cloudinary Razorpay Vercel License


🌐 Live Demo

πŸ”— Frontend

https://studynotion-tech.vercel.app

πŸ”— Backend API

https://study-notion-two-theta-27.vercel.app


πŸ“– About The Project

StudyNotion – Advanced MERN EdTech Platform is a modern full-stack Learning Management System (LMS) developed using the MERN Stack. It provides an interactive learning experience by connecting Students, Instructors, and Administrators on a single platform.

The application enables instructors to create and manage professional online courses, while students can browse, purchase, and complete courses through an intuitive learning dashboard. A dedicated administrator panel provides complete control over platform activities including user management, course moderation, and contact message handling.

This project follows modern software development practices with secure authentication, RESTful APIs, cloud-based media storage, responsive design, and integrated online payments.

Unlike a basic learning platform, this implementation extends the original concept with several production-ready enhancements, improved architecture, additional administrative capabilities, optimized APIs, and a significantly improved user experience.


✨ Project Highlights

  • πŸŽ“ Complete Learning Management System (LMS)
  • πŸ” Secure JWT Authentication
  • πŸ“§ OTP Based Email Verification
  • πŸ‘¨β€πŸŽ“ Student Dashboard
  • πŸ‘¨β€πŸ« Instructor Dashboard
  • πŸ‘¨β€πŸ’Ό Dedicated Admin Dashboard
  • πŸ“š Dynamic Course Management
  • πŸŽ₯ Video Lectures with Progress Tracking
  • πŸ’³ Razorpay Payment Integration
  • ☁️ Cloudinary Media Storage
  • ⭐ Course Ratings & Reviews
  • πŸ“© Contact Support System
  • 🚫 User Block / Unblock Functionality
  • πŸ“Š Platform Analytics
  • πŸ“± Fully Responsive User Interface
  • πŸ“§ Beautiful Email Templates
  • ⚑ Optimized REST APIs
  • πŸ”’ Secure Role-Based Authorization
  • 🌐 Production Deployment

πŸš€ Why StudyNotion?

Online education has transformed the way people learn. StudyNotion aims to provide a complete digital learning ecosystem where instructors can effortlessly publish educational content while students enjoy a seamless and engaging learning experience.

The platform focuses on:

  • Providing an intuitive learning experience.
  • Simplifying online course creation.
  • Secure online course purchasing.
  • Efficient instructor management tools.
  • Comprehensive administrative controls.
  • Scalable backend architecture.
  • Responsive design across all devices.
  • Cloud-based media management.
  • Production-ready deployment.

🌟 Key Features

πŸ‘¨β€πŸŽ“ Students

  • Register & Login
  • Email OTP Verification
  • Browse Courses
  • Search Courses
  • Purchase Courses
  • Razorpay Payment
  • Watch Video Lectures
  • Track Learning Progress
  • Rate & Review Courses
  • Update Profile
  • Reset Password
  • Contact Support

πŸ‘¨β€πŸ« Instructors

  • Instructor Dashboard
  • Create Courses
  • Upload Course Content
  • Organize Sections & Lectures
  • Edit Courses
  • Publish / Unpublish Courses
  • Track Student Enrollments
  • View Revenue Analytics

πŸ‘¨β€πŸ’Ό Administrators

  • Admin Dashboard
  • Platform Analytics
  • Manage Users
  • Block / Unblock Users
  • Manage Courses
  • Manage Categories
  • View Contact Messages
  • Delete Contact Messages

πŸ“‘ Table of Contents

  • About The Project
  • Project Highlights
  • Why StudyNotion?
  • Features
  • System Architecture
  • Technology Stack
  • Folder Structure
  • Installation Guide
  • Environment Variables
  • Running The Project
  • Database Architecture
  • Authentication Flow
  • Payment Workflow
  • Admin Module
  • API Documentation
  • Screenshots
  • Future Enhancements
  • Contributing
  • License
  • Author
  • Acknowledgements

πŸ—οΈ System Architecture

StudyNotion follows a modern three-tier architecture consisting of a React-based frontend, a RESTful backend API, and a cloud-hosted MongoDB database. The application integrates multiple third-party services such as Cloudinary for media storage, Razorpay for secure online payments, and Nodemailer for transactional email notifications.

The architecture is designed to be modular, scalable, and easy to maintain by separating responsibilities across different layers.


πŸ“ High-Level Architecture

                                β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                β”‚          End Users          β”‚
                                β”‚                             β”‚
                                β”‚ πŸ‘¨β€πŸŽ“ Students               β”‚
                                β”‚ πŸ‘¨β€πŸ« Instructors            β”‚
                                β”‚ πŸ‘¨β€πŸ’Ό Administrators         β”‚
                                β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                              β”‚
                                              β–Ό
                   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                   β”‚        React.js + Vite Frontend            β”‚
                   β”‚                                            β”‚
                   β”‚  β€’ Authentication                          β”‚
                   β”‚  β€’ Student Dashboard                       β”‚
                   β”‚  β€’ Instructor Dashboard                    β”‚
                   β”‚  β€’ Admin Dashboard                         β”‚
                   β”‚  β€’ Course Management                       β”‚
                   β”‚  β€’ Payment Interface                       β”‚
                   β”‚  β€’ Responsive UI                           β”‚
                   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                     β”‚
                           Axios REST API Requests
                                     β”‚
                                     β–Ό
                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                 β”‚         Node.js + Express Backend            β”‚
                 β”‚                                              β”‚
                 β”‚ β€’ Authentication APIs                        β”‚
                 β”‚ β€’ User Management                            β”‚
                 β”‚ β€’ Course Management                          β”‚
                 β”‚ β€’ Category Management                        β”‚
                 β”‚ β€’ Payment APIs                               β”‚
                 β”‚ β€’ Review APIs                                β”‚
                 β”‚ β€’ Contact APIs                               β”‚
                 β”‚ β€’ Admin APIs                                 β”‚
                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                 β”‚             β”‚
                                 β”‚             β”‚
                                 β–Ό             β–Ό
                        MongoDB Atlas      Cloudinary
                         Collections       Images/Videos
                                 β”‚
                                 β–Ό
                            Razorpay API
                                 β”‚
                                 β–Ό
                         Nodemailer (SMTP)

πŸ”„ Request Lifecycle

Every request follows a structured flow to ensure maintainability and security.

User

   β”‚

   β–Ό

React Component

   β”‚

Axios Request

   β”‚

Express Route

   β”‚

Authentication Middleware

   β”‚

Controller

   β”‚

MongoDB Database

   β”‚

Business Logic

   β”‚

JSON Response

   β”‚

React UI Update

πŸ’³ Course Purchase Workflow

The course enrollment process consists of multiple secure backend validations before granting access to purchased content.

Student

    β”‚

Select Course

    β”‚

Buy Now

    β”‚

Backend Creates Razorpay Order

    β”‚

Razorpay Checkout

    β”‚

Payment Success

    β”‚

Payment Verification

    β”‚

Course Enrollment

    β”‚

Course Progress Created

    β”‚

Confirmation Email Sent

    β”‚

Student Dashboard Updated

πŸ‘¨β€πŸ’Ό Admin Workflow

The Admin Panel provides centralized control over the platform.

Admin Dashboard

      β”‚

      β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Ί Manage Users

      β”‚                     β”‚

      β”‚              Block / Unblock Users

      β”‚

      β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Ί Manage Courses

      β”‚                   

      β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Ί Delete Courses

      β”‚

      β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Ί Contact Messages

      β”‚

      └──────────────► Platform Analytics

πŸ’» Technology Stack

Frontend

Technology Purpose
React.js User Interface
Vite Build Tool
Redux Toolkit State Management
React Router DOM Routing
Tailwind CSS Styling
Axios API Communication
React Hook Form Form Handling
React Hot Toast Notifications
React Icons Icons

Backend

Technology Purpose
Node.js Runtime Environment
Express.js REST API Framework
JWT Authentication
bcrypt Password Encryption
Nodemailer Email Service
Express File Upload File Uploads
Mongoose MongoDB ODM
dotenv Environment Variables

Database

Technology Purpose
MongoDB Atlas Cloud Database
Mongoose Database Modeling

Cloud Services

Service Purpose
Cloudinary Media Storage
Razorpay Payment Gateway
Gmail SMTP Email Delivery
Vercel Application Deployment

πŸ“ Project Structure

StudyNotion/
β”‚
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ assets/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ data/
β”‚   β”‚   β”œβ”€β”€ hooks/
β”‚   β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   β”œβ”€β”€ reducer/
β”‚   β”‚   β”œβ”€β”€ services/
β”‚   β”‚   β”œβ”€β”€ slices/
β”‚   β”‚   β”œβ”€β”€ utils/
β”‚   β”‚   β”œβ”€β”€ App.jsx
β”‚   β”‚   └── main.jsx
β”‚   β”‚
β”‚   β”œβ”€β”€ package.json
β”‚   └── vite.config.js
β”‚
β”œβ”€β”€ Server/
β”‚   β”œβ”€β”€ config/
β”‚   β”œβ”€β”€ controllers/
β”‚   β”œβ”€β”€ mail/
β”‚   β”œβ”€β”€ middleware/
β”‚   β”œβ”€β”€ models/
β”‚   β”œβ”€β”€ routes/
β”‚   β”œβ”€β”€ utils/
β”‚   β”œβ”€β”€ package.json
β”‚   └── server.js
β”‚
└── README.md

πŸ› οΈ Design Principles

The application is built following modern software engineering principles:

  • Modular Folder Structure
  • Separation of Concerns
  • Reusable Components
  • RESTful API Design
  • MVC Backend Architecture
  • Role-Based Authorization
  • Secure Authentication
  • Responsive User Interface
  • Cloud-Based Media Management
  • Production-Ready Deployment
  • Clean Code Practices
  • Scalable Project Architecture


πŸš€ Core Features

StudyNotion is designed to deliver a complete Learning Management System (LMS) experience for Students, Instructors, and Administrators. Each user role has a dedicated dashboard with features tailored to their responsibilities, ensuring a seamless and secure experience across the platform.


πŸ‘¨β€πŸŽ“ Student Module

The Student Module is designed to provide an engaging learning experience, enabling students to explore, purchase, and complete courses efficiently.

Authentication

  • Secure Sign Up
  • Login & Logout
  • Email OTP Verification
  • Forgot Password
  • Reset Password
  • JWT Authentication
  • Protected Routes

Course Discovery

Students can effortlessly discover courses through an intuitive browsing experience.

Features

  • Browse Available Courses
  • View Course Details
  • Course Categories
  • Course Information
  • Instructor Details
  • Ratings & Reviews
  • Student Enrollment Count
  • Responsive Course Cards

Shopping Experience

Students can purchase courses securely through Razorpay.

Features

  • Add Course to Cart
  • Remove Course from Cart
  • Buy Individual Course
  • Buy Multiple Courses
  • Secure Razorpay Checkout
  • Payment Verification
  • Automatic Enrollment

Learning Dashboard

After successful enrollment, students gain access to a personalized learning dashboard.

Features

  • View Enrolled Courses
  • Continue Learning
  • Video Lectures
  • Course Progress Tracking
  • Completed Videos
  • Learning Percentage
  • Course Completion Status

Reviews & Ratings

Students can provide valuable feedback after completing courses.

Features

  • Submit Rating
  • Write Review
  • View Other Reviews
  • Average Rating Calculation

Profile Management

Students have complete control over their personal information.

Features

  • Update Personal Information
  • Upload Profile Picture
  • Change Password
  • Delete Account
  • Edit Contact Information
  • View Account Details

πŸ‘¨β€πŸ« Instructor Module

The Instructor Module empowers educators to create, manage, and publish professional online courses.


Instructor Dashboard

The dashboard provides valuable insights into teaching performance.

Features

  • Total Revenue
  • Total Students
  • Published Courses
  • Instructor Analytics
  • Course Statistics

Course Management

Instructors can build complete courses with structured content.

Features

  • Create Course
  • Edit Course
  • Delete Course
  • Publish Course
  • Unpublish Course
  • Upload Thumbnail
  • Update Course Details

Course Builder

Each course can be organized into multiple sections and lectures.

Features

  • Create Sections
  • Edit Sections
  • Delete Sections
  • Create Subsections
  • Upload Videos
  • Replace Videos
  • Delete Videos
  • Arrange Course Structure

Instructor Analytics

Track course performance using real-time statistics.

Features

  • Total Enrollments
  • Revenue Generated
  • Student Count
  • Course Popularity

πŸ‘¨β€πŸ’Ό Admin Module

One of the biggest enhancements introduced in this project is the fully functional Admin Dashboard.

Unlike the original implementation, administrators now have centralized control over platform activities.


Admin Dashboard

Provides an overview of platform statistics.

Features

  • Dashboard Overview
  • Platform Analytics
  • User Statistics
  • Course Statistics
  • Contact Statistics

User Management

Administrators can efficiently manage platform users.

Features

  • View All Users
  • Block Users
  • Unblock Users
  • User Details
  • Role Information
  • Enrollment Information

Course Management

Administrators can moderate every course on the platform.

Features

  • View All Courses
  • Instructor Information
  • Enrollment Count

Contact Management

Administrators can manage messages submitted through the Contact Us page.

Features

  • View Contact Messages
  • Read Complete Message
  • Delete Messages
  • Contact Details
  • User Information

Platform Moderation

The Admin Panel ensures platform integrity through moderation features.

Features

  • Role-Based Access Control
  • User Restrictions
  • Course Visibility Control
  • Administrative Monitoring

⭐ Major Enhancements Over The Original StudyNotion

This project significantly extends the original StudyNotion concept with numerous production-ready improvements.

Original StudyNotion Advanced StudyNotion (This Project)
Student Dashboard βœ… Enhanced Student Dashboard
Instructor Dashboard βœ… Improved Dashboard UI
Course Management βœ… Advanced Course Builder
Ratings & Reviews βœ… Enhanced Review System
Razorpay Integration βœ… Improved Payment Workflow
Email Templates βœ… Professionally Designed Email Templates
Responsive Design βœ… Improved Mobile Responsiveness
Authentication βœ… Better Validation & Security
Profile Management βœ… Enhanced User Experience
Basic LMS βœ… Production-Ready LMS

Additional Features Developed

  • βœ… Complete Admin Panel
  • βœ… User Block / Unblock
  • βœ… Contact Message Management
  • βœ… Admin Analytics
  • βœ… Platform Monitoring
  • βœ… Enhanced Footer
  • βœ… Modern Email Templates
  • βœ… Better Mobile Experience
  • βœ… Improved Error Handling
  • βœ… Optimized Backend APIs
  • βœ… Production Deployment
  • βœ… Better Folder Organization
  • βœ… Cleaner REST API Structure

πŸ”’ Security Features

Security has been considered throughout the application.

Authentication

  • JWT Authentication
  • Password Encryption using bcrypt
  • Protected Routes
  • Role-Based Authorization

User Security

  • OTP Verification
  • Secure Password Reset
  • Account Protection
  • Session Validation

Backend Security

  • Environment Variables
  • Secure API Endpoints
  • Request Validation
  • MongoDB Data Validation

Payment Security

  • Razorpay Signature Verification
  • Secure Payment Validation
  • Automatic Enrollment Verification

⚑ Performance Optimizations

The project incorporates several optimizations for better performance.

  • Lazy Component Loading
  • Optimized Database Queries
  • Modular Backend Architecture
  • Reusable React Components
  • Efficient State Management
  • Cloud Media Storage
  • Optimized API Calls
  • Responsive UI Rendering
  • Clean Folder Structure
  • Scalable Codebase


βš™οΈ Installation Guide

Follow the steps below to set up the project locally.

Prerequisites

Before running the project, ensure the following software is installed on your system.

  • Node.js (v18 or above)
  • npm
  • Git
  • MongoDB Atlas Account
  • Cloudinary Account
  • Razorpay Account
  • Gmail Account (App Password Enabled)

πŸ“₯ Clone Repository

git clone https://github.com/saurav-09/StudyNotion

cd StudyNotion

πŸ“ Install Frontend Dependencies

cd frontend

npm install

πŸ“ Install Backend Dependencies

cd ../Server

npm install

πŸ” Environment Variables

Create a .env file inside the Server directory.

PORT=

MONGODB_URL=

JWT_SECRET=

CLOUD_NAME=
API_KEY=
API_SECRET=
FOLDER_NAME=

MAIL_HOST=
MAIL_USER=
MAIL_PASS=

RAZORPAY_KEY=
RAZORPAY_SECRET=

FRONTEND_URL=

Create another .env inside the frontend directory.

VITE_APP_BASE_URL=

VITE_RAZORPAY_KEY=

▢️ Running the Backend

cd Server

npm start

Backend runs on

http://localhost:4000

▢️ Running the Frontend

cd frontend

npm run dev

Frontend runs on

http://localhost:5173

🌍 Deployment

The application has been successfully deployed.

Service Platform
Frontend Vercel
Backend Vercel
Database MongoDB Atlas
Media Storage Cloudinary
Payment Gateway Razorpay

πŸ“ Project Structure Explained

StudyNotion/

β”œβ”€β”€ frontend/
β”‚
│── public/
β”‚
│── src/
β”‚   β”‚
β”‚   β”œβ”€β”€ assets/
β”‚   β”‚      Images
β”‚   β”‚      Icons
β”‚   β”‚
β”‚   β”œβ”€β”€ components/
β”‚   β”‚      Reusable UI Components
β”‚   β”‚
β”‚   β”œβ”€β”€ pages/
β”‚   β”‚      Application Pages
β”‚   β”‚
β”‚   β”œβ”€β”€ services/
β”‚   β”‚      API Integration
β”‚   β”‚
β”‚   β”œβ”€β”€ slices/
β”‚   β”‚      Redux Toolkit Slices
β”‚   β”‚
β”‚   β”œβ”€β”€ utils/
β”‚   β”‚      Helper Functions
β”‚   β”‚
β”‚   β”œβ”€β”€ App.jsx
β”‚   └── main.jsx
β”‚
β”œβ”€β”€ Server/
β”‚
│── config/
β”‚
│── controllers/
β”‚
│── middleware/
β”‚
│── mail/
β”‚
│── models/
β”‚
│── routes/
β”‚
│── utils/
β”‚
│── server.js
β”‚
└── README.md

πŸ“¦ Backend Modules

The backend is organized using the MVC architecture.

Config

Contains:

  • MongoDB Connection
  • Cloudinary Configuration
  • Razorpay Configuration

Controllers

Responsible for handling business logic.

Includes controllers for:

  • Authentication
  • Profile
  • Course
  • Category
  • Section
  • SubSection
  • Payment
  • Rating & Review
  • Contact
  • Admin

Models

Database models include:

  • User
  • Profile
  • OTP
  • Course
  • Category
  • Section
  • SubSection
  • RatingAndReview
  • CourseProgress
  • Contact

Routes

REST APIs are grouped into:

  • Auth Routes
  • Profile Routes
  • Course Routes
  • Payment Routes
  • Contact Routes
  • Admin Routes

🎨 Frontend Modules

The frontend is built using reusable React components.

Major modules include:

  • Authentication
  • Home
  • About
  • Contact
  • Catalog
  • Course Details
  • Student Dashboard
  • Instructor Dashboard
  • Admin Dashboard
  • Settings
  • Profile
  • Cart

πŸ“± Responsive Design

The platform is optimized for multiple screen sizes.

  • Desktop
  • Laptop
  • Tablet
  • Mobile

Responsive layouts are implemented using Tailwind CSS.


πŸ“§ Email Notifications

The application automatically sends email notifications for:

  • OTP Verification
  • Password Reset
  • Password Updated
  • Course Enrollment
  • Successful Payment
  • Contact Form Confirmation

All email templates are custom-designed using HTML and inline CSS.



πŸ—„οΈ Database Design

StudyNotion uses MongoDB Atlas as its cloud-hosted NoSQL database. The application follows a relational approach using MongoDB references to efficiently connect users, courses, instructors, and learning progress.


πŸ“‚ Database Collections

The application consists of the following collections:

Collection Description
User Stores authentication details and account information
Profile Stores additional user information
OTP Stores OTPs for email verification
Course Stores complete course information
Category Stores available course categories
Section Stores course sections
SubSection Stores lectures inside each section
RatingAndReview Stores course ratings and reviews
CourseProgress Tracks student learning progress
Contact Stores Contact Us messages

πŸ›οΈ Database Relationship

                    User
                     β”‚
     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
     β”‚               β”‚                 β”‚
     β–Ό               β–Ό                 β–Ό
 Profile         CourseProgress   RatingAndReview
     β”‚
     β”‚
     β–Ό
 Enrolled Courses
     β”‚
     β–Ό
  Course
     β”‚
     β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Ί Category
     β”‚
     β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Ί Instructor (User)
     β”‚
     β–Ό
  Section
     β”‚
     β–Ό
 SubSection

πŸ” Authentication System

Authentication is implemented using JWT (JSON Web Tokens) combined with encrypted passwords and protected backend routes.


Authentication Workflow

User

   β”‚

Register

   β”‚

Generate OTP

   β”‚

Verify Email

   β”‚

Create Account

   β”‚

Login

   β”‚

JWT Generated

   β”‚

JWT Stored in Cookie / Client

   β”‚

Protected Routes Accessible

Authentication Features

  • User Registration
  • Email OTP Verification
  • Secure Login
  • JWT Authentication
  • Password Encryption using bcrypt
  • Forgot Password
  • Password Reset
  • Protected Routes
  • Role-Based Authorization

πŸ‘₯ User Roles

The platform supports three different user roles.

Role Permissions
Student Purchase and learn courses
Instructor Create and manage courses
Admin Manage platform users, courses, and contact messages

πŸ”‘ Role-Based Access Control

Authorization middleware ensures that users can only access features permitted for their role.

Student

  • Purchase Courses
  • Access Enrolled Courses
  • Watch Lectures
  • Submit Reviews
  • Update Profile

Instructor

  • Create Courses
  • Edit Courses
  • Delete Courses
  • Publish Courses
  • Manage Course Content
  • View Dashboard

Admin

  • Manage Users
  • Block / Unblock Users
  • Manage Courses
  • View Contact Messages
  • Delete Contact Messages

πŸ“‘ REST API Overview

The backend follows REST architecture where each module is exposed through dedicated API routes.


Authentication APIs

POST    /api/v1/auth/sendotp
POST    /api/v1/auth/signup
POST    /api/v1/auth/login
POST    /api/v1/auth/reset-password-token
POST    /api/v1/auth/reset-password

Profile APIs

GET     /api/v1/profile/getUserDetails
PUT     /api/v1/profile/updateProfile
DELETE  /api/v1/profile/deleteProfile
GET     /api/v1/profile/getEnrolledCourses
GET     /api/v1/profile/instructorDashboard

Course APIs

POST    /api/v1/course/createCourse
PUT     /api/v1/course/editCourse
DELETE  /api/v1/course/deleteCourse

POST    /api/v1/course/createSection
PUT     /api/v1/course/updateSection
DELETE  /api/v1/course/deleteSection

POST    /api/v1/course/createSubSection
PUT     /api/v1/course/updateSubSection
DELETE  /api/v1/course/deleteSubSection

GET     /api/v1/course/getFullCourseDetails
GET     /api/v1/course/showAllCategories
GET     /api/v1/course/getCategoryPageDetails
GET     /api/v1/course/getInstructorCourses
GET     /api/v1/course/getAllCourses

Rating & Review APIs

POST    /api/v1/course/createRating
GET     /api/v1/course/getAverageRating
GET     /api/v1/course/getReviews

Payment APIs

POST    /api/v1/payment/capturePayment
POST    /api/v1/payment/verifyPayment
POST    /api/v1/payment/sendPaymentSuccessEmail

Contact APIs

POST    /api/v1/reach/contact

Admin APIs

GET     /api/v1/admin/dashboard

GET     /api/v1/admin/users
PATCH   /api/v1/admin/blockUser
PATCH   /api/v1/admin/unblockUser

GET     /api/v1/admin/courses
PATCH   /api/v1/admin/publishCourse
PATCH   /api/v1/admin/unpublishCourse
DELETE  /api/v1/admin/deleteCourse

GET     /api/v1/admin/contacts
DELETE  /api/v1/admin/deleteContact

Note: API endpoints may vary slightly depending on future project updates.


πŸ’³ Payment Workflow

Course purchases are processed securely using Razorpay.


Payment Flow

Student

   β”‚

Clicks "Buy Now"

   β”‚

Backend Creates Razorpay Order

   β”‚

Order Returned to Frontend

   β”‚

Razorpay Checkout Opens

   β”‚

Student Completes Payment

   β”‚

Backend Verifies Signature

   β”‚

Student Enrolled Automatically

   β”‚

Course Progress Created

   β”‚

Payment Success Email Sent

πŸ“§ Email Workflow

Automated emails are sent for important user actions.

Event Email
User Registration OTP Verification
Forgot Password Password Reset Link
Password Updated Confirmation Email
Course Purchase Enrollment Confirmation
Successful Payment Payment Receipt
Contact Form Contact Confirmation

☁️ Media Management

Cloudinary is used for storing all uploaded media files.

Supported uploads include:

  • Course Thumbnails
  • Course Videos
  • User Profile Images

Cloudinary helps optimize media delivery while reducing server storage requirements.


πŸ“Έ Project Screenshots

Below are screenshots showcasing different modules and features of the StudyNotion platform.


🏠 Home Page

The landing page introduces the platform, highlights featured courses, and provides quick access to the main sections of the application.

Home Page


πŸ“š Course Details

Displays complete information about a course including instructor details, pricing, ratings, description, and enrollment options.

Course Details


πŸ›’ Cart

Students can review selected courses before securely completing the payment process.

Shopping Cart


πŸ’³ Razorpay Payment

Secure online payment gateway integrated using Razorpay.

Payment


πŸ‘¨β€πŸŽ“ Student Dashboard

Students can monitor enrolled courses, learning progress, and manage their account.

Student Dashboard


πŸ‘¨β€πŸ« Instructor Dashboard

Provides instructors with insights into course performance, revenue, and enrolled students.

Instructor Dashboard


πŸ“– Instructor Courses

Manage all created courses from a centralized dashboard.

Instructor Courses


πŸ‘¨β€πŸ’Ό Admin Dashboard

Provides administrators with a complete overview of platform statistics.

Admin Dashboard


πŸ‘₯ Manage Users

Administrators can view, block, and unblock users.

Manage Users


πŸ“š Manage Categories

Administrators can create, update, and organize course categories.

Manage Categories


πŸ“¬ Contact Messages

View and manage all Contact Us submissions from users.

Manage Contact Messages


πŸ—‚οΈ Course Categories

Browse courses category-wise for a better learning experience.

Categories


πŸ“ž Contact Us

Users can send queries, feedback, or support requests directly from the platform.

Contact Us


πŸš€ Future Improvements

Although the platform is fully functional, several enhancements can further improve the overall learning experience.

Planned Features

  • πŸ“œ Course Completion Certificates
  • πŸ“ˆ Advanced Dashboard Analytics
  • πŸ” Advanced Course Search & Filters
  • ❀️ Wishlist Functionality
  • πŸ”” In-App Notifications
  • 🌍 Multi-Language Support
  • πŸŒ™ Dark / Light Theme Toggle
  • πŸ“± Progressive Web App (PWA)
  • πŸ“Š Instructor Revenue Charts
  • πŸ“ Student Notes
  • 🎯 Personalized Learning Recommendations

πŸ§ͺ Testing Checklist

The following features have been manually tested throughout development.

Module Status
User Authentication βœ…
OTP Verification βœ…
Password Reset βœ…
Student Dashboard βœ…
Instructor Dashboard βœ…
Admin Dashboard βœ…
Course Creation βœ…
Course Editing βœ…
Course Enrollment βœ…
Payment Integration βœ…
Cloudinary Upload βœ…
Ratings & Reviews βœ…
Contact Form βœ…
Responsive Design βœ…

🀝 Contributing

Contributions are always welcome.

If you'd like to improve this project:

  1. Fork the repository.
  2. Create a new feature branch.
  3. Commit your changes.
  4. Push to your branch.
  5. Open a Pull Request.

Please ensure your code follows clean coding practices and maintains the existing project structure.


πŸ“œ License

This project is licensed under the MIT License.

You are free to use, modify, and distribute this project for educational and personal purposes.


πŸ™ Acknowledgements

This project was developed as an enhanced Learning Management System inspired by the original StudyNotion concept.

Special thanks to the creators and educators whose work inspired the foundation of this project.

This implementation extends the original idea with additional functionality, improved architecture, enhanced UI/UX, administrative features, and production-ready deployment.


πŸ‘¨β€πŸ’» Author

Saurav

Full Stack MERN Developer

Passionate about building scalable web applications with modern JavaScript technologies and continuously improving problem-solving skills through Data Structures & Algorithms.

Connect with Me


⭐ Support the Project

If you found this project helpful, consider giving it a ⭐ on GitHub.

Your support motivates continued learning and the development of more open-source projects.


⭐ Thank You for Visiting ⭐

StudyNotion – Advanced MERN EdTech Platform

Built with ❀️ using the MERN Stack

Β© 2026 Saurav. All Rights Reserved.

About

An advanced MERN-based Learning Management System (LMS) featuring secure authentication, course management, Razorpay payments, Cloudinary integration, responsive dashboards, and a custom Admin Panel for platform management.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages