diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 9e26dfee..00000000 --- a/.vscode/settings.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/README.md b/README.md index f6e50555..bc5441ff 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,15 @@ # Boilerplate -This is a simple boilerplate designed to serve as robust template for quickly starting development on a [Typescript](https://www.typescriptlang.org) based [MERN](https://www.mongodb.com/mern-stack) web application. +This is a web app built for Abuse and Sexual Assault Prevention, a student organization at Penn, as a resource tree for all sexual violence resources at Penn. This is a [Typescript](https://www.typescriptlang.org) based [MERN](https://www.mongodb.com/mern-stack) web application. ## Features -- Session based authentication with [Passport](https://www.passportjs.org) -- Emailing for account verification and resetting password with [SendGrid](https://sendgrid.com) -- Admin functionality for viewing/deleting/promoting other users -- Clean authentication pages built with [Material UI](https://mui.com) -- In memory database testing with [Jest](https://jestjs.io) and [Supertest](https://www.npmjs.com/package/supertest) -- [AirBnb Typescript styling](https://github.com/airbnb/javascript) with [Prettier](https://prettier.io) and [ESLint](https://eslint.org) -- [Husky](https://typicode.github.io/husky/#/) and [lint-staged](https://github.com/okonet/lint-staged) for checking linting on commits -- [GitHub Actions](https://docs.github.com/en/actions) for ensuring linting + tests pass on pushes +- Admin portal with ability to change resources, questions, and answers +- Rich text editor for answer and question changes +- Tree-based data structure in backend +- Private and secure user experience that does not track user data +- Back and Next buttons, as well as ability to see other resources if different answers were selected +- Dictionary and side help bar for unkown terms, filtered based on the words in the question/answer/resource ## Required tools diff --git a/client/src/AdminDashboard/AdminDashboardPage.tsx b/client/src/AdminDashboard/AdminDashboardPage.tsx index 5e1b7984..3e93eb53 100644 --- a/client/src/AdminDashboard/AdminDashboardPage.tsx +++ b/client/src/AdminDashboard/AdminDashboardPage.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { Typography, Grid } from '@mui/material'; +import { Typography, Grid, AppBar } from '@mui/material'; import ScreenGrid from '../components/ScreenGrid'; // import UserTable from './QuestionTable'; import QuestionTable from './QuestionTable'; diff --git a/client/src/App.tsx b/client/src/App.tsx index 215f7bb5..b9ef4009 100644 --- a/client/src/App.tsx +++ b/client/src/App.tsx @@ -5,7 +5,7 @@ import { BrowserRouter, Routes, Route } from 'react-router-dom'; import { Provider } from 'react-redux'; import { PersistGate } from 'redux-persist/integration/react'; import theme from './assets/theme'; -import { store, persistor } from './util/redux/store'; +import { persistor, store } from './util/redux/store'; import NotFoundPage from './NotFound/NotFoundPage'; import HomePage from './Home/HomePage'; import AboutThisProjectPage from './Home/AboutThisProjectPage'; @@ -23,6 +23,7 @@ import RegisterPage from './Authentication/RegisterPage'; import LoginPage from './Authentication/LoginPage'; import EmailResetPasswordPage from './Authentication/EmailResetPasswordPage'; import ResetPasswordPage from './Authentication/ResetPasswordPage'; +import QuestionPage from './Question/QuestionPage'; function App() { /* const testa = { @@ -61,45 +62,34 @@ function App() { path="/reset-password/:token" element={} /> - {/* }> */} - } /> - {/* */} - } /> - } /> + } /> + } /> {/* Routes accessed only if user is authenticated */} - {/* }> */} }> - {/* } /> */} + } + /> + } /> + } /> + } /> {/* Route which redirects to a different page depending on if the user is an authenticated or not by utilizing the DynamicRedirect component */} + } /> + } /> {/* Route which is accessed if no other route is matched */} } /> - - } /> - } /> - - {/* - - - } - /> */} - {/* } /> */} - {/* } /> */} diff --git a/client/src/Authentication/LoginPage.tsx b/client/src/Authentication/LoginPage.tsx index c930499b..9ac7af28 100644 --- a/client/src/Authentication/LoginPage.tsx +++ b/client/src/Authentication/LoginPage.tsx @@ -134,7 +134,7 @@ function LoginPage() { - Log In + Administrator Log In @@ -177,11 +177,11 @@ function LoginPage() { Forgot password? - + {/* Sign up - + */} diff --git a/client/src/Home/AboutThisProjectPage.tsx b/client/src/Home/AboutThisProjectPage.tsx index 5ecca407..7632c7b5 100644 --- a/client/src/Home/AboutThisProjectPage.tsx +++ b/client/src/Home/AboutThisProjectPage.tsx @@ -21,14 +21,14 @@ function AboutThisProjectPage() { direction="row" justifyContent="space-between" alignItems="flex-start" - height="100%" + height="100vh" fit-content="100%" > - + Guide to Interpersonal Resources at Penn @@ -130,7 +130,15 @@ function AboutThisProjectPage() { - +