Quizium is an advanced platform designed to help you create, play, and host quizzes seamlessly. Whether you're an educator, trivia enthusiast, or just someone who enjoys challenging friends, Quizium provides all the tools you need.
More features might be added in the future.
- 🛠️ Easy quiz creation using the user-friendly quiz editor.
- 🖼️ Add cover images to personalize your quizzes.
- 🔒 Set your quizzes to private or public.
- ⏲️ Set time limits for quizzes and provide descriptions to clarify rules or themes.
- 📷 Add images to quiz questions for a richer experience.
- 🤔 Choose from various question types: multiple-answer, true/false, or type-answer.
- 🎮 Host and play quizzes seamlessly, whether it's your own or others'.
- 📝 Profile management: Update your profile image, username, or password with ease.
- 📚 Access your library to view drafted, published, and favorite quizzes.
- 📊 Review detailed reports for every quiz you have played or hosted.
- 🏆 Real-time score tracking for participants during live-hosted quizzes.
- 🔐 Google Sign-In is integrated for secure and convenient login.
- 📱 Enjoy a seamless user experience on any device, as Quizium is responsive 😍.
- Speed-Based Scoring: Prioritizes both accuracy and the speed of answering questions.
- Exam-Style Scoring: Focuses solely on accuracy within a set time limit.
- 🗄️ MongoDB
- 🌿 Node.js
- ⚙️ Express
- ⚛️ React
- 🎨 Tailwind CSS + daisyUi
- Clone the repo:
git clone https://github.com/Adamson123/Quizium.git - Install dependencies in both the frontend and backend folders by running this in both folders:
npm install - Set environment variables:
- Frontend:
VITE_CLIENT_ID=google-client-id
- Backend:
MONGO_URI=mongodb-uri CLIENT_ID=google-client-id EMAIL_PASSWORD=your-email-password JWT_KEY=jwt-secret-key PORT=3002
- Frontend:
- Run the app: In the root folder, you can run
npm run dev:beto start the backend server,npm run dev:feto start the frontend server, andnpm run dev:twto start Tailwind CSS compilation.
- Visit
http://localhost:5173in your browser. - Sign up using Google or with a username, email, and password.
- Create a quiz and start adding questions.
- Host live quizzes and invite participants.
http://localhost:3002/api
- POST
/signup- Register a new user. - POST
/login- Log in a user and send a cookie response. - POST
/google-login- Log in a user with Google. - POST
/logout- Log out a user by sending an empty cookie response. - POST
/reset-password-link- Send a password reset link to the user’s email. - PATCH
/reset-password- Reset the user's password.
- GET
/- Get user info with the token provided in the cookie. - PATCH
/personal- Modify personal user information. - PATCH
/password- Reset the password for an already logged-in user. - PATCH
/favorite- Add or remove quizzes from the user's favorites.
- POST
/- Create a quiz. - GET
/- Get multiple quizzes based on provided queries. - GET
/single-quiz/:id- Get a single quiz. - GET
/user-quizzes- Get all quizzes created by the user. - GET
/search-quizzes- Search quizzes based on provided queries in an advanced way. - PATCH
/:id- Modify a quiz. - DELETE
/:id- Delete a quiz.
- POST
/:id- Create a question. - PATCH
/:id- Modify a question. - DELETE
/:id- Delete a question.
- POST
/- Create a quiz result (add the result to the host report if it's a hosted quiz). - DELETE
/:id- Delete a quiz result. - GET
/single-result/:id- Get a single quiz result. - GET
/user-results- Get all quiz results of a user.
- POST
/- Host a quiz. - GET
/- Find a hosted quiz room based on the provided join code in the queries or find a host report based on the provided host ID in the queries. - GET
/user-hosts- Get all host reports of a user. - DELETE
/:id- Delete a host report.
Quizium: https://quizium.onrender.com
Quizium offers a dynamic platform for creating and engaging with quizzes. Challenge yourself and others by exploring the world of quizzes today. 🚀