Skip to content

viv756/mentorly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

167 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ Mentorly – AI-Powered Barter-Based Mentoring Platform

Mentorly is a full-stack AI-powered mentoring platform built on a barter-based learning ecosystem, where users can both teach and learn through structured 1:1 sessions. The platform supports unified role switching, AI-driven mentor discovery, real-time video call, and a gamified badge system to encourage active participation.


πŸ“Œ Table of Contents


✨ Features

  • πŸ”„ Unified Role Switching
    IUsers can seamlessly switch between Mentor and Learner roles without creating separate accounts.

  • 🀝 Barter-Based Learning Ecosystem
    Teach a skill to earn learning credits and use them to book sessions with other mentors.

  • 🧠 AI-Driven Mentor Discovery
    Intelligent mentor recommendations powered by AI based on:

    • Skills
    • Learning goals
    • Experience level
    • Session feedback
  • πŸ“… 1:1 Session Management

    • Book mentoring sessions
    • Accept/Reject requests
    • Track session history
    • Leave structured feedback
  • πŸ… Gamified Badge System
    Achievement badges awarded based on:

    • Completed sessions
    • Positive feedback
    • Community participation
  • πŸ’¬ Real-Time Communication
    Live chat between mentors and learners for seamless coordination.

  • πŸ“Š Admin Dashboard

    • Manage users
    • Monitor sessions
    • View engagement metrics
    • Moderate platform activity
  • πŸ” Advanced Search
    Search mentors by:

    • Skill
    • Rating
    • Experience
    • Availability

πŸ›  Tech Stack

Frontend

  • React.js
  • Redux Toolkit / Zustand
  • Tailwind CSS
  • ShadCN UI

Backend

  • Node.js
  • Express.js
  • REST APIs

Database

  • MongoDB (Mongoose)

AI

  • Google Gemini AI (mentor discovery & recommendations)

Real-Time

  • Socket.IO

Queue System

  • BullMQ
  • Redis (Badge processing & async tasks)

DevOps

  • Docker
  • Docker Compose

Deployment

  • Render / Vercel

πŸ— Architecture Overview

The platform follows a modular MVC architecture:

  • Controllers β†’ Handle API requests
  • Services β†’ Business logic & AI integrations
  • Models β†’ MongoDB schemas
  • Routes β†’ API endpoints
  • Middleware β†’ Auth & error handling
  • Queue Workers β†’ Badge processing & async tasks

πŸ“‹ Prerequisites

  • Node.js (v16 or higher)
  • npm or yarn
  • MongoDB (local or cloud)
  • Openrouter API key

πŸš€ Installation

Clone the repository

git clone https://github.com/viv756/mentorly.git
cd mentorly

Install dependencies

Backend

cd server
npm install

Frontend

cd client
npm install

βš™οΈ Configuration

Create a .env file in both backend and frontend directories.

Backend .env

PORT=8000
NODE_ENV=development

MONGO_URI=your_mongodb_url

JWT_ACCESS_SECRET=secret
JWT_REFRESH_SECRET=secret

FRONTEND_ORIGIN=http://localhost:5173

OPEN_ROUTER_API_KEY=openrouterkey

CLOUDINARY_CLOUD_NAME=cloudinary_name
CLOUDINARY_API_KEY=cloudinary_api_key
CLOUDINARY_API_SECRET=cloudinary_api_secret

AGORA_APP_ID=agora_app_id
AGORA_APP_CERTIFICATE=agora_app_certificate

REDIS_URL=redis_url

Frontend .env

VITE_API_BASE_URL=http://localhost:8000


πŸ’» Usage

Development

Start Backend

npm run dev

Start Frontend

npm run dev


🐳 Docker Support

Mentorly supports Dockerized development and deployment, making setup consistent and environment-independent.

Prerequisites

  • Docker
  • Docker Compose

Run the Project Using Docker

docker-compose up --build

This will start:

  • Frontend (React)
  • Backend (Node.js / Express)
  • MongoDB

Stop Containers

docker-compose down
| Service  | Description              | Port  |
| -------- | ------------------------ | ----- |
| frontend | React Application        | 5173  |
| backend  | Express API              | 8000  |
| mongodb  | MongoDB Database         | 27017 |
| redis    | Redis (BullMQ Queue)     | 6379  |

πŸ“ Project Structure

mentorly/
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ controllers/        # API controllers
β”‚   β”œβ”€β”€ routes/             # Route definitions
β”‚   β”œβ”€β”€ models/             # Mongoose schemas
β”‚   β”œβ”€β”€ services/           # Business logic & AI logic
β”‚   β”œβ”€β”€ middleware/         # Auth & error handling
β”‚   β”œβ”€β”€ queues/             # BullMQ queue definitions
β”‚   β”œβ”€β”€ workers/            # Queue workers (badge processing)
β”‚   └── server.js           # Entry point
β”‚
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ components/         # Reusable UI components
β”‚   β”œβ”€β”€ pages/              # Route-level components
β”‚   β”œβ”€β”€ store/              # State management
β”‚   β”œβ”€β”€ hooks/              # Custom hooks
β”‚   └── main.jsx            # Entry point
β”‚
β”œβ”€β”€ docker-compose.yml
β”œβ”€β”€ .env.example
└── README.md

πŸ… Queue & Badge Processing

  • The platform uses BullMQ + Redis for asynchronous badge processing:
  • When a session is completed:
  • A job is added to the queue
  • Worker processes achievements
  • Badge is awarded if criteria is met
  • User is notified in real-time
  • This ensures:
  • Non-blocking API responses
  • Scalable background processing
  • Clean separation of concerns

🀝 Contributing

  1. Fork the project
  2. Create your feature branch
git checkout -b feature/AmazingFeature
  1. Commit your changes
git commit -m "Add AmazingFeature"
  1. Push to the branch
git push origin feature/AmazingFeature
  1. Open a Pull Request

πŸ“§ Contact

Vivek

GitHub: https://github.com/viv756

Project Live Link: πŸ‘‰ https://mentorly-u5qn.onrender.com/

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages