You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Star0Β (0)You must be signed in to star a repository
About
Full-stack AI-powered Learning Management System built with React, Node.js, Express, MongoDB, and Gemini AI. Features role-based authentication, course management, video lessons, enrollments, progress tracking, quizzes, certificates, analytics dashboards, and AI-assisted learning.
SkillForge LMS is a comprehensive, modern Learning Management System (LMS) built on the MERN stack. Designed with a clean, responsive interface and role-based access control, it empowers instructors to publish high-quality educational content and allows students to seamlessly enroll, learn, and track their progress.
π Features
π€ Role-Based Authorization
Students: Can explore courses, enroll in their chosen topics, stream video lessons, and track progress.
Instructors: Have full control over course creation, including managing sections, lessons, uploading video lectures, and accessing an instructor dashboard.
Create a .env file inside the frontend/ directory:
VITE_API_URL=http://localhost:3000/api
π£οΈ API Reference
π Authentication (/api/auth)
Method
Endpoint
Description
Auth Required
Role
POST
/register
Register a new user
No
Guest
POST
/login
Login user and receive JWT
No
Guest
π Courses (/api/courses)
Method
Endpoint
Description
Auth Required
Role
GET
/
Retrieve all active courses
No
Guest/Student/Instructor
GET
/:id
Get specific course details
Yes
Student
GET
/instructor/my-courses
Get instructor's created courses
Yes
Instructor
GET
/instructor/my-courses/:id
Get course details for management
Yes
Instructor
POST
/
Create a new course
Yes
Instructor
PUT
/:id
Update an existing course
Yes
Instructor
DELETE
/:id
Delete a course
Yes
Instructor
π Sections (/api/sections)
Method
Endpoint
Description
Auth Required
Role
GET
/student/:id
Get sections as student
Yes
Student
GET
/student/:id/lessons
Get lessons under section
Yes
Student
POST
/
Create a section
Yes
Instructor
GET
/:id
Get specific section details
Yes
Instructor
GET
/:id/lessons
Get lessons in a section
Yes
Instructor
PUT
/:id
Update section title/description
Yes
Instructor
DELETE
/:id
Delete section
Yes
Instructor
π Lessons (/api/lessons)
Method
Endpoint
Description
Auth Required
Role
POST
/
Create a lesson
Yes
Instructor
GET
/:id
Get lesson details
Yes
Instructor
PUT
/:id
Edit lesson details
Yes
Instructor
DELETE
/:id
Delete a lesson
Yes
Instructor
βοΈ Media Uploads (/api/uploads)
Method
Endpoint
Description
Auth Required
Role
POST
/
Upload lecture video to Cloudinary
Yes
Instructor
ποΈ Enrollment (/api/enroll)
Method
Endpoint
Description
Auth Required
Role
POST
/
Enroll student in a course
Yes
Student
GET
/:courseId
Check enrollment status
Yes
Student
GET
/
Retrieve student enrolled courses
Yes
Student
π Progress (/api/progress)
Method
Endpoint
Description
Auth Required
Role
POST
/:lessonId
Toggle lesson completion progress
Yes
Student
GET
/course/:courseId
Fetch overall course progress details
Yes
Student
π Local Setup & Installation
Prerequisites
Make sure you have Node.js (v18+) and MongoDB installed locally or access to a MongoDB Atlas cluster.
Step 1: Clone & Navigate
git clone https://github.com/akashzone/skillforge-lms.git
cd skillforge-lms
Step 2: Set Up Backend
cd backend
npm install
# Configure your .env file
npm run dev
Step 3: Set Up Frontend
cd ../frontend
npm install
# Configure your .env file
npm run dev
Open http://localhost:5173 in your browser to view and interact with the application.
About
Full-stack AI-powered Learning Management System built with React, Node.js, Express, MongoDB, and Gemini AI. Features role-based authentication, course management, video lessons, enrollments, progress tracking, quizzes, certificates, analytics dashboards, and AI-assisted learning.