From 1b86e6260fdc619e5a3f8a049a7af9873f0ae498 Mon Sep 17 00:00:00 2001 From: Piyush Sharma Date: Tue, 1 Mar 2022 13:32:42 -0500 Subject: [PATCH 1/3] Added Routing and Sign in/up Pages --- package-lock.json | 6 +++ sports-matcher/package.json | 5 ++ sports-matcher/src/App.js | 22 +++------ sports-matcher/src/SignIn.js | 68 ++++++++++++++++++++++++++ sports-matcher/src/SignUp.js | 94 ++++++++++++++++++++++++++++++++++++ sports-matcher/src/index.js | 5 +- 6 files changed, 183 insertions(+), 17 deletions(-) create mode 100644 package-lock.json create mode 100644 sports-matcher/src/SignIn.js create mode 100644 sports-matcher/src/SignUp.js diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..a3c03c6 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "team58", + "lockfileVersion": 2, + "requires": true, + "packages": {} +} diff --git a/sports-matcher/package.json b/sports-matcher/package.json index bad46ea..71556c7 100644 --- a/sports-matcher/package.json +++ b/sports-matcher/package.json @@ -3,11 +3,16 @@ "version": "0.1.0", "private": true, "dependencies": { + "@emotion/react": "^11.8.1", + "@emotion/styled": "^11.8.1", + "@mui/icons-material": "^5.4.4", + "@mui/material": "^5.4.4", "@testing-library/jest-dom": "^5.16.2", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.5.0", "react": "^17.0.2", "react-dom": "^17.0.2", + "react-router-dom": "^6.2.2", "react-scripts": "^5.0.0", "web-vitals": "^2.1.4" }, diff --git a/sports-matcher/src/App.js b/sports-matcher/src/App.js index 3784575..f00a5a2 100644 --- a/sports-matcher/src/App.js +++ b/sports-matcher/src/App.js @@ -1,23 +1,15 @@ import logo from './logo.svg'; import './App.css'; - +import { Routes, Route, Link } from "react-router-dom"; +import SignIn from './SignIn'; +import SignUp from './SignUp'; function App() { return (
-
- logo -

- Edit src/App.js and save to reload. -

- - Learn React - -
+ + } /> + } /> +
); } diff --git a/sports-matcher/src/SignIn.js b/sports-matcher/src/SignIn.js new file mode 100644 index 0000000..e7cd153 --- /dev/null +++ b/sports-matcher/src/SignIn.js @@ -0,0 +1,68 @@ +import * as React from 'react'; +import Avatar from '@mui/material/Avatar'; +import Button from '@mui/material/Button'; +import CssBaseline from '@mui/material/CssBaseline'; +import TextField from '@mui/material/TextField'; +import FormControlLabel from '@mui/material/FormControlLabel'; +import Checkbox from '@mui/material/Checkbox'; +import { useHistory } from 'react-router-dom'; +import Box from '@mui/material/Box'; +import Typography from '@mui/material/Typography'; +import Container from '@mui/material/Container'; +import { Link } from '@mui/material'; +import AccountCircleIcon from '@mui/icons-material/AccountCircle'; + +export default function SignIn() { + return ( + + + + + + + + Sign in + + + + + + + {"Don't have an account?"} + + + + + )} \ No newline at end of file diff --git a/sports-matcher/src/SignUp.js b/sports-matcher/src/SignUp.js new file mode 100644 index 0000000..c4e86e2 --- /dev/null +++ b/sports-matcher/src/SignUp.js @@ -0,0 +1,94 @@ +import * as React from 'react'; +import Avatar from '@mui/material/Avatar'; +import Button from '@mui/material/Button'; +import CssBaseline from '@mui/material/CssBaseline'; +import TextField from '@mui/material/TextField'; +import FormControlLabel from '@mui/material/FormControlLabel'; +import Checkbox from '@mui/material/Checkbox'; +import { useHistory } from 'react-router-dom'; +import Box from '@mui/material/Box'; +import AccountBoxIcon from '@mui/icons-material/AccountBox'; +import Typography from '@mui/material/Typography'; +import Container from '@mui/material/Container'; +import { Link } from '@mui/material'; +import { Router, Link as RouterLink } from 'react-router-dom'; +import { Grid } from '@mui/material'; + +export default function SignUp() { + return ( + + + + + + + + Sign up + + + + + + + + + + + + + + + + + + + {'Already have an account?'} + + + + + )} \ No newline at end of file diff --git a/sports-matcher/src/index.js b/sports-matcher/src/index.js index ef2edf8..78717fc 100644 --- a/sports-matcher/src/index.js +++ b/sports-matcher/src/index.js @@ -1,13 +1,14 @@ import React from 'react'; import ReactDOM from 'react-dom'; +import { BrowserRouter } from "react-router-dom"; import './index.css'; import App from './App'; import reportWebVitals from './reportWebVitals'; ReactDOM.render( - + - , + , document.getElementById('root') ); From 4c75dc2c752eab185dccda8dd8ecd3fd0f4043eb Mon Sep 17 00:00:00 2001 From: Piyush Sharma Date: Sat, 5 Mar 2022 18:51:36 -0500 Subject: [PATCH 2/3] Cleaned up files --- sports-matcher/src/App.js | 1 - sports-matcher/src/SignIn.js | 3 --- sports-matcher/src/SignUp.js | 5 +---- 3 files changed, 1 insertion(+), 8 deletions(-) diff --git a/sports-matcher/src/App.js b/sports-matcher/src/App.js index f00a5a2..13e5403 100644 --- a/sports-matcher/src/App.js +++ b/sports-matcher/src/App.js @@ -1,4 +1,3 @@ -import logo from './logo.svg'; import './App.css'; import { Routes, Route, Link } from "react-router-dom"; import SignIn from './SignIn'; diff --git a/sports-matcher/src/SignIn.js b/sports-matcher/src/SignIn.js index e7cd153..6192d11 100644 --- a/sports-matcher/src/SignIn.js +++ b/sports-matcher/src/SignIn.js @@ -3,9 +3,6 @@ import Avatar from '@mui/material/Avatar'; import Button from '@mui/material/Button'; import CssBaseline from '@mui/material/CssBaseline'; import TextField from '@mui/material/TextField'; -import FormControlLabel from '@mui/material/FormControlLabel'; -import Checkbox from '@mui/material/Checkbox'; -import { useHistory } from 'react-router-dom'; import Box from '@mui/material/Box'; import Typography from '@mui/material/Typography'; import Container from '@mui/material/Container'; diff --git a/sports-matcher/src/SignUp.js b/sports-matcher/src/SignUp.js index c4e86e2..25d6ef2 100644 --- a/sports-matcher/src/SignUp.js +++ b/sports-matcher/src/SignUp.js @@ -3,15 +3,11 @@ import Avatar from '@mui/material/Avatar'; import Button from '@mui/material/Button'; import CssBaseline from '@mui/material/CssBaseline'; import TextField from '@mui/material/TextField'; -import FormControlLabel from '@mui/material/FormControlLabel'; -import Checkbox from '@mui/material/Checkbox'; -import { useHistory } from 'react-router-dom'; import Box from '@mui/material/Box'; import AccountBoxIcon from '@mui/icons-material/AccountBox'; import Typography from '@mui/material/Typography'; import Container from '@mui/material/Container'; import { Link } from '@mui/material'; -import { Router, Link as RouterLink } from 'react-router-dom'; import { Grid } from '@mui/material'; export default function SignUp() { @@ -81,6 +77,7 @@ export default function SignUp() { type="submit" fullWidth variant="contained" + color='info' sx={{ mt: 3, mb: 2 }} > Sign Up From e1befed1155981029f98c3424882cf59912d49bd Mon Sep 17 00:00:00 2001 From: Piyush Sharma Date: Sun, 6 Mar 2022 20:22:23 -0500 Subject: [PATCH 3/3] Added Homepage and Navbar --- sports-matcher/package.json | 2 + sports-matcher/public/index.html | 6 ++ sports-matcher/src/App.js | 2 + sports-matcher/src/Home.css | 4 + sports-matcher/src/Home.js | 46 ++++++++++ sports-matcher/src/Homebar.js | 44 +++++++++ sports-matcher/src/Navbar.js | 153 +++++++++++++++++++++++++++++++ sports-matcher/src/SignIn.js | 20 +++- sports-matcher/src/SignUp.js | 1 + 9 files changed, 273 insertions(+), 5 deletions(-) create mode 100644 sports-matcher/src/Home.css create mode 100644 sports-matcher/src/Home.js create mode 100644 sports-matcher/src/Homebar.js create mode 100644 sports-matcher/src/Navbar.js diff --git a/sports-matcher/package.json b/sports-matcher/package.json index 71556c7..e8e0974 100644 --- a/sports-matcher/package.json +++ b/sports-matcher/package.json @@ -10,7 +10,9 @@ "@testing-library/jest-dom": "^5.16.2", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.5.0", + "bootstrap": "^5.1.3", "react": "^17.0.2", + "react-bootstrap": "^2.2.0", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", "react-scripts": "^5.0.0", diff --git a/sports-matcher/public/index.html b/sports-matcher/public/index.html index aa069f2..c87dbda 100644 --- a/sports-matcher/public/index.html +++ b/sports-matcher/public/index.html @@ -24,6 +24,12 @@ work correctly both with client-side routing and a non-root public URL. Learn how to configure a non-root public URL by running `npm run build`. --> + React App diff --git a/sports-matcher/src/App.js b/sports-matcher/src/App.js index 13e5403..e631343 100644 --- a/sports-matcher/src/App.js +++ b/sports-matcher/src/App.js @@ -2,10 +2,12 @@ import './App.css'; import { Routes, Route, Link } from "react-router-dom"; import SignIn from './SignIn'; import SignUp from './SignUp'; +import Home from './Home'; function App() { return (
+ } /> } /> } /> diff --git a/sports-matcher/src/Home.css b/sports-matcher/src/Home.css new file mode 100644 index 0000000..84dede7 --- /dev/null +++ b/sports-matcher/src/Home.css @@ -0,0 +1,4 @@ +h1, h2{ + -webkit-text-stroke-width: 1px; + -webkit-text-stroke-color: black; +} \ No newline at end of file diff --git a/sports-matcher/src/Home.js b/sports-matcher/src/Home.js new file mode 100644 index 0000000..c42e1fa --- /dev/null +++ b/sports-matcher/src/Home.js @@ -0,0 +1,46 @@ +import * as React from 'react'; +import Homebar from './Homebar'; +import { Carousel } from 'react-bootstrap'; +import './Home.css'; +export default function Home() { + return( + + + + + Connect Slide + +

Connect

+

Connect with other athletes in your area!

+
+
+ + Schedule Slide + +

Schedule

+

Schedule sport meets with other athletes!

+
+
+ + Rent Slide + +

Rent

+

Rent sports equipment from other athletes!

+
+
+
+
+ ) +} \ No newline at end of file diff --git a/sports-matcher/src/Homebar.js b/sports-matcher/src/Homebar.js new file mode 100644 index 0000000..7f7e49f --- /dev/null +++ b/sports-matcher/src/Homebar.js @@ -0,0 +1,44 @@ +import * as React from 'react'; +import AppBar from '@mui/material/AppBar'; +import Box from '@mui/material/Box'; +import Toolbar from '@mui/material/Toolbar'; +import Typography from '@mui/material/Typography'; +import Container from '@mui/material/Container'; +import Button from '@mui/material/Button'; +import { useNavigate } from 'react-router-dom'; + +export default function Navbar(){ + + const navigate = useNavigate(); + + return ( + + + + + Sports Matcher + + + + + + + + + ); +}; diff --git a/sports-matcher/src/Navbar.js b/sports-matcher/src/Navbar.js new file mode 100644 index 0000000..6fef1b2 --- /dev/null +++ b/sports-matcher/src/Navbar.js @@ -0,0 +1,153 @@ +import * as React from 'react'; +import AppBar from '@mui/material/AppBar'; +import Box from '@mui/material/Box'; +import Toolbar from '@mui/material/Toolbar'; +import IconButton from '@mui/material/IconButton'; +import Typography from '@mui/material/Typography'; +import Menu from '@mui/material/Menu'; +import MenuIcon from '@mui/icons-material/Menu'; +import Container from '@mui/material/Container'; +import Button from '@mui/material/Button'; +import Tooltip from '@mui/material/Tooltip'; +import MenuItem from '@mui/material/MenuItem'; +import AccountCircle from '@mui/icons-material/AccountCircle'; +import ForumIcon from '@mui/icons-material/Forum'; +import { useNavigate } from 'react-router-dom'; + +const pages = ['Dashboard']; + +export default function Navbar(){ + const [anchorElNav, setAnchorElNav] = React.useState(null); + const [anchorElUser, setAnchorElUser] = React.useState(null); + + const handleOpenNavMenu = (event) => { + setAnchorElNav(event.currentTarget); + }; + const handleOpenUserMenu = (event) => { + setAnchorElUser(event.currentTarget); + }; + + const handleCloseNavMenu = () => { + setAnchorElNav(null); + }; + + const handleCloseUserMenu = () => { + setAnchorElUser(null); + }; + + const navigate = useNavigate(); + + return ( + + + + + Sports Matcher + + + + + + + + {pages.map((page) => ( + + {page} + + ))} + + + + Sports Matcher + + + {pages.map((page) => ( + + ))} + + + + + + + + + + + + + + + + + + Profile + + + Account + + navigate('sign-in')}> + Sign Out + + + + + + + ); +}; diff --git a/sports-matcher/src/SignIn.js b/sports-matcher/src/SignIn.js index 6192d11..a5df9a6 100644 --- a/sports-matcher/src/SignIn.js +++ b/sports-matcher/src/SignIn.js @@ -8,8 +8,18 @@ import Typography from '@mui/material/Typography'; import Container from '@mui/material/Container'; import { Link } from '@mui/material'; import AccountCircleIcon from '@mui/icons-material/AccountCircle'; +import { useNavigate } from 'react-router-dom'; export default function SignIn() { + const navigate = useNavigate(); + const handleSubmit = (event) => { + event.preventDefault(); + const data = new FormData(event.currentTarget); + // eslint-disable-next-line no-console + if(data.get('username') == "admin" && data.get('password') == "admin"){ + navigate('/'); + } + }; return ( @@ -27,15 +37,15 @@ export default function SignIn() { Sign in - +