Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MentorNet AI

An AI-powered mentorship and career development platform connecting students with alumni mentors.

MentorNet AI bridges the gap between students and experienced alumni through real-time messaging, video calls, AI-driven career guidance, skill gap analysis, and a live network graph — all in one platform.


Tech Stack

Layer Technology
Frontend React 18 + Vite
Styling Tailwind CSS + Inter font
Backend / DB Supabase (PostgreSQL + Auth + Storage + Realtime)
AI Chatbot Google Gemini 2.0 Flash API
Video Calls WebRTC (peer-to-peer) + Supabase signaling
Network Graph Custom SVG renderer

Features

Three Role System

  • Student — Connect with alumni, get career advice, analyze skill gaps
  • Alumni — Mentor students, accept connections, video call with admin
  • Admin — Manage users, approve registrations, oversee the network

Authentication & User Management

  • Email/password registration with role selection (Student / Alumni / Admin)
  • Admin approval workflow — new accounts require admin approval before login
  • Per-tab session isolation (multiple accounts in different browser tabs)
  • Profile completion with avatar upload to Supabase Storage

Dashboards

Student Dashboard

  • Real-time stats: people available, connected count, requests sent/received
  • Browse all users with Connect / Accept / Decline / Message / Profile buttons
  • Quick links to AI Chatbot, Skill Gap Analysis

Alumni Dashboard

  • Tabs: Connection Requests (Accept/Decline) · Connected users (Message/Remove)
  • Find People page — discover unconnected users and send requests
  • Video Call access with connected alumni/admin

Admin Dashboard

  • Platform stats: total users, students, alumni, pending approvals
  • User Management: approve/reject registrations, delete users
  • Connection requests panel with Accept/Decline
  • Quick links: Video Calls, Network Graph

Connection System

  • Send / cancel / accept / decline connection requests
  • Remove existing connections
  • Connections required before messaging or video calling
  • Real-time request notifications (polling + Supabase Realtime)
  • Online status indicator (green dot = active within last 5 minutes)

Messaging (Chat)

  • WhatsApp-style real-time chat between connected users
  • Emoji picker, multi-line input, read receipts (double tick)
  • Message delivery only between accepted connections
  • Conversation list with last message preview and timestamps
  • View Profile button in chat header

Video Calls (Alumni & Admin only)

  • WebRTC peer-to-peer video — no server cost
  • Camera preview before calling
  • Mic toggle, camera toggle, screen share, end call
  • Incoming call notification banner (works on any page)
  • Call duration timer
  • Only available between connected alumni/admin users

AI Career Chatbot (Students)

  • Powered by Google Gemini 2.0 Flash
  • Loaded with the student's full profile + all alumni network data
  • Personalized advice: compares student profile with alumni career paths
  • Recommends specific alumni by name
  • Handles conversational replies (yes/no, greetings) naturally
  • Fallback responses when API key is not configured

Skill Gap Analysis (Students)

  • Extracts skills from all profile fields (bio, department, degree, position, company)
  • Compares student skills against all alumni or filtered by career path
  • Shows missing skills with progress bars sorted by alumni frequency
  • Click any alumni for a direct 1-on-1 comparison
  • Learning resource links for key skills (Python, React, SQL, etc.)
  • Side-by-side profile comparison: university, CGPA, degree, graduation year

Network Graph (Alumni & Admin)

  • Interactive SVG graph of all users and their connections
  • Drag nodes, scroll to zoom, click to pan
  • Color-coded by role: red = admin, orange = alumni, blue = student
  • Click a node to see their profile and all connections in a side panel
  • Filter by role, refresh button
  • "View Full Profile" link from the panel

User Profiles

  • Avatar upload (Supabase Storage)
  • Fields: full name, bio, date of birth, phone, university, department, degree, graduation year, CGPA, company, position, LinkedIn, GitHub
  • Public profile view (/user/:id) — visible to all users
  • Online status shown on profile page
  • Connection actions (Connect / Accept / Message) directly from profile

Find People

  • Students: shows only unconnected users (to discover new people)
  • Alumni: shows unconnected users with Connect button
  • Role filter (All / Student / Alumni / Admin)
  • Search by name, company, or university
  • Online status dot on every card

Database Setup

Run these SQL files in your Supabase SQL Editor in order:

1. users-rls-policy.sql       — RLS policies for the users table
2. chat-schema.sql             — conversations + chat_messages tables
3. connections-schema.sql      — connections table
4. videocall-schema.sql        — video_calls + video_ice_candidates tables
5. add-profile-fields.sql      — date_of_birth, phone_number columns
6. add-profile-fields-2.sql    — linkedin_url, github_url, cgpa, department, degree
7. add-last-seen.sql           — last_seen timestamp for online status
8. create-storage-bucket.sql   — avatars storage bucket + policies
9. fix-alumni-roles.sql        — fix null roles for existing users

Environment Variables

Create a .env file in the project root:

VITE_GEMINI_API_KEY=your_gemini_api_key_here

Get a free Gemini API key at aistudio.google.com.

The Supabase URL and anon key are already configured in src/lib/supabase.js.


Getting Started

# Install dependencies
npm install

# Start development server
npm run dev

# Build for production
npm run build

The app runs at http://localhost:5173 by default.

To share on your local network: http://<your-ip>:5173


Project Structure

src/
├── App.jsx                    # Root router + AdminApp + AdminSidebar
├── apps/
│   ├── alumni/                # Alumni portal (AlumniApp + AlumniDashboard)
│   └── student/               # Student portal (StudentApp + StudentDashboard)
├── components/
│   └── ProtectedRoute.jsx
├── contexts/
│   └── AuthContext.jsx        # Auth state, profile loading, session management
├── lib/
│   └── supabase.js            # Supabase client + dbHelpers
├── pages/
│   ├── AIChatbot.jsx          # Gemini-powered career advisor
│   ├── Chat.jsx               # Real-time messaging
│   ├── Dashboard.jsx          # Admin dashboard
│   ├── FindPeople.jsx         # Discover new connections
│   ├── Login.jsx / Register.jsx
│   ├── NetworkGraph.jsx       # Interactive SVG network
│   ├── Profile.jsx            # Edit own profile
│   ├── SkillGap.jsx           # Skill gap analysis
│   ├── UserProfile.jsx        # View any user's profile
│   └── VideoCall.jsx          # WebRTC video calls
└── shared/
    ├── components/SharedSidebar.jsx
    └── lib/onlineStatus.js    # isOnline() helper

Default Admin Account

Email:    admin@gmail.com
Password: (set during Supabase Auth setup)

License

MIT — free to use and modify.

About

MentorNet AI bridges the gap between students and experienced alumni through real-time messaging, video calls, AI-driven career guidance, skill gap analysis, and a live network graph — all in one platform.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages