Welcome to the Quiz Web App! This application is designed to facilitate quiz-based exams with ease. Whether you're a teacher, instructor, or organization looking to conduct assessments, this app provides a user-friendly platform for creating, managing, and delivering quizzes online.
- User Authentication: Secure user authentication system ensures only authorized users can access and manage quizzes.
- Quiz Creation: Easily create quizzes with customizable options such as time limits, question types, and difficulty levels.
- Question Bank: Maintain a bank of questions organized by category for efficient quiz creation.
- Real-time Monitoring: Monitor quiz progress in real-time, track participant activity, and view instant results.
- Scoring and Feedback: Automatic scoring and detailed feedback provide instant assessment to participants.
- Multi-platform Compatibility: Accessible on various devices including desktops, tablets, and smartphones.
- Customization: Customize the look and feel of the app to match your branding or preferences.
- Data Export: Export quiz results and participant data for further analysis or record-keeping.
In the project directory, you can run:
Runs the app in the development mode.
Open http://localhost:3000 to view it in your browser.
The page will reload when you make changes.
You may also see any lint errors in the console.
Launches the test runner in the interactive watch mode.
See the section about running tests for more information.
Builds the app for production to the build
folder.
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.
Your app is ready to be deployed!
See the section about deployment for more information.
Note: this is a one-way operation. Once you eject, you can't go back!
If you aren't satisfied with the build tool and configuration choices, you can eject at any time. This command will remove the single build dependency from your project.
Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except eject will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own.
You don't have to ever use eject. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However, we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it.
- Sign up for an account or log in if you already have one.
- Create a quiz by specifying details such as title, duration, and questions.
- Share the quiz link with participants.
- Monitor quiz progress in real-time and view results after completion.
- Node.js: A JavaScript runtime environment used for building scalable and high-performance server-side applications.
- Express.js: A minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.
- MongoDB: A NoSQL database that stores data in flexible, JSON-like documents. MongoDB is used for storing user authentication data, quiz information, question bank, and quiz results.
- Mongoose: A MongoDB object modeling tool designed to work in an asynchronous environment. Mongoose is used to define schemas and models for MongoDB collections, providing a straightforward way to interact with the database.
- JWT (JSON Web Tokens): Used for authentication and authorization, JWTs securely transmit information between parties as a JSON object.
- React.js: A JavaScript library for building user interfaces. React allows developers to create reusable UI components, making it easier to manage complex UIs.
- TypeScript: A superset of JavaScript that adds static types to the language, enhancing code quality and maintainability by catching errors at compile time.
- React Router: Used for client-side routing in React applications, allowing for navigation between different components without a page reload.
- Axios: A promise-based HTTP client for making asynchronous HTTP requests in JavaScript. Axios is used for communicating with the backend API to fetch and send data.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature/new-feature
- Make your changes and commit them:
git commit -am 'Add new feature'
- Push to the branch:
git push origin feature/new-feature
- Submit a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.
Have questions or suggestions? Feel free to Ask.