An intelligent Quiz system that dynamically adjusts question difficulty using Machine learning. Features real-time performance adaptation, comprehensive analytics, and a stunning glassmorphism UI. The backend is Dockerized and built with FastAPI, Firebase, and modern JavaScript.
-
Machine Learning Difficulty Adjustment - Logistic Regression model predicts optimal question difficulty
-
Real-time Performance Analysis - Adapts question difficulty based on user responses
-
Personalized Learning Paths - Customized quiz experience for each user
-
Dynamic Difficulty Levels - Easy, Medium, Hard questions adjusted in real-time
-
Progress Tracking - Real-time performance metrics and analytics
-
Adaptive Scoring - Intelligent scoring system that rewards improvement
-
Auto Grading System - Instant answer evaluation and scoring
-
Glassmorphism Design - Stunning frosted glass aesthetic with particle animations
-
Responsive Interface - Beautiful design that works on all devices
-
Smooth Animations - Engaging user experience with fluid transitions
-
Admin Dashboard - Comprehensive question bank management
-
API Integration - Automatic question import from Open Trivia DB
-
Real-time Analytics - Detailed performance insights and statistics
-
User Dashboard - Progress visualization and tracking
-
Python - Core programming language
-
FastAPI - Modern, high-performance web framework
-
Docker โ Containerized backend for consistent and scalable deployment
-
Scikit-Learn - Machine learning for difficulty prediction
-
Firebase Firestore - NoSQL database for real-time data
-
Vanilla JavaScript - Interactive frontend logic
-
HTML5 & CSS3 - Responsive web design with glassmorphism effects
-
Particle Animations - Dynamic background elements
-
Logistic Regression - Difficulty classification model
-
Real-time Analytics - Performance pattern recognition
-
Predictive Modeling - Skill level assessment
Nexus-Quiz/
โโโ quiz_engine/ # AI & ML Components
โ โโโ difficulty_model.py # ML model for difficulty prediction
โ โโโ selector.py # Question selection logic
โ โโโ grader.py # Answer evaluation system
โ โโโ feedback_generator.py # Personalized feedback generation
โโโ backend/ # API & Server
โ โโโ main.py # FastAPI application entry point
โ โโโ models/ # Pydantic data models
โ โโโ routes/ # API route handlers
โ โ โโโ quiz.py # Quiz management endpoints
โ โ โโโ user.py # User authentication & management
โ โ โโโ question.py # Question bank operations
โ โ โโโ result.py # Results & analytics
โ โโโ db/ # Database configuration
โ โโโ firebase_config.py # Firebase integration
โโโ frontend/ # User Interface
โ โโโ index.html # Main application
โ โโโ style.css # Glassmorphism styles
โ โโโ app.js # Frontend logic
โโโ Dockerfile # Backend container definition
โโโ docker-compose.yml # Multi-container orchestration
โโโ requirements.txt # Python dependencies
-
Quiz Initialization - System assesses user's starting level based on previous performance
-
Real-time Assessment - Each answer updates skill evaluation and ML model
-
ML-Powered Adaptation - Logistic regression predicts optimal difficulty for next question
-
Progressive Challenge - Questions dynamically adapt to user capability
-
Comprehensive Evaluation - Final scoring with detailed analytics and AI-generated feedback
-
Continuous Learning - System improves from aggregated user data
- Docker
- Docker Compose
docker compose up --build
http://localhost:8000
http://localhost:8000/docs
docker compose down
โ No Python, virtual environment, or manual dependency setup required
โ Firebase credentials are securely mounted via Docker volumes
OR
-
Python 3.8 or higher
-
Firebase account and project
-
Modern web browser
git clone https://github.com/MuhammadUsman-Khan/Nexus-Quiz.git
cd Nexus-Quiz
pip install -r requirements.txt
-
Create Firebase project at Firebase Console
-
Download serviceAccountKey.json and place in backend/db/
-
Update security rules as needed
# Start Backend Server
cd backend
uvicorn main:app --reload --port 8000
# Start Frontend (in new terminal)
python -m http.server 3000
Access Platform
Frontend: http://localhost:3000
API Documentation: http://localhost:8000/docs
-
Register Account - Create your personalized profile with secure authentication
-
Take Adaptive Quiz - System automatically adjusts to your skill level in real-time
-
View Real-time Progress - Watch your performance metrics update after each question
-
Receive AI Feedback - Get personalized improvement suggestions based on performance patterns
-
Track Learning Journey - Monitor progress over time with detailed analytics
-
Manage Question Bank - Add, edit, or import questions with metadata
-
Import from Open Trivia DB - Automatic question collection from external API
-
Monitor System Analytics - Overall platform performance and usage statistics
-
User Progress Oversight - Track individual and group learning progress
Method Endpoint Description
POST /api/quiz/start Initialize new adaptive quiz session
POST /api/quiz/submit-answer Evaluate answer and update user model
POST /api/quiz/next-question Get next question based on current performance
POST /api/quiz/end-quiz Finalize session and generate feedback
Method Endpoint Description
POST /api/users/register User registration with secure authentication
POST /api/users/login User login and session management
GET /api/users/{email} Retrieve user profile and history
Method Endpoint Description
GET /api/questions/all Retrieve all questions (Admin only)
POST /api/questions/add Add new question to bank
POST /api/questions/import-from-api Bulk import from Open Trivia DB
DELETE /api/questions/{id} Remove question from bank
Method Endpoint Description
GET /api/results/user/{email} Get user's quiz history and progress
GET /api/results/all System-wide analytics (Admin only)
class DifficultyModel:
def __init__(self):
self.model = LogisticRegression()
# Trained on user performance data
def predict_difficulty(self, previous_score: float) -> str:
prediction = self.model.predict([[previous_score]])
return ["easy", "medium", "hard"][prediction[0]]
-
Input Parameters: User performance history, current score, response time, accuracy patterns
-
ML Processing: Logistic regression with feature engineering and real-time retraining
-
Output: Optimal difficulty level ("easy", "medium", "hard") for next question
-
Continuous Learning: Model improves automatically from aggregated user data
-
Frosted Glass Effects: Backdrop filters for modern aesthetic
-
Particle Animations: Dynamic floating elements in background
-
Smooth Transitions: CSS animations for engaging interactions
-
Responsive Grid: Adaptive layout for all device sizes
-
Real-time Feedback: Immediate response after each answer
-
Progress Visualization: Clear indicators of current performance
-
Intuitive Navigation: Easy-to-use interface for all user types
-
Password Hashing: PBKDF2 with HMAC-SHA256 and salt
-
Input Validation: Pydantic models for data integrity and type safety
-
CORS Protection: Configured cross-origin resource sharing
-
Firebase Security Rules: Database-level access control
-
API Authentication: Header-based user verification
# Backend Development Server
uvicorn main:app --reload --host 0.0.0.0 --port 8000
# Frontend Development Server
python -m http.server 3000
-
Backend: Deploy FastAPI to cloud platforms (Heroku, DigitalOcean, AWS, GCP)
-
Frontend: Deploy static files to hosting services (Netlify, Vercel, GitHub Pages)
-
Database: Firebase Firestore (automatically scales with usage)
-
Leaderboards - Competitive ranking system
-
Achievement Badges - Reward system for milestones
-
Points & Rewards - Engagementๆฟๅฑๆบๅถ
-
Social Features - Peer learning and competition
-
Detailed Performance Breakdowns - Subject-wise analysis
-
Comparative Analytics - Peer performance comparison
-
Predictive Performance Modeling - Future performance forecasts
-
Learning Pattern Recognition - Study habit insights
-
LLM Integration - AI-generated questions and explanations
-
Natural Language Processing - Open-ended answer evaluation
-
Advanced Recommendation System - Personalized learning paths
-
Speech Recognition - Voice-based answering
-
Mobile Application - iOS and Android native apps
-
Multi-language Support - Internationalization
-
LMS Integration - Compatibility with learning management systems
-
Offline Capability - Quiz functionality without internet
We welcome contributions! Please follow these steps:
Fork the repository
Create a feature branch (git checkout -b feature/amazing-feature)
Commit your changes (git commit -m 'Add amazing feature')
Push to the branch (git push origin feature/amazing-feature)
Open a Pull Request
Muhammad Usman Khan
GitHub: @MuhammadUsman-Khan
Project: Adaptive Quiz Platform with Machine Learning
Email: m.usman.khan.stu@gmail.com*