/react-quiz-platform

Quiz platform

Primary LanguageTypeScript

Quiz platform

Project Description

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.

Features

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.

Technologies

Front-end

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.

Back-End

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.

Installation and Running

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

Contributions and Feedback

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.