Lumin is a full-featured Quiz Application that allows users to play, create, and share quizzes in real-time.
It’s built for learners and developers who love competition — test your skills, challenge friends, and climb the leaderboard!
- Authentication System
- Secure signup/login using JWT.
- Passwords hashed with bcrypt.
- Pre-built Quizzes
- Includes quizzes for Java, JavaScript, Python, DBMS, Aptitude, and more.
- Create Your Own Quiz
- Users can create custom quizzes with unique join codes.
- Join with Code (Private Quiz Room)
- Only users with the code can join that quiz session.
- Leaderboard
- Displays rankings based on accuracy percentage.
- Responsive UI
- Built with React + Tailwind CSS for modern and mobile-friendly design.
| Category | Technology |
|---|---|
| Frontend | React.js, Redux Toolkit, Tailwind CSS, Framer Motion |
| Backend | Node.js, Express.js |
| Database | MongoDB (Mongoose) |
| Authentication | JWT, bcrypt |
| State Management | Redux Toolkit |
| Others | Axios, dotenv, cors |
lumin-quiz-app/
├── client/ # React Frontend
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── feature/auth/
│ │ ├── assets/images/
│ │ └── App.js
│ └── package.json
│
├── server/ # Node.js Backend
│ ├── controllers/
│ ├── models/
│ ├── routes/
│ ├── middlewares/
│ ├── db.js
│ ├── server.js
│ └── package.json
│
├── .env
├── README.md| Accuracy (%) | Title |
|---|---|
| 91%+ | Legend |
| 81–90% | Champion |
| 67–80% | Master |
| 40–66% | Learner |
| < 40% | Beginner |
Welcome! 👋 This project is open for contributions, and you're just a few steps away from running it locally and making an impact.
Get the project up and running locally in just a few steps:
Click on the Fork button at the top right of this repo.
git clone <your_forked_repo_url>Create a .env file inside the server folder and add:
PORT=5000
MONGO_URI="mongodb_uri_here"
JWT_SECRET="your_jwt_secret_here"Create a .env file inside the client folder and add:
VITE_BACKEND_API_URL="http://localhost:5000/api/"cd server
npm install
cd ..cd client
npm installnode server.jsnpm run devWe actively welcome contributions and would love to have you onboard 🚀
- Set up the project locally using the steps above
- Head over to the Issues section
- 👉 Work on existing issues — Comment on any issue you want to work on and I'll assign it to you
- 👉 Create new issues — Found a bug or have a feature idea? Raise an issue and start working on it
- Create a new branch
git checkout -b <branch_name>-
Make your changes ✨
-
Push your branch
git push origin <branch_name>- Open a Pull Request 🚀
- Improve your real-world development skills
- Collaborate with other developers
- Build something meaningful together
Don't overthink — pick an issue, start coding, and ship it! 🚀