QNeX is a full-stack, production-deployed quiz and assessment platform built on the MERN stack โ engineered for educators, students, and competitive learners. It delivers a seamless quiz experience with instant analytics, subject-wise performance comparisons, and a dynamic leaderboard โ all wrapped in a premium, responsive SaaS-grade interface.
| Resource | Link |
|---|---|
| ๐ Live Application | https://qnexv1.netlify.app |
| โ๏ธ Backend API | https://qnex.onrender.com |
| ๐ Frontend Deployment | Netlify โ Auto CI/CD from main branch |
| ๐๏ธ Database | MongoDB Atlas โ Cloud Cluster |
| ๐ Repository | github.com/imanmay2 |
| ๐ API Documentation | Jump to API Section |
QNeX is fully deployed and live in production. No local setup required to experience the platform.
Click to expand full contents
"Most quiz platforms are either too simple or too complex. QNeX is engineered to be both powerful and intuitive."
In a world of generic assessment tools, QNeX stands apart:
| ๐ Other Platforms | โ QNeX |
|---|---|
| Limited analytics | Deep subject-wise comparison analytics |
| Static result pages | Interactive performance dashboards |
| No easy sharing mechanism | Unique quiz codes for instant sharing |
| Poor mobile experience | Fully responsive across all devices |
| Clunky, outdated UI | Premium SaaS-grade modern interface |
| Basic scoring only | Leaderboard & ranking system |
| No role distinction | Admin/Instructor + Student roles |
- ๐ Educators & Instructors โ Create, manage, and analyze quizzes at scale
- ๐งโ๐ Students & Learners โ Take quizzes, track progress, compete on leaderboards
- ๐ข Institutions โ Conduct assessments with rich analytics
- ๐ผ Hackathons & Portfolios โ A technically impressive full-stack MERN showcase
QNeX (Quiz + Nexus) is a cutting-edge, full-stack quiz and assessment web application designed to bridge the gap between quiz creation and meaningful performance insights. Built on the robust MERN stack and deployed on cloud infrastructure, QNeX offers a complete end-to-end quiz lifecycle:
Create Quiz โ Generate Unique Code โ Share with Students
โ
Students Attempt Quiz โ Submit Answers
โ
Instant Results โ Analytics Dashboard โ Subject-wise Comparison โ Leaderboard
Whether you're a teacher conducting class assessments, a student preparing for exams, or an organization running competitive tests โ QNeX delivers a premium, real-world assessment experience.
|
|
|
|
|
|
๐ Unique Quiz Codes โ Share any quiz in seconds with a unique code
๐ Subject Analytics โ Compare performance across subjects visually
๐ Live Leaderboard โ Ranked competition for every quiz
๐ฑ Mobile-First โ Optimized experience across all screen sizes
๐ Secure Auth โ JWT + bcrypt industry-standard security
๐ฅ Role-Based Access โ Separate instructor and student experiences
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ CLIENT LAYER โ
โ React.js + Vite + Tailwind CSS โ
โ [Netlify โ https://qnexv1.netlify.app] โ
โโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ HTTPS / REST API
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ SERVER LAYER โ
โ Node.js + Express.js REST API โ
โ [Render โ https://qnex.onrender.com] โ
โ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ Auth โ โ Quiz โ โ Results โ โ Analytics โ โ
โ โ Routes โ โ Routes โ โ Routes โ โ Routes โ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ JWT Middleware + Role-Based Guards โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Mongoose ODM
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ DATABASE LAYER โ
โ MongoDB Atlas (Cloud) โ
โ โ
โ Users โโโโ Quizzes โโโโ Questions โโโโ Attempts โโโโ Results โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
User Action โ React Component โ API Service (Axios)
โ Express Router โ Middleware (Auth/Validation)
โ Controller โ Mongoose Model โ MongoDB Atlas
โ Response โ State Update โ UI Re-render
| Technology | Purpose | Version |
|---|---|---|
| โ๏ธ React.js | UI Component Library | ^18.x |
| โก Vite | Build Tool & Dev Server | ^5.x |
| ๐จ Tailwind CSS | Utility-First Styling | ^3.x |
| ๐ React Router | Client-Side Routing | ^6.x |
| ๐ก Axios | HTTP Client | ^1.x |
| ๐ JWT Decode | Token Parsing | ^3.x |
| Technology | Purpose | Version |
|---|---|---|
| ๐ข Node.js | JavaScript Runtime | ^20.x |
| ๐ Express.js | Web Framework | ^4.x |
| ๐ MongoDB | NoSQL Database | ^7.x |
| ๐ Mongoose | ODM for MongoDB | ^8.x |
| ๐ JWT | Authentication Tokens | ^9.x |
| ๐ bcryptjs | Password Hashing | ^2.x |
| ๐ CORS | Cross-Origin Handling | ^2.x |
| ๐ฆ dotenv | Environment Management | ^16.x |
| Service | Role |
|---|---|
| ๐ข Netlify | Frontend Hosting + CI/CD |
| ๐ต Render | Backend API Hosting |
| โ๏ธ MongoDB Atlas | Cloud Database Cluster |
| ๐ GitHub | Version Control + Source |
Before you begin, ensure you have the following installed:
node --version # v18.x or higher
npm --version # v9.x or higher
git --version # any recent versionYou'll also need:
- A MongoDB Atlas account (free tier works)
- A Render account (for backend deployment)
- A Netlify account (for frontend deployment)
git clone https://github.com/imanmay2/qnex.git
cd qnex# Navigate to the backend directory
cd backend
# Install all dependencies
npm install
# Create your environment file
cp .env.example .env
# โ Edit .env with your credentials (see Environment Variables section)
# Start the development server
npm run dev
# โ API server running at http://localhost:5000# Open a new terminal, navigate to the frontend directory
cd frontend
# Install all dependencies
npm install
# Create your environment file
cp .env.example .env
# โ Set VITE_API_URL=http://localhost:5000
# Start the Vite dev server
npm run dev
# โ App running at http://localhost:5173Frontend โ http://localhost:5173
Backend โ http://localhost:5000
API Base โ http://localhost:5000/api
# From the root directory
npm install
npm run dev # Starts both frontend and backend concurrently# โโโ Server โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
PORT=5000
NODE_ENV=development
# โโโ Database โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
MONGODB_URI=mongodb+srv://<username>:<password>@cluster0.xxxxx.mongodb.net/qnex?retryWrites=true&w=majority
# โโโ Authentication โโโโโโโโโโโโโโโโโโโโโโโโโ
JWT_SECRET=your_super_secure_jwt_secret_key_here
JWT_EXPIRE=7d
# โโโ CORS โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
CLIENT_URL=http://localhost:5173# โโโ API Configuration โโโโโโโโโโโโโโโโโโโโโโ
VITE_API_URL=http://localhost:5000
# โโโ App Config โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
VITE_APP_NAME=QNeX
VITE_APP_VERSION=1.0.0
โ ๏ธ Security Note: Never commit.envfiles to version control. Always use.env.examplefor documentation.
Base URL (Production):
https://qnex.onrender.com/apiBase URL (Development):http://localhost:5000/api
| Method | Endpoint | Description | Auth |
|---|---|---|---|
POST |
/auth/register |
Register new user | โ |
POST |
/auth/login |
Login & receive JWT | โ |
GET |
/auth/me |
Get current user profile | โ |
POST |
/auth/logout |
Logout user | โ |
| Method | Endpoint | Description | Auth |
|---|---|---|---|
POST |
/quizzes |
Create new quiz | โ Admin |
GET |
/quizzes |
Get all quizzes (instructor's) | โ |
GET |
/quizzes/:id |
Get quiz by ID | โ |
PUT |
/quizzes/:id |
Update quiz | โ Admin |
DELETE |
/quizzes/:id |
Delete quiz | โ Admin |
| Method | Endpoint | Description | Auth |
|---|---|---|---|
POST |
/attempts |
Submit quiz attempt | โ |
GET |
/attempts/my |
Get user's all attempts | โ |
GET |
/attempts/:id |
Get specific attempt result | โ |
GET |
/results/:quizId |
Get all results for a quiz | โ Admin |
| Method | Endpoint | Description | Auth |
|---|---|---|---|
GET |
/analytics/me |
Personal performance analytics | โ |
GET |
/analytics/quiz/:id |
Quiz-wise analytics | โ Admin |
GET |
/analytics/subject |
Subject-wise comparison data | โ |
GET |
/leaderboard/:quizId |
Quiz leaderboard | โ |
๐ Sample API Request/Response
POST /api/auth/login
// Request
{
"email": "user@example.com",
"password": "securepassword123"
}
// Response 200 OK
{
"success": true,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"user": {
"_id": "64abc123def456",
"name": "John Doe",
"email": "user@example.com",
"role": "student"
}
}POST /api/attempts โ Submit Quiz
// Request
{
"quizId": "64abc789xyz",
"answers": [
{ "questionId": "q1", "selectedOption": 2 },
{ "questionId": "q2", "selectedOption": 0 }
]
}
// Response 201 Created
{
"success": true,
"result": {
"score": 8,
"totalQuestions": 10,
"percentage": 80,
"rank": 3,
"subjectBreakdown": [
{ "subject": "Mathematics", "score": 4, "total": 5 },
{ "subject": "Physics", "score": 4, "total": 5 }
]
}
}# Build Command
npm run build
# Publish Directory
dist
# Environment Variables (set in Netlify dashboard)
VITE_API_URL=https://qnex.onrender.comSteps:
- Push your code to GitHub
- Connect your GitHub repo on netlify.com
- Set build command:
npm run buildand publish dir:dist - Add environment variables in Site Settings โ Environment Variables
- Deploy โ auto CI/CD on every push to
main
๐ Live: https://qnexv1.netlify.app
# Start Command
node server.js
# Build Command (optional)
npm install
# Root Directory
backend/Steps:
- Create a new Web Service on render.com
- Connect your GitHub repository
- Set Root Directory to
backend - Add environment variables (see
.envsection) - Deploy โ auto-deploy on push to
main
๐ Live API: https://qnex.onrender.com
1. Create account at https://cloud.mongodb.com
2. Create a new Project โ Build a Cluster (Free M0 Tier)
3. Database Access โ Add Database User (username + password)
4. Network Access โ Add IP Address โ Allow from Anywhere (0.0.0.0/0)
5. Connect โ Drivers โ Copy connection string
6. Replace <password> with your DB user password
7. Add to backend .env as MONGODB_URI
โก Tip: Use MongoDB Atlas Search for future full-text quiz search features.
QNeX implements industry-standard security practices:
| Security Feature | Implementation |
|---|---|
| ๐ Authentication | JWT tokens with configurable expiry |
| ๐ Password Security | bcryptjs with salt rounds (10+) |
| ๐ก๏ธ Route Protection | JWT middleware on all private endpoints |
| ๐ฅ Role-Based Access | Separate Admin and Student privileges |
| ๐ CORS Policy | Configured whitelist for allowed origins |
| ๐ซ Input Validation | Server-side request validation |
| ๐ฆ Env Secrets | All sensitive data in environment variables |
| ๐ Token Storage | Secure client-side token management |
QNeX is optimized for speed and scalability:
- โก Vite Build โ Lightning-fast HMR and optimized production bundles
- ๐๏ธ Code Splitting โ Lazy-loaded routes for minimal initial load
- ๐ฆ Optimized Assets โ Compressed images and minified CSS/JS
- ๐๏ธ MongoDB Indexing โ Indexed fields on User, Quiz, and Result collections
- ๐ Efficient Queries โ Optimized Mongoose queries with selective projections
- ๐ CDN Delivery โ Static assets served via Netlify's global CDN
- ๐ Pagination โ All list endpoints support cursor-based pagination
QNeX is just getting started. Here's the roadmap to making it the world's most intelligent assessment platform.
๐ค AI & Machine Learning
- ๐ง AI-Generated Quizzes โ Auto-generate MCQ questions from any topic using LLMs (GPT-4/Claude)
- ๐ Adaptive Learning Engine โ Dynamically adjust question difficulty based on student performance
- ๐ก Personalized Recommendations โ AI-curated study paths and quiz suggestions
- ๐ Predictive Analytics โ Predict student performance and identify weak areas proactively
- ๐ NLP Answer Analysis โ Support open-ended questions with NLP-based auto-grading
๐ฎ Gamification & Social
- โ๏ธ Live Quiz Battles โ WebRTC-powered 1v1 or group quiz competitions
- ๐ Achievement System โ Badges, streaks, XP points, and milestone rewards
- ๐ฅ Collaborative Classrooms โ Shared study rooms and group quiz sessions
- ๐ฃ Social Sharing โ Share scores and achievements on social platforms
- ๐ฏ Daily Challenges โ Auto-generated daily quiz challenges with global rankings
๐ Advanced Proctoring
- ๐๏ธ AI-Powered Proctoring โ Real-time facial recognition and gaze detection via webcam
- ๐ฅ๏ธ Screen Monitoring โ Detect tab switching and suspicious activity
- ๐ท Snapshot Logging โ Periodic screenshots during high-stakes exams
- ๐ Secure Browser Mode โ Lockdown browser integration
๐ฑ Platform Expansion
- ๐ฒ Native Mobile Apps โ iOS and Android apps built with React Native
- ๐ Multilingual Support โ Full i18n with 20+ language support
- โฟ Accessibility (A11y) โ WCAG 2.1 AA compliance
- ๐ LMS Integration โ Connect with Google Classroom, Moodle, Canvas
- ๐ Advanced Export โ PDF reports, Excel analytics, CSV data export
โ๏ธ Technical Evolution
- ๐ WebSockets โ Live quiz state synchronization for collaborative sessions
- ๐ Microservices โ Decouple Quiz, Auth, and Analytics into independent services
- ๐ณ Docker + Kubernetes โ Containerized deployment and auto-scaling
- ๐ Advanced Analytics โ Cohort analysis, funnel tracking, heatmaps
- ๐ Public API โ Open API for third-party integrations
Contributions are what make the open-source community such an incredible place to learn and build. Any contribution you make is greatly appreciated.
# 1. Fork the repository
# 2. Create your feature branch
git checkout -b feature/AmazingFeature
# 3. Commit your changes
git commit -m "feat: add AmazingFeature"
# 4. Push to the branch
git push origin feature/AmazingFeature
# 5. Open a Pull Request- Follow the existing code style and conventions
- Write meaningful commit messages (use Conventional Commits)
- Add/update tests for new features
- Update documentation as needed
- Be respectful and constructive in code reviews
๐ See CONTRIBUTING.md for detailed contribution guidelines.
Distributed under the MIT License.
MIT License
Copyright (c) 2024 Manmay Chakraborty
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...
See LICENSE for the full license text.
โก Built with passion by Manmay Chakraborty
๐ Try QNeX Live ยท ๐ GitHub ยท โ๏ธ Backend API ยท ๐ Docs
If QNeX helped you or impressed you, please consider giving it a โญ โ it means the world!

