Skip to content

nitinkumar9877/Virtual-Learning-Management-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ“ Virtual Learning Management System (VLMS)

A full-stack Virtual Learning Management System (VLMS) built using the MERN Stack that enables students to enroll in courses, watch lectures, make secure payments, leave reviews, and track learning progress. The platform also provides instructors/admins with tools to manage courses, lectures, and users, while integrating AI-powered assistance for an enhanced learning experience.


πŸš€ Features

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

  • User Registration & Login
  • JWT Authentication
  • Browse Available Courses
  • Course Enrollment
  • Secure Online Payments
  • Watch Video Lectures
  • Track Learning Progress
  • Submit Course Reviews & Ratings
  • Update Profile
  • Responsive Dashboard

πŸ‘¨β€πŸ« Admin Features

  • Create Courses
  • Update Course Details
  • Delete Courses
  • Upload Course Thumbnails
  • Add & Manage Lectures
  • Manage Students
  • View Orders
  • Monitor Reviews

πŸ€– AI Features

  • AI-powered learning assistant
  • Personalized learning support
  • Intelligent student interaction

πŸ› οΈ Tech Stack

Frontend

  • React.js
  • React Router DOM
  • Redux Toolkit
  • Tailwind CSS
  • Axios
  • Firebase
  • React Toastify
  • Recharts
  • React Icons

Backend

  • Node.js
  • Express.js

Database

  • MongoDB
  • Mongoose

Authentication & Security

  • JWT Authentication
  • bcryptjs
  • Cookie Parser
  • CORS

File Storage

  • Cloudinary
  • Multer

Payment Gateway

  • Razorpay

Email Service

  • Nodemailer

AI Integration

  • Google GenAI SDK

πŸ“‚ Project Structure

Virtual-Learning-Management-System/

│── backend/
β”‚   β”œβ”€β”€ configs/
β”‚   β”œβ”€β”€ controllers/
β”‚   β”œβ”€β”€ middlewares/
β”‚   β”œβ”€β”€ models/
β”‚   β”œβ”€β”€ routes/
β”‚   β”œβ”€β”€ scripts/
β”‚   β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ index.js
β”‚   └── package.json
β”‚
│── frontend/
β”‚   β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ package.json
β”‚   └── vite.config.js
β”‚
└── README.md

πŸ“¦ Database Models

  • User
  • Course
  • Lecture
  • Order
  • Review

πŸ” Authentication

The application implements secure authentication using:

  • JWT Access Tokens
  • Password Hashing (bcryptjs)
  • Protected Routes
  • Cookie-based Authentication

πŸ“š Course Management

Administrators can:

  • Create Courses
  • Upload Course Thumbnail
  • Add Lectures
  • Update Courses
  • Delete Courses
  • Manage Student Enrollments

πŸŽ₯ Learning Module

Students can:

  • Browse Courses
  • Purchase Courses
  • Watch Video Lectures
  • Track Learning Progress
  • Rate & Review Courses

πŸ’³ Payment Integration

The platform supports secure online payments using:

  • Razorpay Payment Gateway

Features include:

  • Course Purchase
  • Order Creation
  • Payment Verification

☁️ Media Management

Media files are managed using:

  • Cloudinary
  • Multer

Supported uploads:

  • Course Images
  • User Profile Images
  • Lecture Assets

πŸ“§ Email Notifications

Integrated with Nodemailer for:

  • User Communication
  • Account Notifications
  • Transaction Emails

πŸ“Š Dashboard Features

  • Course Statistics
  • Student Progress
  • Enrollment Overview
  • Review Analytics
  • Learning Insights

⚑ Performance & Best Practices

  • Modular MVC Architecture
  • RESTful APIs
  • Secure Authentication
  • Centralized Error Handling
  • Environment Variables
  • Reusable Controllers
  • Scalable Folder Structure

βš™οΈ Installation

Clone Repository

git clone https://github.com/yourusername/Virtual-Learning-Management-System.git

Navigate to Project

cd Virtual-Learning-Management-System

Backend Setup

cd backend
npm install

Create a .env file.

PORT=8000

MONGODB_URI=your_mongodb_connection_string

JWT_SECRET=your_secret_key

CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret

RAZORPAY_KEY_ID=your_key
RAZORPAY_SECRET=your_secret

EMAIL_USER=your_email
EMAIL_PASS=your_password

GOOGLE_API_KEY=your_google_genai_api_key

Run Backend

npm run dev

Frontend Setup

cd frontend
npm install

Run Frontend

npm run dev

πŸ§ͺ API Testing

You can test APIs using:

  • Postman
  • Thunder Client
  • Insomnia

πŸ“ˆ Future Enhancements

  • Live Classes
  • Assignment Submission
  • Quiz & Assessments
  • Certificates
  • Discussion Forums
  • Video Progress Tracking
  • Push Notifications
  • AI-based Personalized Recommendations
  • Instructor Dashboard
  • Multi-language Support

🎯 Learning Outcomes

This project demonstrates practical experience in:

  • MERN Stack Development
  • REST API Development
  • Authentication & Authorization
  • MongoDB Data Modeling
  • Cloudinary Integration
  • Secure Payment Gateway Integration
  • AI API Integration
  • File Upload Management
  • Dashboard Development
  • Redux State Management
  • Scalable Full-Stack Architecture

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

Nitin Kumar


πŸ“„ License

This project is developed for educational and portfolio purposes.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors