Commit 2d10a14e authored by AdithyaKahawanugoda's avatar AdithyaKahawanugoda

arithmetic configs added

parent 99358509
......@@ -332,12 +332,13 @@ def predictShapePattern():
return jsonify(response)
# Reasoning IQ evaluation
@app.route('/predictReasoning', methods = ['POST','GET'])
@app.route('/predictPictureConcept', methods = ['POST','GET'])
@cross_origin()
def predictReasoning():
def predictPictureConcept():
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()
......
......@@ -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("");
......
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.png",
"https://i.ibb.co/4KGpx50/Screenshot-2022-10-10-232236.jpg",
"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);
} else {
setAllCompleted(true);
}
time.seconds = 0;
const switchActivityHandler = () => {
if (activityIndex < 3) {
let activityNo = activityIndex + 1;
setActivityIndex(activityNo);
} else {
setAllCompleted(true);
}
});
};
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={imgSrcArray[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>
);
};
......
......@@ -122,8 +122,7 @@ const PictureConcept = ({ nextActivity }) => {
};
useEffect(() => {
// console.log(activityIndex);
// RecordingHandler(`PC.wav`, activityIndex);
RecordingHandler(`PC.wav`, activityIndex, "pc");
}, [activityIndex]);
return (
......
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);
// });
// }
};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment