Quiz App is an educational plateform that help students to prepare for an interview in JavaScript or masterize it . Express.js is used to create a RESTful API for communication between the frontend and backend.
-
Client: React JS ,AXIOS,MATERIEL-UI
-
Server: Node, Express , MongoDB .
-
Authentication : JSON Web Tokens (JWT)
- User Authentication: Users can signup, login, and logout from the application.
- Profile Management: Users can update their profile information, including name and email.
- Password Management: Users can change their password and request a password reset if forgotten.
- Diverse Question Types: Support various question types (multiple choice, true/false, fill in the blanks, etc.).
- Category and Difficulty Levels: Categorize quizzes and include difficulty levels for user preference.
- Note-Taking Capability: Allow users to take notes during or after a quiz.
- Favorite Section: Users can mark quizzes as favorites for easy access in the dedicated section to view and manage favorite quizzes.
- Profile Dashboard: Display user details, achievements, and progress.User can also reset his progress.
- Research bar: Easily accessible at the top of the page, the Search Bar serves as a dynamic tool to help you discover quizzes with precision and speed.
Clone the project :
git clone <repository-url>
Go to the project directory :
cd repository-name
- Start the backend server:
cd backend
Install the dependencies :
npm install
To run this project, you will need to create an .env file and add the following environment variables to your .env file:
PORT=<server-port>
MONGO_URI=<mongodb-connection-string>
CLIENT_URL=<client-side-url>
SECRET=<jwt-secret-key>
Launch the server :
npm run dev
- Start the frontend server:
cd client
Install the dependencies :
npm install
Launch the server :
npm start
- Access the app in your web browser:
Open a web browser and access the application at http://localhost:3000
Note: Make sure to update the port number (3000
) according to your client server configuration.
Feel free to customize and enhance the project according to your needs and send pull requests.