A full-stack E-Learning platform built with the MERN stack (MongoDB, Express.js, React.js, Node.js). This project aims to provide a robust learning management system with features for students and instructors.
- User authentication and authorization (JWT, roles: student/instructor/admin)
- Course creation, management, and enrollment
- Video and resource uploads
- Progress tracking
- Interactive quizzes and assignments
- Admin dashboard for managing users and content
- Responsive frontend for web and mobile devices
- Frontend: React.js, Redux, Axios, Bootstrap/TailwindCSS
- Backend: Node.js, Express.js
- Database: MongoDB (Mongoose ODM)
- Authentication: JWT, bcrypt
- Cloud Storage: Cloudinary
- Other: Multer (file uploads), dotenv, CORS
/client # React frontend
/server # Node.js/Express backend
/server/models # Mongoose models
/server/routes # Express routes (API)
/server/controllers # Route controllers
/server/middleware # Auth and other middleware
/server/utils # Utility functions
.env # Environment variables
README.md # This file
package.json # Project metadata (both client and server)
- Node.js (v14+)
- npm or yarn
- MongoDB instance (local or cloud)
-
Clone the repository:
git clone https://github.com/sanketkanse999/MERN_E-Learning-Platform.git cd MERN_E-Learning-Platform
-
Install backend dependencies:
cd server npm install
-
Install frontend dependencies:
cd ../client npm install
-
Set up environment variables:
- Create a
.env
file in/server
. - Example for backend:
MONGO_URI=your_mongodb_uri_here JWT_SECRET=your_jwt_secret_here CLOUDINARY_CLOUD_NAME=your_cloud_name_here CLOUDINARY_API_KEY=your_cloudinary_api_key_here CLOUDINARY_API_SECRET=your_cloudinary_api_secret_here STRIPE_SECRET_KEY=your_stripe_secret_key_here PORT=5000
- Create a
-
Run the application:
- Backend:
cd server npm run dev
- Frontend:
cd client npm run dev
- Backend:
- Register as a new user or login.
- Browse available courses and enroll.
- Instructors can create and manage courses.
- Admins can manage users and content.
- Track your course progress and complete assignments.
POST /api/auth/register
— Register a new userPOST /api/auth/login
— Login and receive JWTGET /api/courses
— List all coursesPOST /api/courses
— Create a new course (instructor only)GET /api/users/profile
— Get user profile
- Fork the repo
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a pull request
This project is licensed under the MIT License.
-
Author1: Sanket Kanase
-
GitHub: sanketkanse999
-
Author2: Kiran Warkad
-
GitHub: kiranwarkad1