Skip to content

A complete web-based LMS platform for managing online courses, students, and instructors. Built with the MERN stack, it features course creation, video content, enrollments, progress tracking, and secure role-based access — ideal for schools, trainers, and e-learning platforms.

License

Notifications You must be signed in to change notification settings

Shaswatchoudhary/LMS-PORTAL

Repository files navigation

LMS Portal - A Learning Management System

Welcome to the LMS Portal, a full-featured Learning Management System (LMS) built using the MERN stack (MongoDB, Express, React, Node.js). This platform enables instructors to create, manage, and track courses, while students can browse, enroll, and track their learning progress. The system includes secure authentication using JWT, and students can enroll in courses, track progress, and make payments.

Tech Stack

The project is built using the following technologies:

  • Frontend: React.js, Axios, React Router
  • Backend: Node.js, Express.js
  • Database: MongoDB, Mongoose (for schema modeling)
  • Authentication: JWT (JSON Web Tokens)
  • Payment Integration: Optional integration with payment systems like Stripe or Razorpay

Getting Started

To get this project running on your local machine, follow these steps.

Prerequisites

Before you begin, ensure you have the following installed:

  • Node.js (with npm) - You can download it from Node.js
  • MongoDB - Either set up MongoDB locally or use MongoDB Atlas for cloud hosting.

Installation

Step 1: Clone the Repository

Start by cloning the repository:

git clone https://github.com/yourusername/lms-portal.git
cd lms-portal

Step 2: Set Up Backend
Navigate to the backend directory:

cd backend
Install backend dependencies:

npm install
Create a .env file inside the backend folder and add your environment variables:

env
MONGO_URI=your_mongo_connection_string
JWT_SECRET=your_jwt_secret_key
PORT=5000
Run the backend server:

bash
npm run dev
Your backend server should now be running on http://localhost:5000.

Step 3: Set Up Frontend
Navigate to the frontend directory:

bash
cd frontend
Install frontend dependencies:

bash
npm install
Create a .env file in the frontend folder and add your API URL:

env
REACT_APP_API_URL=http://localhost:5000
Run the frontend server:

npm start
Your frontend will now be running at http://localhost:3000.

Project Structure
The project has the following directory structure:

bash
lms-portal/
│
├── server/                # Backend code (Node.js, Express)
│   ├── models/             # Mongoose models (Schema definitions)
│   ├── routes/             # API routes (Course, Auth, etc.)
│   ├── controllers/        # Controller functions for routes
│   ├── server.js           # Server setup and middleware
│   ├── .env                # Backend environment variables
│
├── client/               # Frontend code (React)
│   ├── src/                # React components and pages
│   ├── public/             # Static files (index.html, images, etc.)
│   └── .env                # Frontend environment variables
│
└── README.md               # Project documentation

Usage
Instructor Features
Instructors can register, log in, and manage their courses through a simple interface. They can add new courses, manage their content, and track student enrollment and revenue. Instructors can also organize the curriculum of their courses into structured lessons, including videos, quizzes, and assignments.

Student Features
Students can register, log in, browse through a list of published courses, and enroll in the ones they’re interested in. Once enrolled, they get access to course materials, track their progress, and watch video lectures. Students also receive a personalized dashboard displaying their purchased courses and progress.

Contribution
Feel free to fork the repository and contribute to the project by submitting a pull request. For major changes, please open an issue first to discuss what you would like to change.

License
This project is licensed under the MIT License.

Let me know if you want to add screenshots, a demo video, or badges (like GitHub stars, license, etc.) as well!

About

A complete web-based LMS platform for managing online courses, students, and instructors. Built with the MERN stack, it features course creation, video content, enrollments, progress tracking, and secure role-based access — ideal for schools, trainers, and e-learning platforms.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published