Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 4ae65b5

Browse files
author
smishra38@sapient.com
committed
Adding Backend support | Adding Questions Functionality | Separating out components
1 parent 2183702 commit 4ae65b5

File tree

15 files changed

+411
-81
lines changed

15 files changed

+411
-81
lines changed

‎.gitignore‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
# dependencies
44
/node_modules
5-
5+
reference-code
66
# testing
77
/coverage
88

‎Procfile‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
web: react-scripts start
2+
api: nodemon src/server.js

‎models/schema.js‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
var mongoose = require('mongoose');
2+
var Schema = mongoose.Schema;
3+
// creating new instance of the mongoose.schema. the schema takes an object that shows the shape of your database entries.
4+
var questionSchema = mongoose.Schema(
5+
{
6+
question: String,
7+
options : Array,
8+
key : Number
9+
},
10+
{collection : 'quiz'});
11+
12+
13+
//exporting our module to use in server.js
14+
var Question = mongoose.model("Question", questionSchema);
15+
module.exports = Question;

‎package.json‎

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,16 @@
33
"version": "0.1.0",
44
"author": "Satyam Mishra",
55
"private": true,
6+
"proxy": "http://localhost:3001/",
67
"dependencies": {
8+
"axios": "^0.16.2",
9+
"body-parser": "^1.17.2",
710
"create-react-class": "^15.6.0",
11+
"express": "^4.15.3",
12+
"express-session": "^1.15.5",
13+
"foreman": "^2.0.0",
14+
"mongoose": "^4.11.5",
15+
"nodemon": "^1.11.0",
816
"prop-types": "^15.5.10",
917
"react": "^15.5.4",
1018
"react-dom": "^15.5.4",
@@ -19,6 +27,7 @@
1927
"start": "react-scripts start",
2028
"build": "react-scripts build",
2129
"test": "react-scripts test --env=jsdom",
22-
"eject": "react-scripts eject"
30+
"eject": "react-scripts eject",
31+
"start-dev": "nf start -p 3000"
2332
}
2433
}

‎public/_assets/css/app.css‎

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
}
55
.footer{
66
position: absolute;
7-
bottom: -10px;
87
padding-left: 60px;
98
}
109
.question {
@@ -23,7 +22,7 @@
2322
background-color: #D0EFF6;
2423
}
2524
.navbar{
26-
padding: 20px;
25+
padding: 10px;
2726
}
2827

2928
.pass{
@@ -42,9 +41,40 @@
4241
.marTop25{
4342
margin-top: 25px;
4443
}
44+
.marRight100{
45+
margin-right: 100px;
46+
}
4547
.nextBtn:hover{
4648
background-color: #B4C2C5;
4749
}
4850
.noPadRight{
4951
padding-right: 0;
52+
}
53+
.noPad{
54+
padding:0;
55+
}
56+
.questionAdded{
57+
text-align: center;
58+
}
59+
.questionAdded img{
60+
width: 90px;
61+
height: 90px;
62+
}
63+
.marBot40{
64+
margin-bottom: 40px;
65+
}
66+
.inline{
67+
display: inline;
68+
}
69+
.moreOptions{
70+
display: flex;
71+
justify-content: center;
72+
}
73+
#root button{
74+
height: 40px;
75+
background-color: cadetblue;
76+
color: white;
77+
}
78+
.selected{
79+
background-color: #ABD9E4;
5080
}

‎public/_assets/images/tick.png‎

47.3 KB
Loading[フレーム]

‎public/index.html‎

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,20 @@
1111
<div class="jumbotron navbar">
1212
<div class="container">
1313
<h1>Javascript Quiz </h1>
14-
<p>Select the correct answer of following question</p>
14+
<p>Rate yourself.</p>
1515

1616
</div>
1717
</div>
1818
<div class="container">
1919
<div id="root">
2020

2121

22-
23-
2422
</div>
2523
</div>
2624

2725

28-
<div class="footer container">
29-
<p class="credit text-muted">
30-
All questions are provided by experts.
31-
</p>
26+
<div id="footer" class="footer container">
27+
3228
</div>
3329
<script src="_assets/thirdparty/jquery.js"></script>
3430
<script src="_assets/thirdparty/dist/js/bootstrap.js"></script>

‎src/components/Answer.js‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import React from 'react';
2+
3+
class Answer extends React.PureComponent{
4+
// constructor(props){
5+
// super(props);
6+
// }
7+
render(){
8+
return <div className={this.props.classApply + ' col-md-1'}> </div>
9+
}
10+
11+
}
12+
13+
export default Answer;

‎src/components/Options.js‎

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import React from 'react';
2+
import Answer from './Answer.js';
3+
class Options extends React.PureComponent{
4+
constructor(props) {
5+
super(props)
6+
this.state = {
7+
bgClass :'neutral'
8+
}
9+
}
10+
handleClick (valClicked){
11+
var isCorrect = (valClicked.index+1) === this.props.data.key;
12+
this.setState({
13+
bgClass : isCorrect ? 'pass' : 'fail',
14+
showContinue: isCorrect
15+
})
16+
}
17+
componentWillReceiveProps(nextProps){
18+
this.setState({
19+
bgClass : 'neutral'
20+
})
21+
}
22+
render () {
23+
var options = this.props.data.options;
24+
return (
25+
<div>
26+
<div className="col-md-10">
27+
{options.map((value, index) => {
28+
return <div onClick={this.handleClick.bind(this,{index})} className="strong options" key={index}>
29+
<h4> {index+1}. {value} </h4>
30+
</div>;
31+
} , this)}
32+
</div>
33+
<Answer classApply={this.state.bgClass}/>
34+
</div>
35+
)
36+
}
37+
}
38+
39+
export default Options;

‎src/components/Question.js‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import React from 'react';
2+
class Question extends React.PureComponent{
3+
render () {
4+
return <div className="lead question">
5+
<h3>{this.props.data}</h3>
6+
</div>
7+
}
8+
}
9+
10+
export default Question;

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /