Quiz Whiz is an online quiz platform that allows users to create, take, and share quizzes on various topics. Whether you are a student looking to study for an exam, a teacher wanting to assess your students' knowledge, or simply someone who enjoys challenging quizzes, Quiz Whiz provides an engaging and interactive experience.
- The landing page welcomes users and provides an overview of the platform's purpose.
- Guests can explore a selection of pre-made "free" quizzes without the need to register.
- Registered users have access to all quizzes available on the platform.
- Quizzes are categorized, and users can filter quizzes based on category or search by keywords.
- The home page allows users to easily navigate through the available quizzes.
- Users can log in to their accounts or register for a new account.
- The registration process is quick and straightforward.
- User credentials are securely authenticated.
- Upon successful login, users are redirected to their user dashboard.
- Users can access their profile settings and update their information.
- The page displays the user's profile image, bio, username, and password.
- Users can change their profile picture, edit their bio, and update their username and password.
- The user dashboard provides an overview of the user's activities, history, and favorite quizzes.
- Users can view their username, profile image, and other relevant information.
- The dashboard includes tabs for the overview, quizzes created by the user, quizzes taken, and favorite quizzes.
- Users can filter and sort quizzes based on various criteria.
- Users can click on a quiz to modify or retake it.
- Users can start taking a quiz by selecting it from the available quizzes. The page displays each question of the quiz one at a time.
- Users can submit their answers for each question.
- This page allows users to view individual questions and submit their answers.
- Users can see question details, answer options (multiple-choice or true/false), and select their answers.
- Users can navigate through the questions and submit their responses.
Check Begin Quiz Page section for demo.
- At the end of the quiz, users are presented with a summary page.
- The summary displays the quiz results, including the score achieved.
- Users can see which answers they got wrong and the correct answers.
- The page provides an option to retake the quiz.
Check Begin Quiz Page section for demo.
- Registered users can create their own quizzes.
- Users can choose a category for the quiz.
- Users can select questions and answers from available APIs or add custom questions.
- The feature allows users to contribute their quizzes to the platform.
To run Quiz Whiz locally on your machine, follow these steps:
- Clone the repository to your local machine.
- Navigate to project directory.
- Install the necessary dependencies. Make sure you have Node.js and npm installed. Then, run the following command:
npm run install-all
- Set up the database. Quiz Whiz uses PostgreSQL as the database. Make sure you have PostgreSQL installed and running on your machine. Create a new database for Quiz Whiz and update the database configuration in the .env file with your database credentials. (see env.example files)
- Build and start the client. Run the following command:
npm run build
npm run client
- The application should now be running on: http://localhost:3000. \
- Start the server
npm run server
- Open your web browser and navigate to http://localhost:8080 to access Quiz Whiz.
That's it! You have successfully installed and set up Quiz Whiz on your local machine. You can now explore the platform, create quizzes, and start taking quizzes.
Quiz Whiz is built using the following technologies:
- HTML
- CSS
- JavaScript
- React.js
- Material UI
- Node.js
- Express.js
- PostgreSQL (database)
Quiz Whiz has been tested to ensure its stability and functionality. We used the following tools and methodologies for testing:
We have employed Jest, a popular JavaScript testing framework, to write and run tests for the frontend components of Quiz Whiz. Jest provides a comprehensive suite of testing utilities, including assertions, mocking, and snapshot testing, to verify the behavior of React components and ensure that they work as intended.
To run the frontend tests, follow these steps:
- Ensure you have all the project dependencies installed by running
npm install
. - Execute the command
npm test
in the root directory. - Jest will automatically run all the test cases and display the results in the console.
We have written unit tests and integration tests to cover critical functionalities and edge cases. These tests help us identify and fix issues early in the development process, ensuring a more robust and reliable application.
We implemented continuous integration and delivery (CI/CD) pipelines to automate the build, test, and deployment processes. This allowed us to frequently integrate code changes, run tests, and deploy new features to a staging environment. It facilitated early bug detection and ensured a stable application.
Quiz Whiz is developed by Potato Fixers, a dedicated team of software engineers. The team members and their respective roles are as follows:
Tiger Hong: Product Manager / Software Engineer
Benny Van: Architecture Owner / Software Engineer
Gabriela Taylor: UI Owner / Software Engineer
Patty Long: Software Engineers
Thanh Ly: Software Engineers
San Chui: Software Engineers