The Quiz Platform is an engaging web application designed for users to craft their own quizzes, participate in quizzes created by others, and leave ratings and comments. This platform fosters a dynamic community where creativity and learning thrive.
JWT authorization with refresh and access tokens.
A form that allows users to create tests with any number of questions and results based on the number of correct answers.
A sophisticated like and comment system enables users to rate quizzes and provide valuable feedback, enhancing the interactive and community-driven experience.
React: Used for building the user interface and managing components.
Zustand: Manages the state of the application and interacts with the server application.
TypeScript: Provides static typing, enhancing code readability and maintainability.
SASS/SCSS: Preprocessor for CSS, allowing for organized and structured styling.
React Hook Form: simplifies form validation, making it easier and more efficient to handle complex forms with minimal code and enhanced performance.
Axios: provides a simple to use library in a small package with a very extensible interface.
Express: Utilized for building REST APIs and interacting with MongoDB.
jsonwebtoken: Used for generating and verifying JSON Web Tokens (JWT) for secure user authentication and authorization.
MongoDB: A NoSQL database known for its high performance, scalability, and flexibility, making it ideal for handling large volumes of unstructured data.
Mongoose: An ODM (Object Data Modeling) library for MongoDB and Node.js, providing a straightforward schema-based solution to model application data.
bcrypt: A library for hashing passwords, ensuring secure storage and handling of user credentials by implementing strong encryption methods.
Clone the repository: git clone https://github.com/Gor-Hoveyan/reactQuizPlatfrom
Navigate to the server directory
Install dependencies: npm install
Run the application: npm start
Navigate to the client directory
Install dependencies: npm install
Run the application: npm start
Your contributions are welcome! If you have ideas for improving the project or have found a bug, please create a new issue or pull request.