In this tutorial, I would take you through building a simple quiz application in React. As we go through, I would be explaining the pieces of codes as well.
We would cover the following:
- Before you begin (Prerequisites)
- Step 1: Setup the QuizData
- Step 2: Add the StyleSheet
- Step 3: Add the App Component
- Step 4: Create the Quiz Component
Also, remember to go along with the video.
Before you begin:
- Install Node.js
- Also install VS Code (or any other IDE you are comfortable with)
- run the command npx create-react-app quiz-app to create the app
- Then navigate into the quiz-app folder using the command cd quiz-app
- Start the application by running the command npm start. Then check that the application started on port 3000
- Delete all the files in the src folder
Step 1: Set up the Questions Service (QuizData Component)
The question data bank is simply a list of questions along with options and a correct answer. Each item in the data bank has
- an id
- a question
- options
- correct answer
To set up the question service, create a folder named components in the src folder. Then create a file called QuizData.js in the components folder. Add the following inside. Feel free to change up the questions list, or even add more questions!
export const QuizData = [
{
id: 0,
question: `What is the capital of Nigeria?`,
options: [`New Delhi`, `Abuja`, `Owerri`, `Enugu`],
answer: `Abuja`
},
{
id: 0,
question: `What is the capital of India?`,
options: [`New Delhi`, `Abuja`, `Mumbai`, `Aba`],
answer: `New Delhi`
},
{
id: 0,
question: `What is the capital of Australia?`,
options: [`Melbourne`, `Akokwa`, `Owerri`, `Sydney`],
answer: `Sydney`
},
{
id: 0,
question: `What is the capital of Turkey?`,
options: [`Rijadh`, `Ankara`, `Istanbul`, `Abakaliki`],
answer: `Ankara`
},
{
id: 0,
question: `What is the capital of Syria?`,
options: [`Syria`, `Damascus`, `Anambra`, `Enugu`],
answer: `Damascus`
},
]
Step 2: Add a Stylesheet
Let’s now add a stylesheet to control the appearance of the application. The stylesheet is given below. So just create a file in the src folder and add the styles in it
.App{
text-align: center;
font-family: Arial;
}
/* The answer selecteed by the user */
.selected {
background-color: orange;
}
/* The list of options */
.options {
padding: 8px;
border: 2px solid #000;
cursor: pointer;
}
ul {
list-style-type: none;
}
body{
font-family: Verdana;
font-size: 18px;
background-color: #2980B9;
}
Step 3: Create the Index.js File (App component)
This file would be the entry point of our quiz application. I would contain the App function which would be mounted at the root element of the index.html file. You can take a look at the index.html file locate inside the public folder (but don’t modify it!)
import React from 'react'
import ReactDOM from 'react-dom'
import Quiz from './components/Quiz'
import './styles.css';
function App() {
return (
<div className="App">
<Quiz />
</div>
)
}
const rootElement = document.getElementById('root');
ReactDOM.render(<App></App>, rootElement) //renders the component(first parameter) as a child of the element(second parameter)
Step 4: Create the Quiz Component
This is the component that would manage all the logic associated with the quiz. This would be a class component.
So create a file called Quiz.js inside the components folder. The initial content is shown below:
import React, { Component } from 'react'
import {QuizData} from './QuizData';
export class Quiz extends Component {
render() {
return (
<div>
</div>
)
}
}
export default Quiz
Note that we have imported the QuizData component as well as the React.
At this point, you have completed the Part 1 of out quiz application. In the next part we would now work on displaying the questions and also responding to user actions. I recommend you watch the video as well.

One thought on “Build a Quiz App in React – Step by Step with Source Codes ( Part 1)”