This is a full-stack MERN (MongoDB, Express, React, Node.js) quiz application that allows users to create, take, and manage quizzes.
- Create, edit, and delete quizzes.
- Take quizzes with multiple-choice questions.
- Real-time scoring and immediate feedback on quiz results.
- User-friendly and responsive design.
- Secure API endpoints for quiz management.
-
Frontend:
- React
- React Router for routing
- Fetch for making API requests
- State management using Redux (including redux-persist)
- Lazy Loading + Suspense
-
Backend:
- Node.js
- Express.js
- MongoDB for data storage
- Nodemon
- bcyrpt
-
Authentication:
- Passport.js
-
Testing:
- Jest
Before you begin, ensure you have met the following requirements:
-
Node.js: Make sure you have Node.js installed on your local machine. You can download it from nodejs.org.
-
MongoDB: You need to have a MongoDB instance set up. You can install MongoDB locally or use a cloud-hosted MongoDB service.
-
Clone the repository:
git clone https://github.com/MyNameIsCarsten/react-quiz.git
-
Navigate to the project directory:
cd react-quiz
-
Install client dependencies:
npm install
-
Navigate to the
api
(server) directory and install api dependencies:cd aou npm install
-
Back in the project root, create a
.env
file and configure the following environment variables:ATLAS_URI
: Your MongoDB connection string.ADMIN_ID
: Id of your admin with your MongoDB-Users collection
-
Start the development server:
npm run dev
Your MERN quiz app should now be up and running.
-
Access the app in your web browser by navigating to
http://localhost:3000
. -
Log in to create and manage quizzes.
Please contact me for testing credentials
-
Users can take quizzes created by themself.
-
Enjoy the quiz-taking and creation experience!
Contributions are always welcome! Please feel free to submit issues, create pull requests, or reach out to the project maintainers for any questions or suggestions.