Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
2
2022-073
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
2022-073
2022-073
Commits
2d10a14e
Commit
2d10a14e
authored
Oct 11, 2022
by
AdithyaKahawanugoda
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
arithmetic configs added
parent
99358509
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
83 additions
and
75 deletions
+83
-75
web-app/backend/server.py
web-app/backend/server.py
+30
-2
web-app/frontend/src/components/activities/ethicalClearence.jsx
...p/frontend/src/components/activities/ethicalClearence.jsx
+3
-0
web-app/frontend/src/components/activities/reasoningIqEval/arithmetic/Arithmetic.jsx
...ents/activities/reasoningIqEval/arithmetic/Arithmetic.jsx
+17
-56
web-app/frontend/src/components/activities/reasoningIqEval/pictureConcept/PictureConcept.jsx
...ivities/reasoningIqEval/pictureConcept/PictureConcept.jsx
+1
-2
web-app/frontend/src/components/activities/reasoningIqEval/recorder/Recorder.js
...omponents/activities/reasoningIqEval/recorder/Recorder.js
+32
-15
No files found.
web-app/backend/server.py
View file @
2d10a14e
...
...
@@ -332,12 +332,13 @@ def predictShapePattern():
return
jsonify
(
response
)
# Reasoning IQ evaluation
@
app
.
route
(
'/predict
Reasoning
'
,
methods
=
[
'POST'
,
'GET'
])
@
app
.
route
(
'/predict
PictureConcept
'
,
methods
=
[
'POST'
,
'GET'
])
@
cross_origin
()
def
predict
Reasoning
():
def
predict
PictureConcept
():
if
request
.
method
==
'POST'
:
file
=
request
.
files
.
get
(
'file'
)
questionIndex
=
request
.
form
.
get
(
'questionIndex'
)
candidateID
=
request
.
form
.
get
(
'candidateID'
)
print
(
questionIndex
)
if
file
is
None
or
file
.
filename
==
""
:
return
jsonify
({
'error: no file'
})
...
...
@@ -349,6 +350,7 @@ def predictReasoning():
data
=
{
'prediction'
:
prediction
}
db
.
db
[
'reasoningIQScore'
]
.
insert_one
({
"activityName"
:
"Picture Concept"
,
"candidateID"
:
candidateID
,
"questionIndex"
:
questionIndex
,
"transcription"
:
prediction
,
})
...
...
@@ -357,6 +359,32 @@ def predictReasoning():
return
jsonify
({
'error: Error during pipeline execution'
})
return
jsonify
({
'result: test'
})
@
app
.
route
(
'/predictArithmetic'
,
methods
=
[
'POST'
,
'GET'
])
@
cross_origin
()
def
predictArithmetic
():
if
request
.
method
==
'POST'
:
file
=
request
.
files
.
get
(
'file'
)
questionIndex
=
request
.
form
.
get
(
'questionIndex'
)
candidateID
=
request
.
form
.
get
(
'candidateID'
)
print
(
questionIndex
)
if
file
is
None
or
file
.
filename
==
""
:
return
jsonify
({
'error: no file'
})
try
:
file
.
save
(
"./"
+
file
.
filename
)
prediction
=
transform_audio
(
file
.
filename
)
data
=
{
'prediction'
:
prediction
}
db
.
db
[
'reasoningIQScore'
]
.
insert_one
({
"activityName"
:
"Arithmetic"
,
"candidateID"
:
candidateID
,
"questionIndex"
:
questionIndex
,
"transcription"
:
prediction
,
})
return
jsonify
(
data
)
except
:
return
jsonify
({
'error: Error during pipeline execution'
})
return
jsonify
({
'result: test'
})
@
app
.
route
(
'/mentalChromScores'
,
methods
=
[
'POST'
])
@
cross_origin
()
...
...
web-app/frontend/src/components/activities/ethicalClearence.jsx
View file @
2d10a14e
...
...
@@ -80,6 +80,9 @@ const EthicalClearenceScreen = () => {
await
API
.
post
(
"
parents/
"
,
JSON
.
stringify
(
payload
),
headerConfig
)
.
then
((
res
)
=>
{
if
(
res
.
status
===
200
)
{
if
(
localStorage
)
{
localStorage
.
setItem
(
"
candidateID
"
,
childCandidate
);
}
setParentName
(
""
);
setchildCandidate
(
""
);
setParentSignature
(
""
);
...
...
web-app/frontend/src/components/activities/reasoningIqEval/arithmetic/Arithmetic.jsx
View file @
2d10a14e
import
React
from
"
react
"
;
import
{
useState
,
useEffect
}
from
"
react
"
;
import
React
,
{
useState
,
useEffect
}
from
"
react
"
;
import
"
./Arithmetic.css
"
;
import
Timer
from
"
../timer/Timer
"
;
import
{
RecordingHandler
}
from
"
../recorder/Recorder
"
;
const
Arithmetic
=
({
nextActivity
})
=>
{
const
[
img
,
setImgs
]
=
useState
(
0
);
const
[
allCompleted
,
setAllCompleted
]
=
useState
(
false
);
const
[
activityIndex
,
setActivityIndex
]
=
useState
(
1
);
const
imgSrcArray
=
[
"
https://i.ibb.co/10pQ5gp/image-27.png
"
,
"
https://i.ibb.co/
kgyNs4Z/arithmatic4.pn
g
"
,
"
https://i.ibb.co/
4KGpx50/Screenshot-2022-10-10-232236.jp
g
"
,
"
https://i.ibb.co/Bckx5FR/arithmatic3.png
"
,
];
const
imgSrc
=
imgSrcArray
[
img
];
const
[
time
,
setTime
]
=
useState
({
seconds
:
0
,
});
const
[
isCancelled
,
setIsCancelled
]
=
useState
(
false
);
useEffect
(()
=>
{
const
calculateTime
=
()
=>
{
setTimeout
(()
=>
{
let
nSeconds
=
time
.
seconds
;
let
nMinutes
=
time
.
minutes
;
let
nHours
=
time
.
hours
;
nSeconds
++
;
!
isCancelled
&&
setTime
({
seconds
:
nSeconds
,
minutes
:
nMinutes
,
hours
:
nHours
});
},
1000
);
};
calculateTime
();
console
.
log
(
time
);
if
(
time
.
seconds
===
30
)
{
if
(
img
<
imgSrcArray
.
length
-
1
)
{
setImgs
(
img
+
1
);
const
switchActivityHandler
=
()
=>
{
if
(
activityIndex
<
3
)
{
let
activityNo
=
activityIndex
+
1
;
setActivityIndex
(
activityNo
);
}
else
{
setAllCompleted
(
true
);
}
};
time
.
seconds
=
0
;
}
});
useEffect
(()
=>
{
RecordingHandler
(
`AR.wav`
,
activityIndex
,
"
ar
"
);
}
,
[
activityIndex
]
);
return
(
<
div
>
...
...
@@ -48,7 +31,7 @@ const Arithmetic = ({ nextActivity }) => {
<
div
className=
"arithmetic-img-container w-5/6 h-4/6 m-auto p-11 mb-9 mt-9"
>
<
img
alt=
"img-row-item"
src=
{
imgSrc
}
src=
{
imgSrc
Array
[
activityIndex
-
1
]
}
className=
"arithmetic-img-item"
/>
</
div
>
...
...
@@ -74,29 +57,7 @@ const Arithmetic = ({ nextActivity }) => {
</
button
>
)
}
{
!
allCompleted
&&
<
Timer
/>
}
{
!
allCompleted
&&
(
<
div
>
{
/* <button
className="float-right bg-transparent hover:bg-blue-500 text-blue-700 font-semibold hover:text-white py-2 px-4 border border-blue-500 hover:border-transparent rounded"
onClick={() => {
}}
>
Next
</button> */
}
{
/* <button
className="float-right bg-transparent hover:bg-blue-500 text-blue-700 font-semibold hover:text-white py-2 px-4 border border-blue-500 hover:border-transparent rounded"
onClick={() => {
RecordingHandler("PC1.flac"); //pass activity(PC), question(1) names with flac extension
}}
>
Start Rec
</button>{" "}
{" "}
*/
}
</
div
>
)
}
{
!
allCompleted
&&
<
Timer
switchActivity=
{
switchActivityHandler
}
/>
}
</
div
>
);
};
...
...
web-app/frontend/src/components/activities/reasoningIqEval/pictureConcept/PictureConcept.jsx
View file @
2d10a14e
...
...
@@ -122,8 +122,7 @@ const PictureConcept = ({ nextActivity }) => {
};
useEffect
(()
=>
{
// console.log(activityIndex);
// RecordingHandler(`PC.wav`, activityIndex);
RecordingHandler
(
`PC.wav`
,
activityIndex
,
"
pc
"
);
},
[
activityIndex
]);
return
(
...
...
web-app/frontend/src/components/activities/reasoningIqEval/recorder/Recorder.js
View file @
2d10a14e
import
*
as
RecordRTC
from
"
recordrtc
"
;
import
axios
from
"
axios
"
;
import
baseURL
from
"
../../../../config/api
"
;
import
API
from
"
../../../../config/api
"
;
export
const
RecordingHandler
=
async
(
fileName
,
questionIndex
)
=>
{
export
const
RecordingHandler
=
async
(
fileName
,
questionIndex
,
activityName
)
=>
{
let
stream
=
await
navigator
.
mediaDevices
.
getUserMedia
({
video
:
false
,
audio
:
true
,
...
...
@@ -21,23 +23,27 @@ export const RecordingHandler = async (fileName, questionIndex) => {
await
recorder
.
stop
(
function
()
{
let
blob
=
recorder
.
blob
;
processRecording
(
blob
,
fileName
,
questionIndex
);
processRecording
(
blob
,
fileName
,
questionIndex
,
activityName
);
});
stream
.
getTracks
().
forEach
(
function
(
track
)
{
track
.
stop
();
});
};
const
processRecording
=
(
blob
,
fileName
,
questionIndex
)
=>
{
const
processRecording
=
(
blob
,
fileName
,
questionIndex
,
activityName
)
=>
{
let
recordedFile
=
new
File
([
blob
],
fileName
);
uploadRecording
(
recordedFile
,
fileName
,
questionIndex
);
uploadRecording
(
recordedFile
,
fileName
,
questionIndex
,
activityName
);
};
const
uploadRecording
=
async
(
file
,
fileName
,
questionIndex
)
=>
{
const
uploadRecording
=
async
(
file
,
fileName
,
questionIndex
,
activityName
)
=>
{
let
data
=
new
FormData
();
console
.
log
(
questionIndex
);
let
candidateID
=
0
;
if
(
localStorage
)
{
candidateID
=
localStorage
.
getItem
(
"
candidateID
"
);
}
data
.
append
(
"
file
"
,
file
,
fileName
);
data
.
append
(
"
questionIndex
"
,
questionIndex
);
data
.
append
(
"
candidateID
"
,
candidateID
);
const
config
=
{
headers
:
{
...
...
@@ -46,11 +52,22 @@ const uploadRecording = async (file, fileName, questionIndex) => {
},
};
await
API
.
post
(
`predictReasoning`
,
data
,
config
)
.
then
((
res
)
=>
{
console
.
log
(
res
,
"
DONE
"
+
new
Date
().
toISOString
);
})
.
catch
((
err
)
=>
{
console
.
log
(
err
,
"
ERROR
"
+
new
Date
().
toISOString
);
});
// if (activityName === "pc") {
// await API.post(`predictPictureConcept`, data, config)
// .then((res) => {
// console.log(res, "DONE" + new Date().toISOString);
// })
// .catch((err) => {
// console.log(err, "ERROR" + new Date().toISOString);
// });
// }
// if (activityName === "ar") {
// await API.post(`predictArithmetic`, data, config)
// .then((res) => {
// console.log(res, "DONE" + new Date().toISOString);
// })
// .catch((err) => {
// console.log(err, "ERROR" + new Date().toISOString);
// });
// }
};
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment