Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added quiz section #341

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions Quiz.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Quiz page</title>
harikesh409 marked this conversation as resolved.
Show resolved Hide resolved
<link rel="stylesheet" href="css/quiz.css">
</head>
<body>
<div class="container">
<div class="row">
<h1 class="heading">Welcome to DSA QUIZ !</h1>

<h2 class="heading_2">Test your knowledge</h2>
</div>
</div>
<div class="container">
<div class="row well">
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

well is a bootstrap 3 class use card which is a bootstrap 4 class.

<h2 id="test_status">Are you ready to take the quiz?</h2>
<div id="test"></div>
<button id="btn" type="button" onclick="startQuiz()">Start Quiz</button>
</div>

<script src="js/quiz.js"></script>

</body>
</html>
77 changes: 77 additions & 0 deletions css/quiz.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
@import url(https://fonts.googleapis.com/css?family=Work+Sans:300,600);
Copy link
Collaborator

@harikesh409 harikesh409 Apr 5, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If possible remove this files and use the fonts that are already present in css/style.css



body{
font-size: 20px;
background-color: #000;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't use black as background color use something which matches our color scheme.

font-family: 'Work Sans', sans-serif;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of using a new font again use the font that is already being used in home page.

color: #fff;

text-align: center;

}
h1{
font-weight: 700;
margin: 0px;
padding: 1rem;
font-size: 3rem;
color: #fff;
background-color: #134041;
}
.heading_2{
font-size: 1.5rem;
}

h3{
text-align: left;
color:#000;
font-size: 30px;

}
#test{

background-color: #f9f9fa;
margin:1rem 10rem;
padding:3px 10px 3px 100px;
color: #000;

}


h4{
text-align: left;
padding: 10px 0px;
width:500px;
background-color: #f1f1f1;
box-shadow: 0 8px 6px -6px black;

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove empty lines.



border-radius: 15px;
}

button{
font-family: 'Work Sans', sans-serif;
font-size: 20px;
font-weight: 700;
background-color: #49b1ad;
color: #fff;
border: 0px;
border-radius: 3px;
padding: 20px;
cursor: pointer;
margin-bottom: 20px;
}
button:hover{
background-color: #3cae3c;
}

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove unnecessary lines.





.container{
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can include bootstrap and use those styles as in our website we are using bootstrap.

position: relative;
height: 200px;
margin-top: 30px;
}
2 changes: 1 addition & 1 deletion css/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,7 @@ hr {
border-spacing: 0;
width: 90%;
border: 1px solid #ddd;
align: centre;
text-align: centre;
}

.skills-section th:hover {
Expand Down
2 changes: 1 addition & 1 deletion index.html
Original file line number Diff line number Diff line change
Expand Up @@ -394,7 +394,7 @@ <h5 class="font-weight-bold text-white mb-lg-4 pb-2 margin-top-mobile">Useful Li
<h5 class="font-weight-bold text-white mb-lg-4 pb-2 margin-top-mobile">Features</h5>
<ul>
<a class="text-white mb-lg-3" href="https://www.codechef.com/ide" target="_blank">Code Editor</a><br>
<a class="text-white mb-lg-3" href="https://www.geeksforgeeks.org/data-structure-gq/" target="_blank">Quizzes</a><br>
<a class="text-white mb-lg-3" href="Quiz.html" target="_blank">Quizzes</a><br>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add this link in the navbar more section also.

<a class="text-white mb-lg-3" href="https://github.com/Algo-Phantoms/Algo-Tree" target="_blank">DSA Guidance</a><br>
<a class="text-white mb-lg-3" href="https://dare2compete.com/" target="_blank">Opportunities</a><br>
<a class="text-white mb-lg-3" href="https://www.geeksforgeeks.org/computer-science-projects/?ref=shm" target="_blank">Project Ideas</a>
Expand Down
84 changes: 84 additions & 0 deletions js/quiz.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@

function startQuiz() {
document.getElementById('btn').style.visibility = "hidden";
return displayQuestion();
}

var pos = 0, test, test_status, question, option, options, opA, opB, opC, opD,result, score = 0;
var questions = [
[" In order traversal of binary search tree will produce",
"unsorted list",
"reverse of input",
"sorted list",
"none of the above",
"C"],
["A circular linked list can be used for",
"Stack",
"Queue",
"Both Stack & Queue",
"Neither Stack or Queue",
"C"],
["Minimum number of queues required for priority queue implementation?",
" 5"," 4"," 3","2","D"],
["Time required to merge two sorted lists of size m and n, is",
"Ο(m | n)","Ο(m + n)","Ο(m log n)","Ο(n log m)","B"],
[ "A balance factor in AVL tree is used to check",
"what rotation to make.",
"if all child nodes are at same level.",
"when the last rotation occured.",
"if the tree is unbalanced.","D"],
["The number of items used by the dynamic array contents is its ",
"Physical size",
"Capacity",
"Logical size",
"Random size","C"],
["How will you implement dynamic arrays in Java?",
" Set",
" Map",
" HashMap",
"List","D"]
];
function $(arg) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Include jquery and use it.

return document.getElementById(arg);
}

function displayQuestion() {
test = $("test");
if (pos >= questions.length) {
test.innerHTML = "<h2>You got " + score + " of " + questions.length + " questions correct!</h2>";
$("test_status").innerHTML = "Test Completed.";
pos = 0;
score = 0;
return false;
}

$("test_status").innerHTML = "Question " + (pos + 1) + " of " + questions.length;
question = questions[pos][0];
opA = questions[pos][1];
opB = questions[pos][2];
opC = questions[pos][3];
opD = questions[pos][4];



test.innerHTML = "<h3>Que" +(pos+1)+". "+question + "</h3>";
test.innerHTML += "<h4><input type='radio' name='options' value='A'>" + opA + "</h4>";
test.innerHTML += "<h4><input type='radio' name='options' value='B'>" + opB + "</h4>";
test.innerHTML += "<h4><input type='radio' name='options' value='C'>" + opC + "</h4>";
test.innerHTML += "<h4><input type='radio' name='options' value='D'>" + opD + "</h4>";
test.innerHTML += "<button onclick='checkAnswer()'>Submit Answer</button>";
}

function checkAnswer() {
options = document.getElementsByName("options");
for (var i = 0; i < options.length; i++) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The whole loop can be simplified using jquery.

Ref: https://api.jquery.com/checked-selector/

if (options[i].checked) {
option = options[i].value;
}
}
if (option == questions[pos][5]) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Declare the variable option in the checkAnswer() or else the option is declared in global scope and if the user didn't give an option and click submit then the previous answer will be store here.

score++;
}
pos++;
displayQuestion();}