A comprehensive, intelligent educational platform designed to revolutionize exam preparation through adaptive learning, gamification, and advanced plagiarism detection.
Features β’ Tech Stack β’ Getting Started β’ Documentation
- Overview
- Features
- Tech Stack
- Getting Started
- Project Structure
- Key Systems
- Documentation
- Contributing
- License
Edusmart+ is a next-generation educational platform that combines adaptive learning algorithms, comprehensive gamification, and intelligent plagiarism detection to create an engaging and effective learning environment for students preparing for competitive exams.
The platform supports multiple examination systems including GATE, JEE, CAT, NEET, and UPSC, providing students with personalized learning paths, real-time progress tracking, and competitive leaderboards.
- π Adaptive Quiz System - Dynamic difficulty adjustment based on student performance
- π Comprehensive Gamification - Streaks, badges, leaderboards, and progress tracking
- π Advanced Plagiarism Detection - Multi-algorithm analysis for assignments
- π Blog Platform - Educational content creation and sharing
- π Analytics Dashboard - Detailed performance insights with interactive charts
- π Firebase Authentication - Secure user management
- π Dark Mode Support - Modern, accessible UI with theme switching
- Smart Question Selection - AI-driven adaptive difficulty based on student performance
- Rating System - Elo-inspired rating calculation for accurate skill assessment
- Category Progression - Dynamic categorization (Low β Medium β Best)
- Multiple Quiz Types - Full syllabus, subject-wise, and topic-wise tests
- Calibration Tests - Initial level assessment for personalized learning paths
- Streak Tracking - Daily quiz completion tracking with visual indicators
- 12 Unique Badges - Achievement system covering accuracy, speed, consistency, and improvement
- Multi-Criteria Leaderboards - Rank by score, accuracy, streak, or badges
- Progress Analytics - Interactive charts showing performance trends
- PDF Export - Professional progress reports with comprehensive statistics
- Multi-Algorithm Analysis - 6 text algorithms + 4 code-specific algorithms
- Assignment Management - Create, submit, and track assignments
- Side-by-Side Comparison - Visual highlighting of similar content
- Automated Flagging - Intelligent threshold-based detection (β₯60% flagged)
- Comprehensive Reports - Detailed PDF reports with algorithm breakdowns
- GATE - Computer Science topics with 24 questions across 5 subjects
- JEE - Physics, Chemistry, Mathematics with 24 questions
- CAT - Quantitative Aptitude, Verbal Ability, Logical Reasoning
- NEET - Biology, Physics, Chemistry for medical entrance
- UPSC - Civil Services preparation materials
- Content Creation - Rich text editor for educational articles
- Category Management - Organized content by topics
- Reading Time Estimation - Automatic calculation
- Responsive Design - Mobile-friendly blog interface
- Modern UI/UX - Clean, intuitive interface built with shadcn/ui
- Dark Mode - System-aware theme switching
- Responsive Design - Optimized for desktop, tablet, and mobile
- Real-time Updates - Instant feedback and progress tracking
- Accessibility - WCAG compliant components
- React 18.3.1 - Modern UI library with hooks and concurrent features
- TypeScript 5.8.3 - Type-safe development
- Vite 5.4.19 - Lightning-fast build tool and dev server
- Tailwind CSS 3.4.17 - Utility-first CSS framework
- shadcn/ui - High-quality, accessible component library
- Radix UI - Unstyled, accessible component primitives
- Lucide React - Beautiful, consistent icon set
- Framer Motion 12.23.24 - Smooth animations and transitions
- React Query (TanStack Query) 5.83.0 - Server state management
- React Context API - Global state for auth and quiz data
- LocalStorage - Client-side data persistence
- React Router DOM 6.30.1 - Declarative routing
- Firebase 12.4.0 - Authentication and user management
- React Hook Form 7.61.1 - Performant form handling
- Zod 3.25.76 - TypeScript-first schema validation
- @hookform/resolvers - Form validation integration
- Recharts 2.15.4 - Composable charting library
- jsPDF 3.0.3 - PDF generation
- jspdf-autotable 5.0.2 - Table generation for PDFs
- ESLint 9.32.0 - Code linting
- TypeScript ESLint - TypeScript-specific linting rules
- Autoprefixer - CSS vendor prefixing
- PostCSS - CSS transformations
Ensure you have the following installed:
- Node.js - Version 18.x or higher
- npm - Version 9.x or higher (or yarn/pnpm)
- Git - For version control
- Clone the repository
git clone https://github.com/AvinashUmrao/edusmartPlus.git
cd edusmartPlus- Install dependencies
npm install- Configure Firebase (Optional - for authentication)
Create a .env file in the root directory:
VITE_FIREBASE_API_KEY=your_api_key
VITE_FIREBASE_AUTH_DOMAIN=your_auth_domain
VITE_FIREBASE_PROJECT_ID=your_project_id
VITE_FIREBASE_STORAGE_BUCKET=your_storage_bucket
VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
VITE_FIREBASE_APP_ID=your_app_id- Start the development server
npm run devThe application will be available at http://localhost:5173
- Build for production
npm run build- Preview production build
npm run preview# Start development server
npm run dev
# Build for production
npm run build
# Build for development (with source maps)
npm run build:dev
# Lint code
npm run lint
# Preview production build
npm run previewEdusmart+/
βββ public/ # Static assets
β βββ favicon.ico
β βββ placeholder.svg
β βββ robots.txt
β
βββ src/
β βββ assets/ # Images and media files
β β βββ blog-*.jpg # Blog post images
β β βββ *.png # UI assets
β β
β βββ components/ # React components
β β βββ blogs/ # Blog system components
β β βββ exam/ # Exam preparation components
β β βββ gamification/ # Badges, streaks, rewards
β β βββ gate/ # GATE-specific components
β β βββ home/ # Homepage components
β β βββ layout/ # Layout components (Footer, etc.)
β β βββ leaderboard/ # Leaderboard components
β β βββ plagiarism/ # Plagiarism detection UI
β β βββ progress/ # Progress tracking components
β β βββ quiz/ # Quiz system components
β β βββ ui/ # shadcn/ui components (50+ components)
β β
β βββ contexts/ # React Context providers
β β βββ AuthContext.tsx # Authentication state
β β βββ QuizContext.tsx # Quiz state management
β β
β βββ data/ # Static data and question banks
β β βββ badges.ts # Badge definitions
β β βββ jeeQuestionBank.ts # JEE questions
β β βββ *.ts # Other data files
β β
β βββ lib/ # Utility functions and libraries
β β βββ gamification.ts # Gamification logic
β β βββ pdfGenerator.ts # PDF export functionality
β β βββ plagiarismDetection.ts # Plagiarism algorithms
β β βββ plagiarismStorage.ts # Storage utilities
β β βββ utils.ts # General utilities
β β
β βββ pages/ # Page components (routes)
β β βββ Home.tsx # Landing page
β β βββ ExamPrep.tsx # Exam preparation hub
β β βββ Gate.tsx # GATE preparation
β β βββ GateQuiz.tsx # GATE quiz interface
β β βββ Jee.tsx # JEE preparation
β β βββ JeeQuiz.tsx # JEE quiz interface
β β βββ Cat.tsx # CAT preparation
β β βββ Neet.tsx # NEET preparation
β β βββ Upsc.tsx # UPSC preparation
β β βββ PlagiarismPage.tsx # Plagiarism detection
β β βββ Blogs.tsx # Blog listing
β β βββ CreateBlog.tsx # Blog creation
β β βββ Auth.tsx # Authentication page
β β βββ LeaderboardPage.tsx # Leaderboard
β β βββ ProgressPage.tsx # Progress tracking
β β βββ NotFound.tsx # 404 page
β β
β βββ types/ # TypeScript type definitions
β β βββ plagiarism.ts # Plagiarism system types
β β
β βββ App.tsx # Main application component
β βββ main.tsx # Application entry point
β βββ index.css # Global styles
β
βββ dist/ # Production build output
βββ .gitignore # Git ignore rules
βββ package.json # Dependencies and scripts
βββ tsconfig.json # TypeScript configuration
βββ vite.config.ts # Vite configuration
βββ tailwind.config.ts # Tailwind CSS configuration
βββ postcss.config.js # PostCSS configuration
βββ eslint.config.js # ESLint configuration
βββ components.json # shadcn/ui configuration
βββ README.md # This file
The adaptive quiz system uses an Elo-inspired rating algorithm to dynamically adjust question difficulty based on student performance:
- Rating Calculation: Students start at 300 rating and progress through Low (100-299), Medium (300-599), and Best (600+) categories
- Question Selection: Questions are selected based on current category and performance
- Performance Tracking: Detailed analytics track accuracy, time taken, and improvement over time
- Multiple Exam Types: Support for GATE, JEE, CAT, NEET, and UPSC with subject-specific question banks
Comprehensive gamification features to enhance student engagement:
Badges (12 types):
- β‘ Fast Learner - Complete 5 quizzes in a day
- π Accuracy King/Queen - Achieve 90%+ accuracy
- π― Perfect Score - Get 100% in any quiz
- π₯ Comeback Champ - Improve by 30%+ after low score
- π Streak Starter - Maintain 3-day streak
- πͺ Week Warrior - Maintain 7-day streak
- π Month Master - Maintain 30-day streak
- π Speed Demon - Complete quiz in under 5 minutes
- π Dedicated Learner - Complete 50 quizzes total
- π Category Climber - Progress from Low to Best category
- π― Consistent Performer - Maintain 75%+ accuracy over 10 quizzes
Leaderboard Features:
- Multi-criteria sorting (Score, Accuracy, Streak, Badges)
- Real-time updates after each quiz
- User position highlighting
- Top 3 special badges (Gold, Silver, Bronze)
Progress Tracking:
- Interactive charts (Line, Pie, Bar)
- Comprehensive statistics dashboard
- Quiz history with detailed logs
- Personalized improvement suggestions
- PDF export for progress reports
Advanced multi-algorithm plagiarism detection for both text and code:
Text Analysis Algorithms:
- Jaccard Similarity - Measures word set overlap
- Cosine Similarity - Calculates document vector angles
- TF-IDF - Weighs term importance across documents
- Levenshtein Distance - Character-level edit distance
- LCS (Longest Common Subsequence) - Finds matching sequences
- Semantic Similarity - Meaning-based similarity detection
Code-Specific Algorithms:
- AST Analysis - Analyzes code structure
- CFG Similarity - Compares program logic flow
- Winnowing Fingerprinting - Creates k-gram fingerprints
- Variable Renaming Detection - Identifies renamed variables
Features:
- Assignment creation and management
- Support for text, code, PDF, and image submissions
- Automated flagging (β₯60% similarity)
- Side-by-side comparison with highlighting
- Comprehensive PDF reports
- Independent from gamification system
Detailed documentation is available for each major system:
- Adaptive Quiz System - Complete guide to the adaptive learning algorithm
- Gamification System - Badges, streaks, leaderboards, and progress tracking
- Plagiarism Detection - Multi-algorithm plagiarism detection system
- JEE System - JEE-specific quiz implementation
- GATE System - GATE quiz system details
- Blog System - Blog creation and management
- Quick Start Guide - Get started quickly
- Navigate to the exam preparation page (e.g.,
/gateor/jee) - Click on the "Quiz" tab
- Select quiz type (Full Syllabus, Subject-wise, or Topic-wise)
- Choose subject and topic (if applicable)
- Start the adaptive quiz
- Answer questions with real-time feedback
- View results with detailed analytics
- Check updated streak, badges, and leaderboard position
- Navigate to
/progress - View comprehensive statistics dashboard
- Analyze performance charts (accuracy trends, category distribution, subject performance)
- Review quiz history
- Read personalized improvement suggestions
- Export PDF report for offline viewing
For Teachers:
- Navigate to
/plagiarismand select "Teacher" role - Create assignments with detailed instructions
- View student submissions
- Run plagiarism analysis (requires β₯2 submissions)
- Review flagged matches and algorithm breakdowns
- Download PDF reports
For Students:
- Navigate to
/plagiarismand select "Student" role - View available assignments
- Submit text or code answers
- Update submissions before deadline
- Track submission status
To enable authentication and data persistence:
- Create a Firebase project at Firebase Console
- Enable Authentication (Email/Password)
- Create a Firestore database
- Copy your Firebase config
- Create a
.envfile with your credentials (see Getting Started)
Theme Customization:
- Edit
tailwind.config.tsfor color schemes - Modify
src/index.cssfor global styles - Update
components.jsonfor shadcn/ui theme
Question Banks:
- Add questions to
src/data/jeeQuestionBank.tsor create new files - Follow the existing question format with difficulty levels
- Update subject and topic arrays
Gamification Settings:
- Modify badge criteria in
src/data/badges.ts - Adjust rating thresholds in
src/lib/gamification.ts - Customize streak requirements
Contributions are welcome! Please follow these guidelines:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow the existing code style and conventions
- Write meaningful commit messages
- Add comments for complex logic
- Test your changes thoroughly
- Update documentation as needed
- Ensure TypeScript types are properly defined
- Follow React best practices and hooks guidelines
- Use TypeScript for all new files
- Follow ESLint rules (run
npm run lint) - Use functional components with hooks
- Implement proper error handling
- Write reusable, modular components
Build Errors:
- Clear
node_modulesand reinstall:rm -rf node_modules package-lock.json && npm install - Ensure Node.js version is 18.x or higher
Firebase Authentication Issues:
- Verify
.envfile has correct Firebase credentials - Check Firebase console for enabled authentication methods
Quiz Not Loading:
- Check browser console for errors
- Verify question bank data is properly formatted
- Clear localStorage if needed
- Lighthouse Score: 95+ (Performance, Accessibility, Best Practices, SEO)
- Bundle Size: Optimized with code splitting and lazy loading
- Load Time: < 2s on 3G networks
- Responsive: Fully responsive across all device sizes
- Firebase Authentication for secure user management
- Environment variables for sensitive data
- Client-side validation with Zod schemas
- Secure routing with protected routes
- XSS protection through React's built-in sanitization
This project is licensed under the MIT License.
MIT License
Copyright (c) 2025 Edusmart+
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
- Avinash Umrao - @AvinashUmrao
This project was built using amazing open-source technologies:
- React - UI library
- TypeScript - Type safety
- Vite - Build tool
- Tailwind CSS - Styling framework
- shadcn/ui - Component library
- Radix UI - Accessible primitives
- Lucide Icons - Icon library
- Recharts - Charting library
- Firebase - Backend services
- React Router - Routing
- React Query - Data fetching
- Framer Motion - Animations
For questions, issues, or feature requests:
- GitHub Issues: Create an issue
- Documentation: See the documentation section
- Mobile app (React Native)
- Real-time multiplayer quizzes
- AI-powered study recommendations
- Video lecture integration
- Discussion forums
- Mock test series
- Performance comparison with peers
- Integration with external plagiarism databases
- Advanced analytics dashboard for teachers
- Notification system for deadlines and achievements
If you find this project helpful, please consider:
- Giving it a β on GitHub
- Sharing it with fellow students and educators
- Contributing to the codebase
- Reporting bugs and suggesting features
Built with β€οΈ for students, by students
Report Bug β’ Request Feature β’ Link