Skip to content

AvinashUmrao/minor

Repository files navigation

EduSmart+

Edusmart+ React TypeScript Vite TailwindCSS

A comprehensive, intelligent educational platform designed to revolutionize exam preparation through adaptive learning, gamification, and advanced plagiarism detection.

Features β€’ Tech Stack β€’ Getting Started β€’ Documentation


πŸ“‹ Table of Contents


🎯 Overview

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.

Key Highlights

  • πŸŽ“ 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

✨ Features

πŸŽ“ Adaptive Learning System

  • 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

πŸ† Gamification Engine

  • 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

πŸ” Plagiarism Detection System

  • 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

πŸ“š Exam Preparation Modules

  • 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

πŸ“ Blog Platform

  • 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

🎨 User Experience

  • 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

πŸ› οΈ Tech Stack

Frontend Framework

  • 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

UI & Styling

  • 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

State Management & Data

  • 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

Routing & Navigation

  • React Router DOM 6.30.1 - Declarative routing

Authentication

  • Firebase 12.4.0 - Authentication and user management

Forms & Validation

  • React Hook Form 7.61.1 - Performant form handling
  • Zod 3.25.76 - TypeScript-first schema validation
  • @hookform/resolvers - Form validation integration

Charts & Visualization

  • Recharts 2.15.4 - Composable charting library
  • jsPDF 3.0.3 - PDF generation
  • jspdf-autotable 5.0.2 - Table generation for PDFs

Developer Tools

  • ESLint 9.32.0 - Code linting
  • TypeScript ESLint - TypeScript-specific linting rules
  • Autoprefixer - CSS vendor prefixing
  • PostCSS - CSS transformations

πŸš€ Getting Started

Prerequisites

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

Installation

  1. Clone the repository
git clone https://github.com/AvinashUmrao/edusmartPlus.git
cd edusmartPlus
  1. Install dependencies
npm install
  1. 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
  1. Start the development server
npm run dev

The application will be available at http://localhost:5173

  1. Build for production
npm run build
  1. Preview production build
npm run preview

Development Scripts

# 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 preview

πŸ“ Project Structure

Edusmart+/
β”œβ”€β”€ 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

πŸ”‘ Key Systems

Adaptive Quiz System

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

Gamification System

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

Plagiarism Detection System

Advanced multi-algorithm plagiarism detection for both text and code:

Text Analysis Algorithms:

  1. Jaccard Similarity - Measures word set overlap
  2. Cosine Similarity - Calculates document vector angles
  3. TF-IDF - Weighs term importance across documents
  4. Levenshtein Distance - Character-level edit distance
  5. LCS (Longest Common Subsequence) - Finds matching sequences
  6. Semantic Similarity - Meaning-based similarity detection

Code-Specific Algorithms:

  1. AST Analysis - Analyzes code structure
  2. CFG Similarity - Compares program logic flow
  3. Winnowing Fingerprinting - Creates k-gram fingerprints
  4. 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

πŸ“– Documentation

Detailed documentation is available for each major system:


🎯 Usage Examples

Taking a Quiz

  1. Navigate to the exam preparation page (e.g., /gate or /jee)
  2. Click on the "Quiz" tab
  3. Select quiz type (Full Syllabus, Subject-wise, or Topic-wise)
  4. Choose subject and topic (if applicable)
  5. Start the adaptive quiz
  6. Answer questions with real-time feedback
  7. View results with detailed analytics
  8. Check updated streak, badges, and leaderboard position

Checking Progress

  1. Navigate to /progress
  2. View comprehensive statistics dashboard
  3. Analyze performance charts (accuracy trends, category distribution, subject performance)
  4. Review quiz history
  5. Read personalized improvement suggestions
  6. Export PDF report for offline viewing

Using Plagiarism Detection

For Teachers:

  1. Navigate to /plagiarism and select "Teacher" role
  2. Create assignments with detailed instructions
  3. View student submissions
  4. Run plagiarism analysis (requires β‰₯2 submissions)
  5. Review flagged matches and algorithm breakdowns
  6. Download PDF reports

For Students:

  1. Navigate to /plagiarism and select "Student" role
  2. View available assignments
  3. Submit text or code answers
  4. Update submissions before deadline
  5. Track submission status

πŸ› οΈ Configuration

Firebase Setup

To enable authentication and data persistence:

  1. Create a Firebase project at Firebase Console
  2. Enable Authentication (Email/Password)
  3. Create a Firestore database
  4. Copy your Firebase config
  5. Create a .env file with your credentials (see Getting Started)

Customization

Theme Customization:

  • Edit tailwind.config.ts for color schemes
  • Modify src/index.css for global styles
  • Update components.json for shadcn/ui theme

Question Banks:

  • Add questions to src/data/jeeQuestionBank.ts or 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

🀝 Contributing

Contributions are welcome! Please follow these guidelines:

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

Development Guidelines

  • 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

Code Style

  • 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

πŸ› Known Issues & Troubleshooting

Common Issues

Build Errors:

  • Clear node_modules and reinstall: rm -rf node_modules package-lock.json && npm install
  • Ensure Node.js version is 18.x or higher

Firebase Authentication Issues:

  • Verify .env file 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

πŸ“Š Performance

  • 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

πŸ”’ Security

  • 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

πŸ“œ License

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.

πŸ‘₯ Authors & Acknowledgments

Development Team

Acknowledgments

This project was built using amazing open-source technologies:


πŸ“ž Support & Contact

For questions, issues, or feature requests:


πŸ—ΊοΈ Roadmap

Upcoming Features

  • 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

⭐ Show Your Support

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

About

Edusmart+ is a modern, intelligent exam-prep platform built with React, TypeScript, and Vite. It combines adaptive quizzes, gamification, analytics dashboards, blogs, and advanced plagiarism detection to personalize learning for exams like GATE, JEE, CAT, NEET, and UPSC

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages