Skip to content

BrainyPath is an online learning platform built with the MERN stack, offering a seamless experience for users to browse and enroll in courses. It’s designed to provide a modern e-learning experience similar to Udemy, with features such as instructor profit management, smooth course navigation, and a user-friendly interface

Notifications You must be signed in to change notification settings

Rajveer13a/BrainyPath_backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌟 BrainyPath E-learning Platform

🚀 Empowering Education for Everyone

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.


🔗 Repository Links

Frontend Repository

BrainyPath Frontend

🌈 Key Features at a Glance

🧑‍🎓 For Learners

  • 🛒 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.

🧑‍🏫 For Instructors

  • 📚 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.

🔐 For Everyone

  • 🔒 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.

🛠️ Tech Stack

  • 🌐 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.

🌟 Visual Previews

Homepage

Screenshot (45)

Learner Dashboard

Screenshot (57)

Instructor Tools

Screenshot (67)


Project Structure

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



🚀 Getting Started

Prerequisites

  • Node.js (v16 or higher)
  • MongoDB (local or cloud-based)

Steps

  1. Clone the Repository

    git clone https://github.com/your-username/brainypath.git  
    cd brainypath  
  2. Install Dependencies

    npm install  
    cd frontend && npm install  
  3. 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
      
  4. Run the Application

    • Start the backend:
      npm run server  
    • Start the frontend:
      npm start  

📚 Feature Breakdown

🎓 Learning Experience Features

  • Dynamic dashboards to manage courses and progress.
  • Real-time tracking for section-wise and lecture-wise completion.
  • Access resources such as videos, PDFs.

💰 Instructor Tools

  • Add sections, lectures, and resources with intuitive interfaces.
  • Get feedback on lectures for quality assurance.
  • Schedule payments effortlessly with payroll automation.

🔐 Secure System

  • OTP-based email verification with rate-limiting to prevent abuse.
  • Encrypted password storage using bcrypt.
  • Forgot password functionality with expiration and retry limits.

📊 Analytics & Personalization

  • Track user interactions and provide tailored recommendations.
  • Search history tracking with autocomplete suggestions.
  • Interaction analysis for popular tags, categories, and actions.

🌍 Future Enhancements

  • 🤖 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.

🤝 Contributing

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature-name).
  3. Commit your changes (git commit -m "Add feature-name").
  4. Push to the branch (git push origin feature-name).
  5. Open a Pull Request.

📜 License

This project is licensed under the MIT License. See the LICENSE file for more details.

About

BrainyPath is an online learning platform built with the MERN stack, offering a seamless experience for users to browse and enroll in courses. It’s designed to provide a modern e-learning experience similar to Udemy, with features such as instructor profit management, smooth course navigation, and a user-friendly interface

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published