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_Backend/
├── src/
│ ├── app.js # Express app configuration
│ ├── server.js # Server startup
│ ├── constants.js # Global constants
│ ├── controllers/ # Request handlers
│ │ ├── course.controller.js
│ │ ├── instructor.controller.js
│ │ ├── management.controller.js
│ │ ├── payment.controller.js
│ │ ├── revenueShare.controller.js
│ │ ├── search.controller.js
│ │ ├── student.controller.js
│ │ └── user.controllers.js
│ ├── db/
│ │ └── dbConnection.js # Database configuration
│ ├── middlewares/ # Custom middleware
│ │ ├── auth.middleware.js
│ │ ├── errorHandler.js
│ │ └── multer.middleware.js
│ ├── models/ # Database schemas
│ │ ├── Payout/
│ │ │ └── bankAccount.model.js
│ │ ├── course.model.js
│ │ ├── courseReview.model.js
│ │ ├── courseSection.model.js
│ │ ├── enrollment.model.js
│ │ ├── instructor.model.js
│ │ ├── payment.model.js
│ │ ├── rating.model.js
│ │ ├── search.model.js
│ │ ├── sectionLecture.model.js
│ │ ├── studentProgress.model.js
│ │ ├── user.config.js
│ │ └── user.model.js
│ ├── routes/ # API routes
│ │ ├── course.routes.js
│ │ ├── instructor.routes.js
│ │ ├── management.routes.js
│ │ ├── payment.routes.js
│ │ ├── revenueShare.routes.js
│ │ ├── search.routes.js
│ │ ├── students.routes.js
│ │ └── user.routes.js
│ └── utils/ # Helper functions
│ ├── apiError.js
│ ├── apiResponse.js
│ ├── cloudinary.js
│ ├── emailTemplates.js
│ ├── sendEmail.js
│ └── tryCatch.js
├── .env # Environment variables
├── .env.example # Environment template
├── .gitignore
├── package.json
└── README.md
- 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.
- 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.