BrainyPath is an innovative, feature-rich e-learning platform inspired by Udemy, designed to revolutionize online education for learners and instructors. Developed over a year using the MERN stack, it offers seamless UI, robust functionality, and powerful automation.
- 🛒 Smart Cart & Wishlist: Add courses, save favorites, and manage selections effortlessly.
- 📊 Progress Tracking: Monitor section-wise and lecture-wise progress dynamically.
- 🌟 Rating & Reviews: Share feedback to help others choose the right course.
- 🖼️ Personalized Dashboard: Track your learning history and view recommended courses.
- 📚 Course Management: Create and structure courses with sections, lectures, and resources.
- 🎥 Multimedia Support: Upload videos, thumbnails, PDFs, and more for an enriched learning experience.
- 💰 Automated Payroll System: Get profits distributed automatically on scheduled dates.
- ✅ Course Approval: Review and approve lectures with feedback to maintain quality standards.
- 🔒 Secure Authentication: Password encryption, JWT-based tokens, and multi-step verification.
- 📈 Smart Recommendations: Personalized suggestions based on your learning history and interests.
- 🛠️ Analytics: Real-time tracking of interactions, searches, and learning patterns.
- 🌐 Frontend: React.js for clean, modern UI with responsive designs.
- 🖇️ Backend: Node.js and Express.js with optimized APIs.
- 🗃️ Database: MongoDB for scalable data storage.
- ☁️ Cloud Services: Cloudinary for resource management and optimized delivery.
BrainyPath_Frontend/
├── index.html # Main HTML entry point
├── jsconfig.json # JavaScript config for path aliases
├── package.json # Project dependencies and scripts
├── postcss.config.js # PostCSS configuration
├── tailwind.config.js # Tailwind CSS configuration
├── vite.config.js # Vite bundler configuration
└── src/ # Source code
├── App.jsx # Root React component
├── main.jsx # React entry point
├── index.css # Global styles
├── components/ # Reusable components
│ ├── Card.jsx
│ ├── Carousel.jsx
│ ├── Footer.jsx
│ ├── Logo.jsx
│ ├── Navbar/
│ ├── Rating.jsx
│ └── Tab.jsx
├── Helpers/ # Helper utilities
│ ├── axiosInstance.js
│ ├── eventEmitter.js
│ └── regexMatcher.js
├── Instructor/ # Instructor-related components and pages
│ ├── components/
│ ├── Layout/
│ └── Pages/
├── Layouts/ # Layout components
│ └── HomeLayout.jsx
├── Management/ # Management-related components
│ ├── admin/
│ └── modes/
├── Pages/ # Page components
├── ProtectedRoutes/ # Route protection components
├── Redux/ # Redux state management
│ ├── Slices/
│ └── store.js
└── Routes/ # Route configurations
- Node.js (v16 or higher)
- MongoDB (local or cloud-based)
-
Clone the Repository
git clone https://github.com/your-username/brainypath.git cd brainypath
-
Install Dependencies
npm install cd frontend && npm install
-
Set Up Environment Variables
- Copy the
.env.example
file to create.env
:cp .env.example .env
- Update the
.env
file with your values:MONGO_URI=your-mongodb-connection-string JWT_TOKEN_SECRET=your-jwt-secret ACCESS_TOKEN_EXPIRY=15m REFRESH_TOKEN_EXPIRY=7d EMAIL_API_KEY=your-email-api-key CLOUDINARY_URL=your-cloudinary-url
- Copy the
-
Run the Application
- Start the backend:
npm run server
- Start the frontend:
npm start
- Start the backend:
- Dynamic dashboards to manage courses and progress.
- Real-time tracking for section-wise and lecture-wise completion.
- Access resources such as videos, PDFs, and quizzes.
- Add sections, lectures, and resources with intuitive interfaces.
- Get feedback on lectures for quality assurance.
- Schedule payments effortlessly with payroll automation.
- OTP-based email verification with rate-limiting to prevent abuse.
- Encrypted password storage using bcrypt.
- Forgot password functionality with expiration and retry limits.
- Track user interactions and provide tailored recommendations.
- Search history tracking with autocomplete suggestions.
- Interaction analysis for popular tags, categories, and actions.
- 🤖 AI Insights: Advanced recommendations based on learner behavior.
- 📜 Multi-Language Support: Expanding accessibility with localization.
- 📊 Instructor Analytics Dashboard: Monitor course engagement and performance metrics.
- 🎮 Gamification: Add badges and achievements for learners.
- Fork the repository.
- Create a new branch (
git checkout -b feature-name
). - Commit your changes (
git commit -m "Add feature-name"
). - Push to the branch (
git push origin feature-name
). - Open a Pull Request.
This project is licensed under the MIT License. See the LICENSE file for more details.