Skip to content

Commit

Permalink
feat: setup test battery (#11)
Browse files Browse the repository at this point in the history
* create test battery and setup spacial memory

* disable zoom in/out

* finish setup for choice reaction

* add config for digit symbol and visual pairs

* add context

* add num pad to digit symbol test

* add random wait timer

* change test battery to page

* add router

* reconfig timer for choice reaction

* add visual pairs test

* add helper function for generate random num list

* disable submit button during memorize stage

* add placeholder transition page

* setup memory recall component

* rename digit symbol

* fix sizing

* modify script to accept same network traffic

* add sound check component

* change transition from page to component

* add general direction page

* add delay to memory recall after 5 selection

* add placeholder for audio play
  • Loading branch information
wenhwang97 authored Aug 30, 2024
1 parent 31e8908 commit d4d8285
Show file tree
Hide file tree
Showing 156 changed files with 1,016 additions and 104 deletions.
4 changes: 2 additions & 2 deletions index.html
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<!doctype html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
<title>Vite + React + TS</title>
</head>
<body>
Expand Down
44 changes: 43 additions & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"version": "0.0.1",
"type": "module",
"scripts": {
"dev": "vite",
"dev": "vite --host",
"build": "tsc -b && vite build",
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
"preview": "vite preview"
Expand All @@ -14,7 +14,8 @@
"@emotion/styled": "^11.13.0",
"@mui/material": "^5.16.4",
"react": "^18.3.1",
"react-dom": "^18.3.1"
"react-dom": "^18.3.1",
"react-router-dom": "^6.26.1"
},
"devDependencies": {
"@types/react": "^18.3.3",
Expand Down
24 changes: 6 additions & 18 deletions src/App.tsx
Original file line number Diff line number Diff line change
@@ -1,23 +1,11 @@
import "./App.css";
/*
import { randomSelectFromList } from "./utils/generalUtils";
import { ChoiceReactionTimeMain } from "./components/ChoiceReactionTimeMain";
import { DigitSymbolCodingMain } from "./components/DigitSymbolCodingMain";
import { MemoryRecallMain } from "./components/MemoryRecallMain";
import { SpacialMemoryMain } from "./components/SpacialMemoryMain";
*/
import { createBrowserRouter, RouterProvider } from "react-router-dom";
import { TestPage } from "./pages/TestPage";

function App() {
return (
<>
{/* <SpacialMemoryMain numNodes={5} /> */}
{/* <MemoryRecallMain selected={["Octopus", "Elephant", "Cat", "Lion", "Squirrel"]} /> */}
{/* <DigitSymbolCodingMain correctIndex={Math.floor(Math.random() * 10) + 1} /> */}
{/* <ChoiceReactionTimeMain
correctIndex={randomSelectFromList([0, 1, 2])}
correctSymbol={randomSelectFromList(["<", ">"])}
/> */}
</>
);
const router = createBrowserRouter([{ path: "assessments", element: <TestPage /> }]);

return <RouterProvider router={router} />;
}

export default App;
Binary file added src/assets/visual-pair/bar1.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/visual-pair/bar2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/visual-pair/bar3.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/visual-pair/bar4.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/visual-pair/bar5.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/visual-pair/bar6.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/visual-pair/bar7.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/visual-pair/bar8.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/visual-pair/barn1.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/visual-pair/barn2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/visual-pair/barn3.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/visual-pair/barn4.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/visual-pair/barn5.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/visual-pair/barn6.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/visual-pair/barn7.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/visual-pair/barn8.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/visual-pair/barn9.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/visual-pair/bath1.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/visual-pair/bath2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/visual-pair/bath3.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/visual-pair/bath4.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/visual-pair/bath5.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/visual-pair/bath6.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/visual-pair/bath7.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/visual-pair/bath8.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/visual-pair/beach1.jpg
Binary file added src/assets/visual-pair/beach2.jpg
Binary file added src/assets/visual-pair/beach3.jpg
Binary file added src/assets/visual-pair/beach4.jpg
Binary file added src/assets/visual-pair/beach5.jpg
Binary file added src/assets/visual-pair/beach6.jpg
Binary file added src/assets/visual-pair/beach7.jpg
Binary file added src/assets/visual-pair/beach8.jpg
Binary file added src/assets/visual-pair/bed1.jpg
Binary file added src/assets/visual-pair/bed2.jpg
Binary file added src/assets/visual-pair/bed3.jpg
Binary file added src/assets/visual-pair/bed4.jpg
Binary file added src/assets/visual-pair/bed5.jpg
Binary file added src/assets/visual-pair/bed6.jpg
Binary file added src/assets/visual-pair/bed7.jpg
Binary file added src/assets/visual-pair/bed8.jpg
Binary file added src/assets/visual-pair/boat1.jpg
Binary file added src/assets/visual-pair/boat2.jpg
Binary file added src/assets/visual-pair/boat3.jpg
Binary file added src/assets/visual-pair/boat4.jpg
Binary file added src/assets/visual-pair/boat5.jpg
Binary file added src/assets/visual-pair/boat6.jpg
Binary file added src/assets/visual-pair/boat7.jpg
Binary file added src/assets/visual-pair/boat8.jpg
Binary file added src/assets/visual-pair/buffet1.jpg
Binary file added src/assets/visual-pair/buffet2.jpg
Binary file added src/assets/visual-pair/buffet3.jpg
Binary file added src/assets/visual-pair/buffet4.jpg
Binary file added src/assets/visual-pair/buffet5.jpg
Binary file added src/assets/visual-pair/buffet6.jpg
Binary file added src/assets/visual-pair/buffet7.jpg
Binary file added src/assets/visual-pair/buffet8.jpg
Binary file added src/assets/visual-pair/closet1.jpg
Binary file added src/assets/visual-pair/closet2.jpg
Binary file added src/assets/visual-pair/closet3.jpg
Binary file added src/assets/visual-pair/closet4.jpg
Binary file added src/assets/visual-pair/closet5.jpg
Binary file added src/assets/visual-pair/closet6.jpg
Binary file added src/assets/visual-pair/closet7.jpg
Binary file added src/assets/visual-pair/closet8.jpg
Binary file added src/assets/visual-pair/door1.jpg
Binary file added src/assets/visual-pair/door2.jpg
Binary file added src/assets/visual-pair/door3.jpg
Binary file added src/assets/visual-pair/door4.jpg
Binary file added src/assets/visual-pair/door5.jpg
Binary file added src/assets/visual-pair/door6.jpg
Binary file added src/assets/visual-pair/door7.jpg
Binary file added src/assets/visual-pair/door8.jpg
Binary file added src/assets/visual-pair/entry1.jpg
Binary file added src/assets/visual-pair/entry2.jpg
Binary file added src/assets/visual-pair/entry3.jpg
Binary file added src/assets/visual-pair/entry4.jpg
Binary file added src/assets/visual-pair/entry5.jpg
Binary file added src/assets/visual-pair/entry6.jpg
Binary file added src/assets/visual-pair/entry7.jpg
Binary file added src/assets/visual-pair/entry8.jpg
Binary file added src/assets/visual-pair/example1.jpg
Binary file added src/assets/visual-pair/example2.jpg
Binary file added src/assets/visual-pair/example3.jpg
Binary file added src/assets/visual-pair/example4.jpg
Binary file added src/assets/visual-pair/example5.jpg
Binary file added src/assets/visual-pair/example6.jpg
Binary file added src/assets/visual-pair/field1.jpg
Binary file added src/assets/visual-pair/field2.jpg
Binary file added src/assets/visual-pair/field3.jpg
Binary file added src/assets/visual-pair/field4.jpg
Binary file added src/assets/visual-pair/field5.jpg
Binary file added src/assets/visual-pair/field6.jpg
Binary file added src/assets/visual-pair/field7.jpg
Binary file added src/assets/visual-pair/field8.jpg
Binary file added src/assets/visual-pair/kitchen1.jpg
Binary file added src/assets/visual-pair/kitchen2.jpg
Binary file added src/assets/visual-pair/kitchen3.jpg
Binary file added src/assets/visual-pair/kitchen4.jpg
Binary file added src/assets/visual-pair/kitchen5.jpg
Binary file added src/assets/visual-pair/kitchen6.jpg
Binary file added src/assets/visual-pair/kitchen7.jpg
Binary file added src/assets/visual-pair/kitchen8.jpg
Binary file added src/assets/visual-pair/lobby1.jpg
Binary file added src/assets/visual-pair/lobby2.jpg
Binary file added src/assets/visual-pair/lobby3.jpg
Binary file added src/assets/visual-pair/lobby4.jpg
Binary file added src/assets/visual-pair/lobby5.jpg
Binary file added src/assets/visual-pair/lobby6.jpg
Binary file added src/assets/visual-pair/lobby7.jpg
Binary file added src/assets/visual-pair/lobby8.jpg
Binary file added src/assets/visual-pair/playground1.jpg
Binary file added src/assets/visual-pair/playground2.jpg
Binary file added src/assets/visual-pair/playground3.jpg
Binary file added src/assets/visual-pair/playground4.jpg
Binary file added src/assets/visual-pair/playground5.jpg
Binary file added src/assets/visual-pair/playground6.jpg
Binary file added src/assets/visual-pair/playground7.jpg
Binary file added src/assets/visual-pair/playground8.jpg
Binary file added src/assets/visual-pair/temple1.jpg
Binary file added src/assets/visual-pair/temple2.jpg
Binary file added src/assets/visual-pair/temple3.jpg
Binary file added src/assets/visual-pair/temple4.jpg
Binary file added src/assets/visual-pair/temple5.jpg
Binary file added src/assets/visual-pair/temple6.jpg
Binary file added src/assets/visual-pair/temple7.jpg
Binary file added src/assets/visual-pair/temple8.jpg
Binary file added src/assets/visual-pair/underwater1.jpg
Binary file added src/assets/visual-pair/underwater2.jpg
Binary file added src/assets/visual-pair/underwater3.jpg
Binary file added src/assets/visual-pair/underwater4.jpg
Binary file added src/assets/visual-pair/underwater5.jpg
Binary file added src/assets/visual-pair/underwater6.jpg
Binary file added src/assets/visual-pair/underwater7.jpg
Binary file added src/assets/visual-pair/underwater8.jpg
112 changes: 88 additions & 24 deletions src/components/ChoiceReactionTimeMain.tsx
Original file line number Diff line number Diff line change
@@ -1,40 +1,104 @@
import { FC } from "react";
import { Box, Typography } from "@mui/material";
import { FC, useEffect, useState } from "react";
import { Box, Button, Typography } from "@mui/material";
import { shuffleList } from "../utils/generalUtils";
import { choiceReactionTimeConfig as uiConfig } from "../config/uiConfig";
import { choiceReactionTimeConfig as testConfig } from "../config/testConfig";

interface ChoiceReactionTimeMainProps {
correctIndex: 0 | 1 | 2;
correctSymbol: string;
handleSubmit: (result: boolean) => void;
}

export const ChoiceReactionTimeMain: FC<ChoiceReactionTimeMainProps> = ({ correctIndex, correctSymbol }) => {
export const ChoiceReactionTimeMain: FC<ChoiceReactionTimeMainProps> = ({
correctIndex,
correctSymbol,
handleSubmit,
}) => {
const [hide, setHide] = useState(true);

const waitTime =
Math.floor(Math.random() * (testConfig.waitTimeMax - testConfig.waitTimeMin)) + testConfig.waitTimeMin;
const symbols = shuffleList(["<", ">"]);
const colors = shuffleList([uiConfig.choiceColor.color0, uiConfig.choiceColor.color1]);

const submitHandler = (input: string) => {
const result = correctSymbol === input;
setHide(true);
handleSubmit(result);
};

useEffect(() => {
const timer = setTimeout(() => {
setHide(false);
}, waitTime);

return () => clearTimeout(timer);
}, [handleSubmit]);

return (
<Box position="relative">
<Box>
{Array.from({ length: 3 }).map((_, index) => (
<Box
key={index}
width={80}
height={80}
display="flex"
alignItems="center"
justifyContent="center"
border={1}
marginY={2}
sx={{
backgroundColor: index === correctIndex ? colors[0] : colors[1],
}}
>
<Typography variant="h2" fontWeight="bold">
{index === correctIndex ? correctSymbol : symbols.pop()}
</Typography>
</Box>
))}
<Box display="flex" alignItems="center" gap={15}>
<Button
variant="contained"
onClick={() => submitHandler("<")}
sx={{
backgroundColor: uiConfig.buttonColor,
"&:hover": {
backgroundColor: uiConfig.buttonColor,
},
width: 160,
height: 160,
color: "black",
fontSize: 80,
fontWeight: "bold",
}}
>
{"<"}
</Button>
<Box position="relative">
<Box>
{hide ? (
<Box width={82} />
) : (
Array.from({ length: 3 }).map((_, index) => (
<Box
key={index}
width={80}
height={80}
display="flex"
alignItems="center"
justifyContent="center"
border={1}
marginY={2}
sx={{
backgroundColor: index === correctIndex ? colors[0] : colors[1],
}}
>
<Typography variant="h2" fontWeight="bold">
{index === correctIndex ? correctSymbol : symbols.pop()}
</Typography>
</Box>
))
)}
</Box>
</Box>
<Button
variant="contained"
onClick={() => submitHandler(">")}
sx={{
backgroundColor: uiConfig.buttonColor,
"&:hover": {
backgroundColor: uiConfig.buttonColor,
},
width: 160,
height: 160,
color: "black",
fontSize: 80,
fontWeight: "bold",
}}
>
{">"}
</Button>
</Box>
);
};
34 changes: 0 additions & 34 deletions src/components/DigitSymbolCodingMain.tsx

This file was deleted.

Loading

0 comments on commit d4d8285

Please sign in to comment.