From ad37c9da55f28c723a67d883b1391b436e117349 Mon Sep 17 00:00:00 2001 From: Ethan Date: Sun, 12 Oct 2025 19:44:54 -0700 Subject: [PATCH 1/6] Added the script 'config-unix', which is the same as config but the invalid "copy" command is replaced with "cp". --- client/package.json | 1 + core/package.json | 1 + package.json | 1 + socket/package.json | 1 + 4 files changed, 4 insertions(+) diff --git a/client/package.json b/client/package.json index 49e13c66..2db5878a 100644 --- a/client/package.json +++ b/client/package.json @@ -42,6 +42,7 @@ "vitest": "^2.1.3" }, "scripts": { + "config-unix": "cp .env.example .env && nano .env", "config": "copy .env.example .env && nano .env", "start": "vite", "build": "vite build", diff --git a/core/package.json b/core/package.json index a307bcf3..51810f20 100644 --- a/core/package.json +++ b/core/package.json @@ -10,6 +10,7 @@ "sequelize-cli": "^6.6.2" }, "scripts": { + "config-unix": "cp .env.example .env && nano .env", "config": "copy .env.example .env && nano .env", "test": "NODE_ENV=test jest --runInBand", "start": "npm run start:dev", diff --git a/package.json b/package.json index 2a9a1678..1cf4dce4 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ ], "scripts": { "init": "chmod +x ./docker/first_time_setup.sh && ./docker/first_time_setup.sh", + "config-unix": "npm run config-unix -w=core && npm run config-unix -w=client && npm run config-unix -w=socket", "config": "npm run config -w=core && npm run config -w=client && npm run config -w=socket", "start": "npm run build:containers && npm run deploy:stack", "stop": "npm run remove:stack", diff --git a/socket/package.json b/socket/package.json index d99362ce..10daf075 100644 --- a/socket/package.json +++ b/socket/package.json @@ -13,6 +13,7 @@ "socket.io": "4.8.1" }, "scripts": { + "config-unix": "cp .env.example .env && nano .env", "config": "copy .env.example .env && nano .env", "start": "npm run start:dev", "test": "jest --runInBand", From e6ad451540fa782dc08f90d3471c1a7b17243f26 Mon Sep 17 00:00:00 2001 From: Ethan Date: Sun, 12 Oct 2025 20:08:44 -0700 Subject: [PATCH 2/6] Documented the addition of config-unix --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index 5363fb02..09c45fdf 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,11 @@ Install the following: - [Grafana k6](https://k6.io/docs/getting-started/installation/) – for performance/load testing ### Setup & Run +> [!IMPORTANT] +> Some steps will vary between Windows and UNIX systems (Linux and macOS). These will be noted in the script. + +> [!IMPORTANT] +> Some commands may require administrator privileges. ```bash # === Open Response First-Time Setup Script === @@ -59,7 +64,15 @@ npm run init # Generate and configure local .env files # This will set up required environment variables # ----------------------------------------------- +# WINDOWS +# ----------------------------------------------- npm run config + +# ----------------------------------------------- +# LINUX / MAC +# ----------------------------------------------- +npm run config-unix + # This modifies: # - /core/.env (Open Response Core) # - /client/.env (Open Response Client) From fc571ae0265beb3fbbdd90bdf1fabc8be90945f1 Mon Sep 17 00:00:00 2001 From: Ethan Date: Wed, 15 Oct 2025 13:03:18 -0700 Subject: [PATCH 3/6] GitHub Webhook test (I just added a space to a random file) --- client/src/hooks/useCourses.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/hooks/useCourses.js b/client/src/hooks/useCourses.js index 48c5dbaf..56a87be3 100644 --- a/client/src/hooks/useCourses.js +++ b/client/src/hooks/useCourses.js @@ -33,4 +33,4 @@ function useCourses() { return [courses, message, error, loading] } -export default useCourses \ No newline at end of file +export default useCourses From cc17a5390af1a0ea7ab060cf9e2d4e064b50b9e8 Mon Sep 17 00:00:00 2001 From: Ethan Date: Sun, 9 Nov 2025 15:37:43 -0800 Subject: [PATCH 4/6] Added sitemap document Added a sitemap that can be opened with draw.io. --- docs/Sitemap.drawio | 739 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 739 insertions(+) create mode 100644 docs/Sitemap.drawio diff --git a/docs/Sitemap.drawio b/docs/Sitemap.drawio new file mode 100644 index 00000000..48d165da --- /dev/null +++ b/docs/Sitemap.drawio @@ -0,0 +1,739 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 1d28c3342df4c922d218373cf98373b5e56d8354 Mon Sep 17 00:00:00 2001 From: Ethan Date: Sat, 15 Nov 2025 22:59:30 -0800 Subject: [PATCH 5/6] Updated the sitemap to include a guide on stacked lists as tabs. --- docs/Sitemap.drawio | 497 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 425 insertions(+), 72 deletions(-) diff --git a/docs/Sitemap.drawio b/docs/Sitemap.drawio index 48d165da..2552b5f3 100644 --- a/docs/Sitemap.drawio +++ b/docs/Sitemap.drawio @@ -1,11 +1,11 @@ - + - + - + @@ -25,17 +25,17 @@ - + - + - + @@ -44,13 +44,10 @@ - + - - - - + @@ -58,7 +55,7 @@ - + @@ -72,14 +69,17 @@ + + + - + - - + + @@ -88,10 +88,10 @@ - + - + @@ -100,7 +100,7 @@ - + @@ -118,7 +118,7 @@ - + @@ -151,7 +151,7 @@ - + @@ -166,7 +166,7 @@ - + @@ -265,7 +265,7 @@ - + @@ -326,7 +326,7 @@ - + @@ -341,7 +341,7 @@ - + @@ -403,7 +403,7 @@ - + @@ -418,7 +418,7 @@ - + @@ -427,7 +427,7 @@ - + @@ -436,7 +436,7 @@ - + @@ -460,7 +460,7 @@ - + @@ -476,7 +476,7 @@ - + @@ -488,7 +488,7 @@ - + @@ -497,7 +497,7 @@ - + @@ -506,7 +506,7 @@ - + @@ -527,7 +527,7 @@ - + @@ -542,7 +542,7 @@ - + @@ -576,7 +576,7 @@ - + @@ -585,7 +585,7 @@ - + @@ -596,13 +596,13 @@ - + - + @@ -621,16 +621,16 @@ - + - + - + @@ -651,32 +651,22 @@ - + - - - - - - - - - - - + - + - + @@ -685,7 +675,7 @@ - + @@ -697,42 +687,405 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + - + - - + + - + - + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 60a5858400006712fe53643a4c2f6df0b1b1d2a3 Mon Sep 17 00:00:00 2001 From: Ethan Date: Mon, 17 Nov 2025 23:53:50 -0800 Subject: [PATCH 6/6] Deleted duplicate file ./client/src/Login.jsx --- client/src/Login.jsx | 133 ------------------------------------------- 1 file changed, 133 deletions(-) delete mode 100644 client/src/Login.jsx diff --git a/client/src/Login.jsx b/client/src/Login.jsx deleted file mode 100644 index 71bd9a38..00000000 --- a/client/src/Login.jsx +++ /dev/null @@ -1,133 +0,0 @@ -import React, { useState } from "react"; -import { useNavigate, useSearchParams } from 'react-router-dom'; -import Form from "react-bootstrap/Form"; -import { Container, Row, Col, Dropdown, NavLink, Button, } from 'react-bootstrap' -import apiUtil from '../utils/apiUtil' -import { useDispatch } from 'react-redux'; -import { login } from '../redux/actions'; -import Notice from '../components/Notice' -import { Link } from "react-router-dom"; -import { TailSpin } from 'react-loader-spinner' -import "../styles/.css" - -const VITE_NAME = import.meta.env.VITE_NAME - -export default function Login(props) { - const dispatch = useDispatch() - const navigate = useNavigate() - const [ params ] = useSearchParams() - - //form fields - const [email, setEmail] = useState(""); - const [password, setPassword] = useState(""); - const [error, setError] = useState(false) - const [message, setMessage] = useState("") - const [loading, setLoading] = useState(false) - - // TODO: expand this validation & use it - function validateForm() { - return email.length > 0 && password.length > 0; - } - - // TODO: add some sort of loading symbol when waiting for a response - async function authenticateUser(user){ - const response = await apiUtil('post', 'users/login', { dispatch: dispatch, navigate: navigate}, user) - setLoading(false) - setMessage(response.message ? response.message : "") - setError(response.error) - if (response.status === 200) { - dispatch(login(response.data.user, response.data.status)) - try { - navigate(params.get('redirect')) - } catch(e) { - navigate('/') - } - } -} - -/* LoginForm component -Could maybe be moved to its own component file. - - This component is an email and password login with non-functional SSO button - logins are handled on submit through authenticateUser function -*/ -class LoginForm extends React.Component { - constructor(props){ - super(props); - this.state = { - email: '', - rawPassword: '' - }; - - this.handleChange = this.handleChange.bind(this); - this.handleSubmit = this.handleSubmit.bind(this); - } - - // every time a text box is updated, it's react state is updated as well. - handleChange(event) { - const { name, value } = event.target; - this.setState({ - [name]: value - }); - } - - //input React states to authenticateUser function. - handleSubmit() { - event.preventDefault(); - setLoading(true) - const user = { - email: this.state.email, - rawPassword: this.state.rawPassword, - } - authenticateUser(user); - } - - render(){ - return( -
- {/*Input fields: value mapped to React state through handleChange*/} - - - Forgot your password? - {message != "" && error && } - -

or

- - - ) - } -} - - return ( -
-
-
- - {/*Image attr: Unknown, need to ask*/} - - {VITE_NAME} - -
-

Welcome Back!

-

New user?

-
- -
-
-
-
-

Log in

- -
-
-
- ); -}