A comprehensive Learning Management System (LMS) built with React.js, Node.js, and MongoDB. This platform enables instructors to create and manage courses while providing students with an interactive learning experience.
- Course Discovery: Browse and search through a wide variety of courses
- Interactive Learning: Watch video lectures with progress tracking
- Course Progress: Mark lectures as complete and track learning progress
- Enrollment Management: Purchase and enroll in courses
- Profile Management: Update personal information and preferences
- Learning Dashboard: View enrolled courses and progress
- Course Creation: Build comprehensive courses with sections and subsections
- Content Management: Upload videos, add descriptions, and organize content
- Student Analytics: Track student progress and engagement
- Course Publishing: Publish courses for public access
- Instructor Dashboard: Manage all courses and view analytics
- Responsive Design: Works seamlessly on desktop, tablet, and mobile
- Real-time Progress Tracking: Track learning progress in real-time
- Secure Authentication: JWT-based authentication with role-based access
- Payment Integration: Secure payment processing with Razorpay
- File Upload: Cloudinary integration for media uploads
- Email Notifications: Automated email notifications for various events
- React.js: Modern UI library for building user interfaces
- Redux Toolkit: State management for complex application state
- Tailwind CSS: Utility-first CSS framework for styling
- React Router: Client-side routing
- Axios: HTTP client for API communication
- React Hook Form: Form handling and validation
- Node.js: JavaScript runtime environment
- Express.js: Web application framework
- MongoDB: NoSQL database for data storage
- Mongoose: MongoDB object modeling
- JWT: JSON Web Tokens for authentication
- bcrypt: Password hashing and verification
- Multer: File upload handling
- Nodemailer: Email sending functionality
- Cloudinary: Cloud-based image and video management
- Razorpay: Payment gateway integration
- MongoDB Atlas: Cloud database hosting
- Node.js (v14 or higher)
- MongoDB (local or MongoDB Atlas)
- npm or yarn package manager
-
Clone the repository
git clone <repository-url> cd MindForgeCodex
-
Install dependencies
# Install frontend dependencies npm install # Install backend dependencies cd server npm install
-
Environment Configuration
Create
.envfiles in both root and server directories:Root
.env(Frontend)REACT_APP_BASE_URL=http://localhost:4000
Server
.env(Backend)PORT=4000 MONGODB_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret_key CORS_ORIGIN=http://localhost:3000 # Cloudinary Configuration CLOUDINARY_NAME=your_cloudinary_name CLOUDINARY_API_KEY=your_cloudinary_api_key CLOUDINARY_API_SECRET=your_cloudinary_api_secret FOLDER_NAME=your_cloudinary_folder_name # Razorpay Configuration RAZORPAY_KEY=your_razorpay_key RAZORPAY_SECRET=your_razorpay_secret # Email Configuration MAIL_HOST=your_smtp_host MAIL_USER=your_email MAIL_PASS=your_email_password
-
Database Setup
Run the sample data script to populate the database:
cd server node sampleData.js -
Start the application
# Start both frontend and backend (from root directory) npm run dev # Or start separately npm start # Frontend (port 3000) npm run server # Backend (port 4000)
The application comes with pre-configured sample data including:
- 5 Categories: Web Development, Data Science, Mobile Development, Cybersecurity, DevOps
- 3 Instructors: Nilesh Shinde, Omkar Patil,Swapnil Jadhav
- 2 Students: Rahul Sawant, Amruta Phadke
- 3 Sample Courses: Complete Web Development Bootcamp, Data Science & Machine Learning Masterclass, Mobile App Development with React Native
- Instructor: swapnil.jadhav@mindforge.com / Instructor123!
- Student: amruta.phadke@student.com / Student123!
POST /api/v1/auth/signup- User registrationPOST /api/v1/auth/login- User loginPOST /api/v1/auth/logout- User logoutPOST /api/v1/auth/reset-password-token- Request password resetPOST /api/v1/auth/reset-password- Reset password
GET /api/v1/course/getAllCourses- Get all published coursesPOST /api/v1/course/getCourseDetails- Get course detailsPOST /api/v1/course/createCourse- Create new course (Instructor only)POST /api/v1/course/editCourse- Edit course (Instructor only)POST /api/v1/course/updateCourseProgress- Update course progress (Student only)
POST /api/v1/payment/capturePayment- Process paymentPOST /api/v1/payment/verifyPayment- Verify payment signature
PUT /api/v1/profile/updateProfile- Update user profileDELETE /api/v1/profile/deleteAccount- Delete user account
The system automatically creates course progress records when students enroll and tracks completed lectures in real-time.
Custom video player with progress tracking and lecture completion functionality.
Mobile-first approach with Tailwind CSS ensuring optimal experience across all devices.
- JWT-based authentication
- Role-based access control
- Password hashing with bcrypt
- Input validation and sanitization
- Real-time Chat: Student-instructor communication
- Live Classes: Video conferencing integration
- AI-powered Recommendations: Course suggestions
- Mobile App: React Native application
- Advanced Analytics: Detailed learning analytics
- Multi-language Support: Internationalization
- Design Inspiration: Modern e-learning platforms
- Icons: React Icons library
- UI Components: Custom-built with Tailwind CSS
- Backend Architecture: RESTful API best practices
MindForge Codex - Empowering education through technology