🚀 Live Demo | 📖 Documentation | 🛠️ Installation
LearningSphere is a feature-rich, full-stack learning management platform that connects learners with tutors through personalized matching, gamified progress tracking, and comprehensive session management. Built with modern web technologies and designed for scalability, it features an advanced assessment system with sectional exams, adaptive practice sessions, and AI-powered performance analytics.
- AI-Powered Matching: Smart learner-tutor pairing based on skills, interests, and availability
- Real-time Sessions: Live video/audio sessions with screen sharing capabilities
- Progress Tracking: Comprehensive analytics with XP, badges, and level progression
- Gamification: Achievement system with leaderboards and streak tracking
- Sectional Exams: Multi-difficulty testing with adaptive progression
- Practice Sessions: Adaptive learning with real-time feedback
- Intelligent Questions: Bloom's Taxonomy-based question management
- Performance Analytics: Detailed insights with graphs and predictions
- Role-based Access: Separate dashboards for learners, tutors, and admins
- Profile Management: Comprehensive user profiles with skills and interests
- Secure Authentication: JWT-based auth with Google reCAPTCHA integration
- Email Notifications: Automated reminders and achievement notifications
- Interactive Dashboards: Real-time progress visualization
- Custom Reports: Downloadable PDF/CSV reports
- Performance Prediction: AI-driven future performance forecasting
- Comparative Analysis: Peer comparison and personal best tracking
graph TB
%% User Roles
subgraph "👥 User Roles"
Learner[👨🎓 Learner]
Tutor[👨🏫 Tutor]
Admin[👑 Admin]
end
%% Frontend Layer
subgraph "🎨 Frontend Layer"
React[React 18.3.1<br/>Vite + Tailwind CSS]
Router[React Router<br/>Client-side Routing]
SocketClient[Socket.io Client<br/>Real-time Communication]
Axios[Axios<br/>HTTP Client]
end
%% Backend Layer
subgraph "⚙️ Backend Layer"
Express[Express.js<br/>REST API Server]
Auth[JWT Authentication<br/>Google reCAPTCHA]
SocketServer[Socket.io Server<br/>WebSocket Handling]
Middleware[CORS, Rate Limiting,<br/>Security Middleware]
end
%% Database Layer
subgraph "🗄️ Database Layer"
MongoDB[(MongoDB<br/>Mongoose ODM)]
Models[User, Session, Progress,<br/>Exam, Question Models]
end
%% External Services
subgraph "🔗 External Services"
Cloudinary[Cloudinary<br/>File Storage]
Email[Nodemailer<br/>Email Service]
Gemini[Google Gemini AI<br/>Smart Matching]
end
%% Connections
Learner --> React
Tutor --> React
Admin --> React
React --> Router
React --> SocketClient
React --> Axios
Axios --> Express
SocketClient --> SocketServer
Express --> Auth
Express --> Middleware
Express --> SocketServer
Express --> MongoDB
SocketServer --> MongoDB
MongoDB --> Models
Express --> Cloudinary
Express --> Email
Express --> Gemini
%% Styling
classDef userClass fill:#e1f5fe,stroke:#01579b,stroke-width:2px
classDef frontendClass fill:#f3e5f5,stroke:#4a148c,stroke-width:2px
classDef backendClass fill:#e8f5e8,stroke:#1b5e20,stroke-width:2px
classDef databaseClass fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef externalClass fill:#fce4ec,stroke:#880e4f,stroke-width:2px
class Learner,Tutor,Admin userClass
class React,Router,SocketClient,Axios frontendClass
class Express,Auth,SocketServer,Middleware backendClass
class MongoDB,Models databaseClass
class Cloudinary,Email,Gemini externalClass
sequenceDiagram
participant U as User
participant F as Frontend (React)
participant B as Backend (Express)
participant DB as MongoDB
participant S as Socket.io
participant C as Cloudinary
participant E as Email Service
%% Authentication Flow
U->>F: Login/Register Request
F->>B: POST /api/auth/login
B->>DB: Validate User Credentials
DB-->>B: User Data
B-->>F: JWT Token + User Info
F-->>U: Dashboard Access
%% Session Creation Flow
U->>F: Create Live Session
F->>B: POST /api/sessions
B->>DB: Save Session Data
DB-->>B: Session Created
B->>S: Emit session-created event
S-->>F: Real-time notification
F-->>U: Session Created
%% File Upload Flow
U->>F: Upload Profile Picture
F->>B: POST /api/upload (multipart)
B->>C: Upload to Cloudinary
C-->>B: File URL
B->>DB: Save URL to User Profile
DB-->>B: Profile Updated
B-->>F: Success Response
F-->>U: Profile Updated
%% Real-time Communication
U->>F: Join Video Session
F->>S: join-session event
S->>B: Handle room joining
B->>DB: Update session participants
S-->>F: Room joined confirmation
F-->>U: Video interface ready
%% Progress Tracking
U->>F: Complete Practice Session
F->>B: POST /api/progress
B->>DB: Update progress metrics
DB-->>B: Progress saved
B->>E: Send achievement email
B-->>F: Progress updated
F-->>U: Achievement notification
graph TD
subgraph "🎯 Core Components"
App[App.jsx<br/>Main Application]
Router[Router<br/>Route Management]
AuthProvider[Auth Context<br/>State Management]
end
subgraph "📱 Pages"
AuthPages[Auth Pages<br/>Login, Register, Profile]
DashboardPages[Dashboard Pages<br/>Learner, Tutor, Admin]
SessionPages[Session Pages<br/>Create, Join, Manage]
ProgressPages[Progress Pages<br/>Analytics, Reports]
end
subgraph "🧩 Reusable Components"
Header[Header.jsx<br/>Navigation Bar]
Footer[Footer.jsx<br/>Site Footer]
Sidebar[Sidebar Components<br/>Navigation Menus]
Forms[Form Components<br/>Input, Select, etc.]
end
subgraph "🔧 Utilities"
API[API Config<br/>Endpoint Management]
Utils[Utility Functions<br/>Helpers, Constants]
Hooks[Custom Hooks<br/>Data Fetching, Auth]
end
subgraph "📊 Data Visualization"
Charts[Recharts<br/>Progress Charts]
Reports[PDF/CSV Export<br/>Report Generation]
end
%% Connections
App --> Router
App --> AuthProvider
Router --> AuthPages
Router --> DashboardPages
Router --> SessionPages
Router --> ProgressPages
AuthPages --> Forms
DashboardPages --> Sidebar
SessionPages --> Header
ProgressPages --> Charts
AuthPages --> API
DashboardPages --> API
SessionPages --> API
ProgressPages --> API
API --> Utils
Charts --> Hooks
Reports --> Utils
%% Styling
classDef coreClass fill:#bbdefb,stroke:#1976d2,stroke-width:2px
classDef pageClass fill:#c8e6c9,stroke:#388e3c,stroke-width:2px
classDef componentClass fill:#fff3e0,stroke:#f57c00,stroke-width:2px
classDef utilClass fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef dataClass fill:#fce4ec,stroke:#c2185b,stroke-width:2px
class App,Router,AuthProvider coreClass
class AuthPages,DashboardPages,SessionPages,ProgressPages pageClass
class Header,Footer,Sidebar,Forms componentClass
class API,Utils,Hooks utilClass
class Charts,Reports dataClass
erDiagram
User ||--o{ Session : creates
User ||--o{ LiveSession : participates
User ||--o{ Progress : tracks
User ||--o{ Review : writes
User ||--o{ Match : matches
User ||--o{ Contact : submits
Session ||--o{ LiveSession : contains
Session ||--o{ Progress : generates
Exam ||--o{ Question : contains
Exam ||--o{ PracticeSession : used_in
PracticeSession ||--o{ Progress : creates
User {
string _id PK
string name
string email
string password
string role "learner|tutor|admin"
string profilePicture
object skills
object interests
date createdAt
date updatedAt
}
Session {
string _id PK
string title
string description
string tutorId FK
string learnerId FK
date scheduledAt
string status "scheduled|completed|cancelled"
string meetingLink
date createdAt
}
LiveSession {
string _id PK
string sessionId FK
array participants
object chatHistory
boolean isRecording
date startedAt
date endedAt
}
Progress {
string _id PK
string userId FK
string sessionId FK
number score
object metrics
object achievements
date recordedAt
}
Exam {
string _id PK
string title
string description
array sections
object settings
date createdAt
}
Question {
string _id PK
string examId FK
string type "multiple-choice|essay|code"
string difficulty "easy|medium|hard"
object content
object answer
string bloomLevel
}
Review {
string _id PK
string reviewerId FK
string revieweeId FK
number rating
string comment
date createdAt
}
Match {
string _id PK
string learnerId FK
string tutorId FK
number compatibilityScore
object matchCriteria
date createdAt
}
graph TB
subgraph "🌐 Production Environment"
LoadBalancer[Load Balancer<br/>Nginx/HAProxy]
FrontendApp[Frontend App<br/>Static Files]
BackendApp[Backend App<br/>Node.js Server]
WebSocket[WebSocket Server<br/>Socket.io]
end
subgraph "☁️ Cloud Infrastructure"
CDN[CDN<br/>Cloudflare/AWS CloudFront]
ObjectStorage[Object Storage<br/>AWS S3/Cloudinary]
Database[(Managed Database<br/>MongoDB Atlas)]
EmailService[Email Service<br/>SendGrid/Mailgun]
end
subgraph "🔒 Security & Monitoring"
Firewall[Web Application Firewall<br/>Cloudflare/AWS WAF]
Monitoring[Application Monitoring<br/>New Relic/DataDog]
Logging[Centralized Logging<br/>ELK Stack]
Backup[Automated Backups<br/>Database Snapshots]
end
%% Connections
LoadBalancer --> FrontendApp
LoadBalancer --> BackendApp
BackendApp --> WebSocket
FrontendApp --> CDN
BackendApp --> Database
BackendApp --> ObjectStorage
BackendApp --> EmailService
Firewall --> LoadBalancer
Monitoring --> BackendApp
Monitoring --> Database
Logging --> BackendApp
Backup --> Database
%% Styling
classDef prodClass fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
classDef cloudClass fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
classDef securityClass fill:#fff3e0,stroke:#ef6c00,stroke-width:2px
class LoadBalancer,FrontendApp,BackendApp,WebSocket prodClass
class CDN,ObjectStorage,Database,EmailService cloudClass
class Firewall,Monitoring,Logging,Backup securityClass
- React 18.3.1 - Modern component-based UI
- Vite - Lightning-fast build tool and dev server
- Tailwind CSS 4.1.13 - Utility-first CSS framework
- React Router Dom 6.30.1 - Client-side routing
- Socket.io Client 4.8.1 - Real-time communication
- Lucide React - Modern icon library
- Axios - HTTP client for API calls
- Node.js & Express 4.18.2 - Server framework
- MongoDB & Mongoose 7.5.0 - Database & ODM
- Socket.io 4.7.2 - Real-time bidirectional communication
- JWT (jsonwebtoken 9.0.2) - Authentication & authorization
- BCrypt.js - Password hashing
- Nodemailer 6.9.7 - Email service integration
- Cloudinary - File upload and media management
- Multer - File upload middleware
- Helmet - Security middleware
- ✅ Secure Registration with email validation
- ✅ Encrypted Password Storage using BCrypt
- ✅ JWT-based Authentication with token persistence
- ✅ Email Verification System with automatic frontend redirect and notification
- ✅ Password Reset Functionality with secure token generation
- ✅ Role-based Access Control (Admin, Tutor, Learner)
- ✅ Profile Management with interests, skills, and location
- ✅ Account Status Management (verified/unverified)
- 🔒 Google reCAPTCHA Integration - Advanced bot protection for login forms
- 🎓 Learner Role: Access to sessions, progress tracking, matching
- 👨🏫 Tutor Role: Session creation, learner management, analytics
- 🔧 Admin Role: System-wide management, user oversight, badge assignment
- 🔄 Role Switching: Dynamic role changes with proper authorization
- ✅ Skill-based Matching Algorithm - Matches based on tutor expertise and learner needs
- ✅ Interest Compatibility Scoring - Considers shared interests and learning preferences
- ✅ Location-aware Matching - Geographic proximity consideration
- ✅ Availability Synchronization - Time zone and schedule compatibility
- ✅ Learning Style Compatibility - Visual, auditory, kinesthetic matching
- ✅ Experience Level Matching - Beginner, intermediate, advanced level pairing
- ✅ Success Rate Analytics - Historical performance-based recommendations
- ✅ Preference Learning - System learns from past successful matches
- 🎯 Multi-criteria Scoring - Comprehensive compatibility assessment
- 📊 Match Confidence Rating - Percentage-based match quality indicator
- 🔄 Dynamic Re-matching - Continuous optimization based on feedback
- 📈 Performance-based Adjustments - Algorithm improves over time
- ✅ Regular Sessions - One-on-one tutor-learner sessions
- ✅ Live Group Sessions - Multi-participant real-time sessions
- ✅ Scheduled Sessions - Pre-planned time-based sessions
- ✅ Instant Sessions - On-demand immediate sessions
- ✅ Video & Audio Sessions - Flexible communication modes
- ✅ Recording Capabilities - Session recording with Cloudinary storage
- 🕐 Smart Scheduling - Automated time conflict detection
- 📧 Email Reminders - 30-minute pre-session notifications
- 🔗 Meeting Link Generation - Automatic WebRTC room creation
- 👥 Participant Management - Join/leave tracking
- 📊 Session Analytics - Duration, participation, and effectiveness metrics
- 🎥 Media Upload - Recording upload and management
- 💬 Real-time Chat - In-session messaging system
- 📅 Scheduled - Future planned sessions
- 🔴 Live - Currently active sessions
- ✅ Completed - Finished sessions with recordings
- ❌ Cancelled - Cancelled sessions with notifications
- 🌱 Noobie Badge - Automatic award on registration (0 XP, +50 XP reward)
- 🐦 Early Bird Badge - Awarded at 500 XP (+100 XP reward)
- 🎓 Expert Badge - Awarded at 2000 XP (+200 XP reward)
- 👑 Master Badge - Awarded at 5000 XP (+500 XP reward)
- 🎯 First Steps Badge - Complete first session (+25 XP reward)
- ⚡ Session Warrior Badge - Complete 10 sessions (+150 XP reward)
- 🏆 Session Champion Badge - Complete 50 sessions (+300 XP reward)
- 📺 Live Enthusiast Badge - Attend 5 live sessions (+100 XP reward)
- 🔥 Consistent Learner Badge - 7-day learning streak (+200 XP reward)
- ⏰ Time Master Badge - 100+ learning hours (+400 XP reward)
- ✅ Registration Reward - 50 XP (Noobie badge)
- ✅ Session Joining - 100 XP per regular session
- ✅ Live Session Bonus - 150 XP per live session (100 + 50 bonus)
- ✅ Session Completion - 50 XP + time-based XP (25 XP per hour)
- ✅ Badge Rewards - Variable XP from badge achievements
- ✅ Level Progression - 1000 XP per level advancement
- 📊 Detailed Statistics - Sessions, hours, XP, levels, badges
- 📈 Performance Analytics - Progress over time
- 🏅 Achievement Milestones - Major progress markers
- 📱 Real-time Updates - Instant progress reflection
- 🔥 Streak Tracking - Daily learning streaks with longest streak records
- 🥇 Global Rankings - XP-based user rankings
- 📊 Multiple Leaderboards - Sessions, XP, badges, hours
- 🎯 Category Filtering - Learners vs Tutors rankings
- 📈 Historical Tracking - Progress over time visualization
- 📚 Multi-Section Testing - Comprehensive exams divided into difficulty-based sections
- 🎯 Adaptive Difficulty - Very Easy → Easy → Moderate → Difficult progression
- ⏱️ Time-Bound Sections - 30-minute timer per section with automatic progression
- 📊 Section-wise Analytics - Individual performance tracking per difficulty level
- ✅ Pass/Fail Criteria - 40% accuracy threshold per section to advance
- 🔄 Section Switching - Manual navigation between completed sections
- 🏆 XP Rewards - 50 XP per successfully completed section
- 📈 Performance Prediction - AI-driven difficulty adjustment based on user performance
- 🎮 Adaptive Learning - Dynamic question difficulty based on user performance
- 📊 Real-time Feedback - Instant correctness indication and explanations
- ⏰ Flexible Timing - 60-minute default sessions with customizable duration
- 📈 Performance Analytics - Detailed accuracy tracking and improvement metrics
- 🎯 Smart Question Selection - Algorithm-based question curation
- 💰 XP Earning - 10 XP per correct answer in practice sessions
- 📚 Question Bank - Extensive database with categorized questions
- 📊 Progress Tracking - Historical practice session performance
- 🏷️ Advanced Tagging System - Subject-based and topic-specific categorization
- 📊 Question Statistics - Success rates, attempt counts, and difficulty metrics
- 🎯 Bloom's Taxonomy Integration - Cognitive level classification (Remember, Understand, Apply, Analyze, Evaluate, Create)
- 🔄 Dynamic Difficulty Adjustment - Real-time question difficulty modification
- 📈 Performance-based Adaptation - Question selection based on user proficiency
- ✅ Answer Validation - Automated correctness checking with detailed explanations
- 📊 Question Analytics - Usage statistics and performance insights
- 👨🏫 Tutor Question Management - Authorized tutors can create and manage questions
- 📊 Performance Prediction - Machine learning-based future performance forecasting
- 📈 Detailed Graphs - Interactive charts for XP growth, exam performance, and learning trends
- 🎯 Personalized Recommendations - AI-driven study suggestions and improvement areas
- 📚 Subject-wise Analysis - Performance breakdown by topics and difficulty levels
- 📈 Progress Visualization - Multi-dimensional progress tracking with historical data
- 🎯 Weakness Identification - Automated detection of knowledge gaps
- 📋 Custom Reports - Downloadable PDF and CSV reports with comprehensive analytics
- 📊 Comparative Analysis - Performance comparison with peers and personal bests
- 🏆 Dynamic Badge System - 10+ achievement badges with XP rewards
- 📊 Level Progression - 1000 XP per level with visual progress indicators
- 🔥 Streak Tracking - Daily learning streaks with longest streak records
- 🥇 Global Leaderboards - Real-time rankings with multiple categories
- 📈 XP Visualization - Interactive charts showing experience point growth
- 🎯 Achievement Milestones - Major progress markers and celebrations
- 📱 Real-time Updates - Instant progress reflection and badge notifications
- 🎨 Customizable Profiles - Personalized user dashboards with achievement showcases
- ✅ User Overview - Complete user statistics and management
- ✅ Role Management - Assign/modify user roles
- ✅ Account Status Control - Enable/disable accounts
- ✅ Profile Verification - Manual verification process
- ✅ User Analytics - Registration trends, activity patterns
- 📊 Session Statistics - Total sessions, completion rates
- 🕐 Session Monitoring - Real-time session tracking
- 📈 Performance Metrics - Success rates, duration analysis
- 🔍 Session Search - Advanced filtering and search capabilities
- 🏆 Manual Badge Assignment - Admin-awarded special badges
- 📊 Badge Statistics - Distribution and earning analytics
- 👥 User Badge Management - View and manage user badges
- 📈 Badge Performance - Badge engagement and motivation analytics
- 🎨 Custom Badge Creation - Create special administrative badges
- 📈 User Growth Metrics - Registration and retention analytics
- 📊 Engagement Statistics - Session participation, completion rates
- 💰 Revenue Analytics - Financial performance tracking
- 🎯 Matching Efficiency - Matching algorithm performance
- 📱 Platform Usage - Feature adoption and usage patterns
- ✅ Real-time Session Updates - Live session status changes
- ✅ Instant Messaging - In-session chat functionality
- ✅ Participant Tracking - Join/leave notifications
- ✅ Status Broadcasting - User online/offline status
- ✅ Notification System - Real-time alerts and updates
- 🎥 Video Calling - Peer-to-peer video communication
- 🎤 Audio Calling - Voice-only session support
- 📱 Screen Sharing - Educational content sharing
- 🔧 Connection Management - Automatic reconnection handling
- ✅ Welcome Emails - Account verification with branded templates
- ✅ Session Reminders - 30-minute advance notifications
- ✅ Password Reset - Secure password recovery emails
- ✅ Session Confirmations - Booking confirmations with details
- ✅ Cancellation Notices - Session cancellation notifications
- ✅ Achievement Notifications - Badge and milestone celebrations
- 🎨 Responsive Design - Mobile-friendly email templates
- 📧 SMTP Integration - Gmail and custom SMTP support
- ✅ Delivery Tracking - Email sent/delivered status
- 🔄 Automated Sending - Scheduled and triggered emails
- 📱 Mobile-first Approach - Optimized for all devices
- 🖥️ Desktop Optimization - Full-featured desktop experience
- 📱 Tablet Support - Optimized tablet interface
- 🌓 Modern UI Components - Consistent design language
- 🧭 Intuitive Navigation - Clear menu structure
- 🔒 Protected Routes - Role-based access control
- 📊 Dynamic Dashboards - Personalized user dashboards
- 🔍 Advanced Search - Multi-criteria search functionality
- 📊 Charts & Graphs - Progress visualization
- 🎯 Interactive Forms - Real-time validation
- 🔔 Notification System - In-app notifications
- 🎨 Icon Integration - Lucide React icon library
- 📈 XP Progression - Experience points over time with interactive line charts
- 🏅 Badge Collection - Earned badges showcase with achievement timelines
- 📊 Session Statistics - Completed sessions, hours, and performance metrics
- 🎯 Goal Tracking - Personal learning goals with progress indicators
- 🔥 Streak Visualization - Learning streak calendar with longest streak records
- 📱 Mobile Progress View - Progress on-the-go with responsive design
- 📊 Performance Prediction - AI-driven forecasting of future performance trends
- 📈 Detailed Analytics - Comprehensive graphs showing learning patterns and improvements
- 📊 Interactive Charts - Recharts-powered visualizations for XP growth, exam scores, and activity trends
- 🎯 Subject Performance Analysis - Detailed breakdown by topics with accuracy percentages
- 📈 Score Distribution Graphs - Visual representation of performance across different ranges
- 📊 Badge Distribution Charts - Pie charts showing achievement categories
- 📈 Time-based Progress Tracking - Historical data visualization over 30-day periods
- 🎯 Weakness Detection - Automated identification of knowledge gaps and improvement areas
- 📋 Custom Report Generation - Downloadable PDF and CSV reports with comprehensive data
- 📊 Comparative Analytics - Performance comparison with personal bests and peer averages
- 👥 Student Overview - Managed learner statistics and progress tracking
- 📊 Session Analytics - Teaching session metrics with detailed performance data
- 💰 Earnings Tracking - Revenue and payment history with financial analytics
- ⭐ Rating & Reviews - Student feedback compilation with sentiment analysis
- 📈 Performance Trends - Teaching effectiveness metrics over time
- 📊 Student Progress Monitoring - Individual learner advancement tracking
- 🎯 Custom Recommendations - AI-suggested teaching strategies based on student performance
- 📈 Engagement Analytics - Student participation and interaction metrics
- 🌍 Platform Statistics - System-wide metrics and usage patterns
- 📊 User Engagement - Activity and retention rates with trend analysis
- 🎯 Matching Success - Algorithm performance metrics and success rates
- 📈 Growth Metrics - User acquisition and retention with predictive modeling
- 📊 Performance Insights - Comprehensive analytics for platform optimization
- 🎯 Learning Effectiveness - Measurement of educational outcomes and improvements
- 🗃️ MongoDB Collections:
- Users - Authentication and profile data
- Sessions - Session information and metadata
- LiveSessions - Real-time session data
- Progress - XP, badges, and achievements
- Reviews - Feedback and rating system
- Matches - Matching algorithm results
- Questions - Intelligent question bank with statistics
- PracticeSession - Adaptive practice exam tracking
- Exam - Comprehensive exam management
- 🔗 RESTful API Design - Standard HTTP methods
- 🔐 JWT Authentication - Secure API access
- 📊 Comprehensive Endpoints:
- Authentication routes (
/api/auth) - User management (
/api/users) - Session operations (
/api/sessions) - Progress tracking (
/api/progress) - Matching system (
/api/matching) - Review system (
/api/reviews) - Admin operations (
/api/admin) - Contact system (
/api/contact) - Exam Management (
/api/exams) - Full exam lifecycle management - Practice Sessions (
/api/practice) - Adaptive practice exam system - Question Bank (
/api/questions) - Intelligent question management - Reports & Analytics (
/api/reports) - Comprehensive reporting system
- Authentication routes (
- 🔒 Password Encryption - BCrypt hashing
- 🛡️ Helmet Security - HTTP security headers
- 🚫 CORS Configuration - Cross-origin request handling
- 🔐 JWT Token Management - Secure authentication
- ✅ Input Validation - Request data validation
- 🔄 Rate Limiting - API abuse prevention
- ☁️ Cloudinary Integration - Image and video storage
- 📁 Multer Middleware - File upload handling
- 🎥 Recording Storage - Session recording management
- 🖼️ Profile Pictures - User avatar management
- 🧠 Machine Learning Ready - Extensible for ML integration
- 📊 Multi-factor Scoring - Comprehensive compatibility analysis
- 🔄 Continuous Learning - Algorithm improvement over time
- 🎯 Success Rate Optimization - Performance-based adjustments
- 🔔 Real-time Notifications - Instant updates via Socket.io
- 📧 Email Notifications - Important event alerts
- 🔕 Notification Preferences - User-controlled notification settings
- 📱 Push Notification Ready - Future mobile app integration
- ⭐ 5-Star Rating System - Comprehensive feedback
- 💬 Detailed Reviews - Text-based feedback
- 📊 Rating Analytics - Performance tracking
- 🎯 Improvement Insights - Constructive feedback analysis
- 🔄 Hot Reloading - Vite development server
- 🐛 Debugging Tools - Comprehensive error handling
- 📝 Code Linting - ESLint integration
- 🧪 Testing Ready - Test framework integration ready
- ⚡ Performance Optimization - Efficient bundle sizes
- 🔒 Security Hardening - Production security measures
- 📊 Monitoring Ready - Application performance monitoring
- 🚀 Scalability Prepared - Horizontal scaling architecture
- 📱 Mobile Optimization - Touch-friendly interfaces
- 📱 Progressive Web App Ready - PWA capabilities
- 🖥️ Desktop Experience - Full-featured desktop UI
- 📱 Tablet Optimization - Medium-screen experiences
- 🔌 Plugin Architecture - Modular feature additions
- 🌍 Internationalization Ready - Multi-language support preparation
- 🎨 Theme System - Customizable UI themes
- 📊 Analytics Integration - Third-party analytics ready
- 💳 Payment Gateway Ready - Stripe/PayPal integration prepared
- 📱 Mobile App Integration - React Native compatibility
- 🤖 AI/ML Integration - Machine learning model integration
- 📈 Business Intelligence - Advanced analytics integration
- Node.js (v16 or higher)
- MongoDB (v5.0 or higher)
- NPM or Yarn package manager
cd LearningSphere-backend
npm install
# Configure environment variables in .env file
npm startcd frontend
npm install
npm run dev# Database
MONGODB_URI=mongodb://localhost:27017/LearningSphere
# JWT Secret
JWT_SECRET=your_jwt_secret_key
# Email Configuration
AUTH_EMAIL=your_email@gmail.com
AUTH_PASS=your_email_password
# Cloudinary Configuration
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret-
Clone the repository
git clone https://github.com/Piyush11204/LearningSphere.git cd LearningSphere -
Install dependencies
# Backend cd backend npm install # Frontend cd ../frontend npm install
-
Set up environment variables
- Copy
.env.exampleto.envin the backend directory - Configure your MongoDB, JWT, email, and Cloudinary settings
- Copy
-
Start the development servers
# Backend (Terminal 1) cd backend npm start # Frontend (Terminal 2) cd frontend npm run dev
-
Access the application
- Frontend:
http://localhost:5173 - Backend API:
http://localhost:5000
- Frontend:
- Register as an Admin - First user registered becomes admin
- Create Tutors - Add tutor accounts through admin panel
- Set up Questions - Tutors can add questions to the question bank
- Create Exams - Admins can schedule exams and sectional tests
- Start Learning - Learners can now browse tutors and take exams
- Backend: Deploy to services like Heroku, Railway, or Render
- Frontend: Deploy to Vercel, Netlify, or GitHub Pages
- Database: Use MongoDB Atlas for cloud database
- File Storage: Configure Cloudinary for media uploads
POST /api/auth/register- User registrationPOST /api/auth/login- User loginPOST /api/auth/logout- User logoutGET /api/auth/profile- Get user profile
GET /api/users- Get all users (Admin only)PUT /api/users/:id- Update user profileDELETE /api/users/:id- Delete user (Admin only)
GET /api/sessions- Get all sessionsPOST /api/sessions- Create new sessionGET /api/sessions/:id- Get session detailsPUT /api/sessions/:id- Update sessionDELETE /api/sessions/:id- Delete session
POST /api/matching/find-tutors- Find matching tutorsGET /api/matching/history- Get matching history
GET /api/progress/:userId- Get user progressPOST /api/progress- Update progressGET /api/progress/analytics- Get progress analytics
GET /api/reviews/:tutorId- Get tutor reviewsPOST /api/reviews- Submit reviewPUT /api/reviews/:id- Update review
GET /api/admin/stats- Get platform statisticsGET /api/admin/users- Manage usersGET /api/admin/sessions- Manage sessionsGET /api/admin/contacts- Handle contact messages
join-session- Join a live sessionleave-session- Leave a live sessionsend-message- Send chat messagereceive-message- Receive chat messagestart-video- Start video callend-video- End video call
LearningSphere welcomes contributions! Please read our contributing guidelines and submit pull requests for any improvements.
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
Built with modern web technologies and best practices to create a comprehensive learning management system that scales with your educational needs.
LearningSphere - Empowering learners worldwide through personalized education 🌱📚
- ✅ Secure Registration with email validation
- ✅ Encrypted Password Storage using BCrypt
- ✅ JWT-based Authentication with token persistence
- ✅ Email Verification System with automatic frontend redirect and notification
- ✅ Password Reset Functionality with secure token generation
- ✅ Role-based Access Control (Admin, Tutor, Learner)
- ✅ Profile Management with interests, skills, and location
- ✅ Account Status Management (verified/unverified)
- 🔒 Google reCAPTCHA Integration - Advanced bot protection for login forms
- 🎓 Learner Role: Access to sessions, progress tracking, matching
- 👨🏫 Tutor Role: Session creation, learner management, analytics
- 🔧 Admin Role: System-wide management, user oversight, badge assignment
- 🔄 Role Switching: Dynamic role changes with proper authorization
- ✅ Skill-based Matching Algorithm - Matches based on tutor expertise and learner needs
- ✅ Interest Compatibility Scoring - Considers shared interests and learning preferences
- ✅ Location-aware Matching - Geographic proximity consideration
- ✅ Availability Synchronization - Time zone and schedule compatibility
- ✅ Learning Style Compatibility - Visual, auditory, kinesthetic matching
- ✅ Experience Level Matching - Beginner, intermediate, advanced level pairing
- ✅ Success Rate Analytics - Historical performance-based recommendations
- ✅ Preference Learning - System learns from past successful matches
- 🎯 Multi-criteria Scoring - Comprehensive compatibility assessment
- 📊 Match Confidence Rating - Percentage-based match quality indicator
- 🔄 Dynamic Re-matching - Continuous optimization based on feedback
- 📈 Performance-based Adjustments - Algorithm improves over time
- ✅ Regular Sessions - One-on-one tutor-learner sessions
- ✅ Live Group Sessions - Multi-participant real-time sessions
- ✅ Scheduled Sessions - Pre-planned time-based sessions
- ✅ Instant Sessions - On-demand immediate sessions
- ✅ Video & Audio Sessions - Flexible communication modes
- ✅ Recording Capabilities - Session recording with Cloudinary storage
- 🕐 Smart Scheduling - Automated time conflict detection
- 📧 Email Reminders - 30-minute pre-session notifications
- 🔗 Meeting Link Generation - Automatic WebRTC room creation
- 👥 Participant Management - Join/leave tracking
- 📊 Session Analytics - Duration, participation, and effectiveness metrics
- 🎥 Media Upload - Recording upload and management
- 💬 Real-time Chat - In-session messaging system
- 📅 Scheduled - Future planned sessions
- 🔴 Live - Currently active sessions
- ✅ Completed - Finished sessions with recordings
- ❌ Cancelled - Cancelled sessions with notifications
- 🌱 Noobie Badge - Automatic award on registration (0 XP, +50 XP reward)
- 🐦 Early Bird Badge - Awarded at 500 XP (+100 XP reward)
- 🎓 Expert Badge - Awarded at 2000 XP (+200 XP reward)
- 👑 Master Badge - Awarded at 5000 XP (+500 XP reward)
- 🎯 First Steps Badge - Complete first session (+25 XP reward)
- ⚡ Session Warrior Badge - Complete 10 sessions (+150 XP reward)
- 🏆 Session Champion Badge - Complete 50 sessions (+300 XP reward)
- 📺 Live Enthusiast Badge - Attend 5 live sessions (+100 XP reward)
- 🔥 Consistent Learner Badge - 7-day learning streak (+200 XP reward)
- ⏰ Time Master Badge - 100+ learning hours (+400 XP reward)
- ✅ Registration Reward - 50 XP (Noobie badge)
- ✅ Session Joining - 100 XP per regular session
- ✅ Live Session Bonus - 150 XP per live session (100 + 50 bonus)
- ✅ Session Completion - 50 XP + time-based XP (25 XP per hour)
- ✅ Badge Rewards - Variable XP from badge achievements
- ✅ Level Progression - 1000 XP per level advancement
- 📊 Detailed Statistics - Sessions, hours, XP, levels, badges
- 📈 Performance Analytics - Progress over time
- 🏅 Achievement Milestones - Major progress markers
- 📱 Real-time Updates - Instant progress reflection
- 🔥 Streak Tracking - Daily learning streaks with longest streak records
- 🥇 Global Rankings - XP-based user rankings
- 📊 Multiple Leaderboards - Sessions, XP, badges, hours
- 🎯 Category Filtering - Learners vs Tutors rankings
- 📈 Historical Tracking - Progress over time visualization
- 📚 Multi-Section Testing - Comprehensive exams divided into difficulty-based sections
- 🎯 Adaptive Difficulty - Very Easy → Easy → Moderate → Difficult progression
- ⏱️ Time-Bound Sections - 30-minute timer per section with automatic progression
- 📊 Section-wise Analytics - Individual performance tracking per difficulty level
- ✅ Pass/Fail Criteria - 40% accuracy threshold per section to advance
- 🔄 Section Switching - Manual navigation between completed sections
- 🏆 XP Rewards - 50 XP per successfully completed section
- 📈 Performance Prediction - AI-driven difficulty adjustment based on user performance
- 🎮 Adaptive Learning - Dynamic question difficulty based on user performance
- 📊 Real-time Feedback - Instant correctness indication and explanations
- ⏰ Flexible Timing - 60-minute default sessions with customizable duration
- 📈 Performance Analytics - Detailed accuracy tracking and improvement metrics
- 🎯 Smart Question Selection - Algorithm-based question curation
- 💰 XP Earning - 10 XP per correct answer in practice sessions
- 📚 Question Bank - Extensive database with categorized questions
- 📊 Progress Tracking - Historical practice session performance
- 🏷️ Advanced Tagging System - Subject-based and topic-specific categorization
- 📊 Question Statistics - Success rates, attempt counts, and difficulty metrics
- 🎯 Bloom's Taxonomy Integration - Cognitive level classification (Remember, Understand, Apply, Analyze, Evaluate, Create)
- 🔄 Dynamic Difficulty Adjustment - Real-time question difficulty modification
- 📈 Performance-based Adaptation - Question selection based on user proficiency
- ✅ Answer Validation - Automated correctness checking with detailed explanations
- 📊 Question Analytics - Usage statistics and performance insights
- 👨🏫 Tutor Question Management - Authorized tutors can create and manage questions
- 📊 Performance Prediction - Machine learning-based future performance forecasting
- 📈 Detailed Graphs - Interactive charts for XP growth, exam performance, and learning trends
- 🎯 Personalized Recommendations - AI-driven study suggestions and improvement areas
- � Subject-wise Analysis - Performance breakdown by topics and difficulty levels
- 📈 Progress Visualization - Multi-dimensional progress tracking with historical data
- 🎯 Weakness Identification - Automated detection of knowledge gaps
- 📋 Custom Reports - Downloadable PDF and CSV reports with comprehensive analytics
- 📊 Comparative Analysis - Performance comparison with peers and personal bests
- 🏆 Dynamic Badge System - 10+ achievement badges with XP rewards
- 📊 Level Progression - 1000 XP per level with visual progress indicators
- 🔥 Streak Tracking - Daily learning streaks with longest streak records
- 🥇 Global Leaderboards - Real-time rankings with multiple categories
- 📈 XP Visualization - Interactive charts showing experience point growth
- 🎯 Achievement Milestones - Major progress markers and celebrations
- 📱 Real-time Updates - Instant progress reflection and badge notifications
- 🎨 Customizable Profiles - Personalized user dashboards with achievement showcases
- ✅ User Overview - Complete user statistics and management
- ✅ Role Management - Assign/modify user roles
- ✅ Account Status Control - Enable/disable accounts
- ✅ Profile Verification - Manual verification process
- ✅ User Analytics - Registration trends, activity patterns
- 📊 Session Statistics - Total sessions, completion rates
- 🕐 Session Monitoring - Real-time session tracking
- 📈 Performance Metrics - Success rates, duration analysis
- 🔍 Session Search - Advanced filtering and search capabilities
- 🏆 Manual Badge Assignment - Admin-awarded special badges
- 📊 Badge Statistics - Distribution and earning analytics
- 👥 User Badge Management - View and manage user badges
- 📈 Badge Performance - Badge engagement and motivation analytics
- 🎨 Custom Badge Creation - Create special administrative badges
- 📈 User Growth Metrics - Registration and retention analytics
- 📊 Engagement Statistics - Session participation, completion rates
- 💰 Revenue Analytics - Financial performance tracking
- 🎯 Matching Efficiency - Matching algorithm performance
- 📱 Platform Usage - Feature adoption and usage patterns
- ✅ Real-time Session Updates - Live session status changes
- ✅ Instant Messaging - In-session chat functionality
- ✅ Participant Tracking - Join/leave notifications
- ✅ Status Broadcasting - User online/offline status
- ✅ Notification System - Real-time alerts and updates
- 🎥 Video Calling - Peer-to-peer video communication
- 🎤 Audio Calling - Voice-only session support
- 📱 Screen Sharing - Educational content sharing
- 🔧 Connection Management - Automatic reconnection handling
- ✅ Welcome Emails - Account verification with branded templates
- ✅ Session Reminders - 30-minute advance notifications
- ✅ Password Reset - Secure password recovery emails
- ✅ Session Confirmations - Booking confirmations with details
- ✅ Cancellation Notices - Session cancellation notifications
- ✅ Achievement Notifications - Badge and milestone celebrations
- 🎨 Responsive Design - Mobile-friendly email templates
- 📧 SMTP Integration - Gmail and custom SMTP support
- ✅ Delivery Tracking - Email sent/delivered status
- 🔄 Automated Sending - Scheduled and triggered emails
- 📱 Mobile-first Approach - Optimized for all devices
- 🖥️ Desktop Optimization - Full-featured desktop experience
- 📱 Tablet Support - Optimized tablet interface
- 🌓 Modern UI Components - Consistent design language
- 🧭 Intuitive Navigation - Clear menu structure
- 🔒 Protected Routes - Role-based access control
- 📊 Dynamic Dashboards - Personalized user dashboards
- 🔍 Advanced Search - Multi-criteria search functionality
- 📊 Charts & Graphs - Progress visualization
- 🎯 Interactive Forms - Real-time validation
- 🔔 Notification System - In-app notifications
- 🎨 Icon Integration - Lucide React icon library
- 📈 XP Progression - Experience points over time with interactive line charts
- 🏅 Badge Collection - Earned badges showcase with achievement timelines
- 📊 Session Statistics - Completed sessions, hours, and performance metrics
- 🎯 Goal Tracking - Personal learning goals with progress indicators
- 🔥 Streak Visualization - Learning streak calendar with longest streak records
- 📱 Mobile Progress View - Progress on-the-go with responsive design
- 📊 Performance Prediction - AI-driven forecasting of future performance trends
- 📈 Detailed Analytics - Comprehensive graphs showing learning patterns and improvements
- 📊 Interactive Charts - Recharts-powered visualizations for XP growth, exam scores, and activity trends
- 🎯 Subject Performance Analysis - Detailed breakdown by topics with accuracy percentages
- 📈 Score Distribution Graphs - Visual representation of performance across different ranges
- 📊 Badge Distribution Charts - Pie charts showing achievement categories
- 📈 Time-based Progress Tracking - Historical data visualization over 30-day periods
- 🎯 Weakness Detection - Automated identification of knowledge gaps and improvement areas
- 📋 Custom Report Generation - Downloadable PDF and CSV reports with comprehensive data
- 📊 Comparative Analytics - Performance comparison with personal bests and peer averages
- 👥 Student Overview - Managed learner statistics and progress tracking
- 📊 Session Analytics - Teaching session metrics with detailed performance data
- 💰 Earnings Tracking - Revenue and payment history with financial analytics
- ⭐ Rating & Reviews - Student feedback compilation with sentiment analysis
- 📈 Performance Trends - Teaching effectiveness metrics over time
- 📊 Student Progress Monitoring - Individual learner advancement tracking
- 🎯 Custom Recommendations - AI-suggested teaching strategies based on student performance
- 📈 Engagement Analytics - Student participation and interaction metrics
- 🌍 Platform Statistics - System-wide metrics and usage patterns
- 📊 User Engagement - Activity and retention rates with trend analysis
- 🎯 Matching Success - Algorithm performance metrics and success rates
- 📈 Growth Metrics - User acquisition and retention with predictive modeling
- 📊 Performance Insights - Comprehensive analytics for platform optimization
- 🎯 Learning Effectiveness - Measurement of educational outcomes and improvements
- 🗃️ MongoDB Collections:
- Users - Authentication and profile data
- Sessions - Session information and metadata
- LiveSessions - Real-time session data
- Progress - XP, badges, and achievements
- Reviews - Feedback and rating system
- Matches - Matching algorithm results
- Questions - Intelligent question bank with statistics
- PracticeSession - Adaptive practice exam tracking
- Exam - Comprehensive exam management
- 🔗 RESTful API Design - Standard HTTP methods
- 🔐 JWT Authentication - Secure API access
- 📊 Comprehensive Endpoints:
- Authentication routes (
/api/auth) - User management (
/api/users) - Session operations (
/api/sessions) - Progress tracking (
/api/progress) - Matching system (
/api/matching) - Review system (
/api/reviews) - Admin operations (
/api/admin) - Contact system (
/api/contact) - Exam Management (
/api/exams) - Full exam lifecycle management - Practice Sessions (
/api/practice) - Adaptive practice exam system - Question Bank (
/api/questions) - Intelligent question management - Reports & Analytics (
/api/reports) - Comprehensive reporting system
- Authentication routes (
- 🔒 Password Encryption - BCrypt hashing
- 🛡️ Helmet Security - HTTP security headers
- 🚫 CORS Configuration - Cross-origin request handling
- 🔐 JWT Token Management - Secure authentication
- ✅ Input Validation - Request data validation
- 🔄 Rate Limiting - API abuse prevention
- ☁️ Cloudinary Integration - Image and video storage
- 📁 Multer Middleware - File upload handling
- 🎥 Recording Storage - Session recording management
- 🖼️ Profile Pictures - User avatar management
- 🧠 Machine Learning Ready - Extensible for ML integration
- 📊 Multi-factor Scoring - Comprehensive compatibility analysis
- 🔄 Continuous Learning - Algorithm improvement over time
- 🎯 Success Rate Optimization - Performance-based adjustments
- 🔔 Real-time Notifications - Instant updates via Socket.io
- 📧 Email Notifications - Important event alerts
- 🔕 Notification Preferences - User-controlled notification settings
- 📱 Push Notification Ready - Future mobile app integration
- ⭐ 5-Star Rating System - Comprehensive feedback
- 💬 Detailed Reviews - Text-based feedback
- 📊 Rating Analytics - Performance tracking
- 🎯 Improvement Insights - Constructive feedback analysis
- 🔄 Hot Reloading - Vite development server
- 🐛 Debugging Tools - Comprehensive error handling
- 📝 Code Linting - ESLint integration
- 🧪 Testing Ready - Test framework integration ready
- ⚡ Performance Optimization - Efficient bundle sizes
- 🔒 Security Hardening - Production security measures
- 📊 Monitoring Ready - Application performance monitoring
- 🚀 Scalability Prepared - Horizontal scaling architecture
- 📱 Mobile Optimization - Touch-friendly interfaces
- 📱 Progressive Web App Ready - PWA capabilities
- 🖥️ Desktop Experience - Full-featured desktop UI
- 📱 Tablet Optimization - Medium-screen experiences
- 🔌 Plugin Architecture - Modular feature additions
- 🌍 Internationalization Ready - Multi-language support preparation
- 🎨 Theme System - Customizable UI themes
- 📊 Analytics Integration - Third-party analytics ready
- 💳 Payment Gateway Ready - Stripe/PayPal integration prepared
- 📱 Mobile App Integration - React Native compatibility
- 🤖 AI/ML Integration - Machine learning model integration
- 📈 Business Intelligence - Advanced analytics integration
- Node.js (v16 or higher)
- MongoDB (v5.0 or higher)
- NPM or Yarn package manager
cd LearningSphere-backend
npm install
# Configure environment variables in .env file
npm startcd frontend
npm install
npm run dev# Database
MONGODB_URI=mongodb://localhost:27017/LearningSphere
# JWT Secret
JWT_SECRET=your_jwt_secret_key
# Email Configuration
AUTH_EMAIL=your_email@gmail.com
AUTH_PASS=your_email_password
# Cloudinary Configuration
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret-
Clone the repository
git clone https://github.com/Piyush11204/LearningSphere.git cd LearningSphere -
Install dependencies
# Backend cd backend npm install # Frontend cd ../frontend npm install
-
Set up environment variables
- Copy
.env.exampleto.envin the backend directory - Configure your MongoDB, JWT, email, and Cloudinary settings
- Copy
-
Start the development servers
# Backend (Terminal 1) cd backend npm start # Frontend (Terminal 2) cd frontend npm run dev
-
Access the application
- Frontend:
http://localhost:5173 - Backend API:
http://localhost:5000
- Frontend:
- Register as an Admin - First user registered becomes admin
- Create Tutors - Add tutor accounts through admin panel
- Set up Questions - Tutors can add questions to the question bank
- Create Exams - Admins can schedule exams and sectional tests
- Start Learning - Learners can now browse tutors and take exams
- Backend: Deploy to services like Heroku, Railway, or Render
- Frontend: Deploy to Vercel, Netlify, or GitHub Pages
- Database: Use MongoDB Atlas for cloud database
- File Storage: Configure Cloudinary for media uploads
POST /api/auth/register- User registrationPOST /api/auth/login- User loginPOST /api/auth/logout- User logoutGET /api/auth/profile- Get user profile
GET /api/users- Get all users (Admin only)PUT /api/users/:id- Update user profileDELETE /api/users/:id- Delete user (Admin only)
GET /api/sessions- Get all sessionsPOST /api/sessions- Create new sessionGET /api/sessions/:id- Get session detailsPUT /api/sessions/:id- Update sessionDELETE /api/sessions/:id- Delete session
POST /api/matching/find-tutors- Find matching tutorsGET /api/matching/history- Get matching history
GET /api/progress/:userId- Get user progressPOST /api/progress- Update progressGET /api/progress/analytics- Get progress analytics
GET /api/reviews/:tutorId- Get tutor reviewsPOST /api/reviews- Submit reviewPUT /api/reviews/:id- Update review
GET /api/admin/stats- Get platform statisticsGET /api/admin/users- Manage usersGET /api/admin/sessions- Manage sessionsGET /api/admin/contacts- Handle contact messages
join-session- Join a live sessionleave-session- Leave a live sessionsend-message- Send chat messagereceive-message- Receive chat messagestart-video- Start video callend-video- End video call
LearningSphere welcomes contributions! Please read our contributing guidelines and submit pull requests for any improvements.
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
Built with modern web technologies and best practices to create a comprehensive learning management system that scales with your educational needs.
LearningSphere - Empowering learners worldwide through personalized education 🌱📚