diff --git a/.gitignore b/.gitignore index 14717bd..b6a0822 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .venv __pycache__ -notes.txt \ No newline at end of file +notes.txt +react_OLD \ No newline at end of file diff --git a/react_OLD/.gitattributes b/react_OLD/.gitattributes deleted file mode 100644 index dfe0770..0000000 --- a/react_OLD/.gitattributes +++ /dev/null @@ -1,2 +0,0 @@ -# Auto detect text files and perform LF normalization -* text=auto diff --git a/react_OLD/.gitignore b/react_OLD/.gitignore deleted file mode 100644 index b737a53..0000000 --- a/react_OLD/.gitignore +++ /dev/null @@ -1,26 +0,0 @@ -site - -# dependencies -/node_modules -/.pnp -.pnp.js - -# testing -/coverage - -# production -/build - -# misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* - - -notes.txt \ No newline at end of file diff --git a/react_OLD/Dockerfile b/react_OLD/Dockerfile deleted file mode 100644 index b4709d3..0000000 --- a/react_OLD/Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -# pull official base image -FROM node:13.12.0-alpine - -# set working directory -WORKDIR /app - -# add `/app/node_modules/.bin` to $PATH -ENV PATH /app/node_modules/.bin:$PATH - -# install app dependencies -COPY package.json ./ -COPY package-lock.json ./ -RUN npm install --silent -RUN npm install react-scripts@3.4.1 -g --silent - -RUN mkdir node_modules/.cache && chmod -R 777 node_modules/.cache - - -# add app -COPY . ./ -ENV PORT=8080 - -# start app -CMD ["npm", "start"] diff --git a/react_OLD/public/.htaccess b/react_OLD/public/.htaccess deleted file mode 100644 index 9fcf23f..0000000 --- a/react_OLD/public/.htaccess +++ /dev/null @@ -1,6 +0,0 @@ -# 301 REDIRECT WWW TO NON-WWW - -RewriteEngine On -RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] -RewriteRule ^(.*)$ http://%1/$1 [R=301,L] - \ No newline at end of file diff --git a/react_OLD/public/CNAME b/react_OLD/public/CNAME deleted file mode 100644 index 0bdd7d6..0000000 --- a/react_OLD/public/CNAME +++ /dev/null @@ -1,2 +0,0 @@ -asimonson.com -www.asimonson.com \ No newline at end of file diff --git a/react_OLD/public/Resume.pdf b/react_OLD/public/Resume.pdf deleted file mode 100644 index 38a0aa1..0000000 Binary files a/react_OLD/public/Resume.pdf and /dev/null differ diff --git a/react_OLD/public/_config.yml b/react_OLD/public/_config.yml deleted file mode 100644 index c87a61e..0000000 --- a/react_OLD/public/_config.yml +++ /dev/null @@ -1 +0,0 @@ -theme: minima \ No newline at end of file diff --git a/react_OLD/public/favicon.ico b/react_OLD/public/favicon.ico deleted file mode 100644 index 55d7672..0000000 Binary files a/react_OLD/public/favicon.ico and /dev/null differ diff --git a/react_OLD/public/index.html b/react_OLD/public/index.html deleted file mode 100644 index 9433416..0000000 --- a/react_OLD/public/index.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - Simonson - Portfolio - - - - -
- - diff --git a/react_OLD/public/lol.jpg b/react_OLD/public/lol.jpg deleted file mode 100644 index fc57ded..0000000 Binary files a/react_OLD/public/lol.jpg and /dev/null differ diff --git a/react_OLD/public/manifest.json b/react_OLD/public/manifest.json deleted file mode 100644 index 080d6c7..0000000 --- a/react_OLD/public/manifest.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "short_name": "React App", - "name": "Create React App Sample", - "icons": [ - { - "src": "favicon.ico", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon" - }, - { - "src": "logo192.png", - "type": "image/png", - "sizes": "192x192" - }, - { - "src": "logo512.png", - "type": "image/png", - "sizes": "512x512" - } - ], - "start_url": ".", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" -} diff --git a/react_OLD/public/readme-stats-vercel-01-25-2023.svg b/react_OLD/public/readme-stats-vercel-01-25-2023.svg deleted file mode 100644 index 353531c..0000000 --- a/react_OLD/public/readme-stats-vercel-01-25-2023.svg +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - - - - - - - - Most Used Languages - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JavaScript 42.78% - - - - - - - C++ 21.15% - - - - - - - Python 16.57% - - - - - - - HTML 11.23% - - - - - - - CSS 8.27% - - - - - - - - - \ No newline at end of file diff --git a/react_OLD/public/robots.txt b/react_OLD/public/robots.txt deleted file mode 100644 index 35e4ebf..0000000 --- a/react_OLD/public/robots.txt +++ /dev/null @@ -1,4 +0,0 @@ -# https://www.robotstxt.org/robotstxt.html -User-agent: * -Disallow: /404/ -Sitemap: https://asimonson.com/sitemap.xml \ No newline at end of file diff --git a/react_OLD/public/sitemap.xml b/react_OLD/public/sitemap.xml deleted file mode 100644 index 8fc4dbd..0000000 --- a/react_OLD/public/sitemap.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - https://asimonson.com - https://asimonson.com/about - https://asimonson.com/projects - https://asimonson.com/Resume - 2022-06-04 - - \ No newline at end of file diff --git a/react_OLD/src/App.js b/react_OLD/src/App.js deleted file mode 100644 index b9f349d..0000000 --- a/react_OLD/src/App.js +++ /dev/null @@ -1,56 +0,0 @@ -import { Route, Link, Routes, BrowserRouter as Router, Navigate } from "react-router-dom"; - -import "./assets/css/App.css"; -import "./assets/css/checkbox.css" -import "./assets/css/head.scss"; -import menu from "./assets/icons/menu.svg"; -import Nav from "./componets/Nav.js"; -import Socials from "./componets/Socials.js"; -import Name from "./componets/Name.js"; -import Home from "./pages/Home.js"; -import Projects from "./pages/Projects"; -import Activities from "./pages/Activities"; -import AboutMe from "./pages/AboutMe"; -import Idler from "./componets/Idler"; -import ErrorNotFound from "./pages/Error"; -import AOS from "aos"; -// import 'aos/dist/aos.css'; // You can also use for styles -import { toggleMenu } from "./scripts/responsive"; - -AOS.init(); -function App() { - return ( - - -
-
- - menu - -
- - {/* } /> */} - }> - }> - }> - }> - } /> - } /> - -
- -
-
-
- ); -} - -export default App; diff --git a/react_OLD/src/assets/chesscom-embed/default.svg b/react_OLD/src/assets/chesscom-embed/default.svg deleted file mode 100644 index 926b604..0000000 --- a/react_OLD/src/assets/chesscom-embed/default.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/react_OLD/src/assets/chesscom-embed/diamonds.png b/react_OLD/src/assets/chesscom-embed/diamonds.png deleted file mode 100644 index 95ebe03..0000000 Binary files a/react_OLD/src/assets/chesscom-embed/diamonds.png and /dev/null differ diff --git a/react_OLD/src/assets/css/App.css b/react_OLD/src/assets/css/App.css deleted file mode 100644 index 11d2e4c..0000000 --- a/react_OLD/src/assets/css/App.css +++ /dev/null @@ -1,894 +0,0 @@ -@import "~react-image-gallery/styles/css/image-gallery.css"; - -@font-face { - font-family: "neon-future"; - src: url("../fonts/Neon\ Future.ttf") -} - -@font-face { - font-family: "starixo"; - src: url("../fonts/Starixo.otf") -} - -@font-face { - font-family: "independent"; - src: url("../fonts/INDEPENDENT.ttf") -} - -@font-face { - font-family: "sunset-club"; - src: url("../fonts/SunsetClub.otf") -} - -@font-face { - font-family: "robotoreg"; - src: url("../fonts/RobotoCondensed-Regular.ttf") -} - -html, body { - overflow-x: hidden; -} - -body { - margin: 0; - /* background-image: url('../photos/plexus.jpg'); */ - /*url('https://i.pinimg.com/originals/d6/c3/ac/d6c3ac09021dbc0cda8ee27837d2c795.png')*/ - background-attachment: fixed; - background-size: 100% auto; - background-clip: border-box; -} - -* { - font-family: "Roboto Condensed", sans-serif; -} - -#menu { - height: 2rem; - display: none; - filter: brightness(0) saturate(100%) invert(72%) sepia(0%) saturate(1%) hue-rotate(151deg) brightness(95%) contrast(86%); - float: right; - margin-right: 1rem; - margin-top: .25rem; - cursor: pointer; -} - -h1, h2 { - color: #ecebeb; -} - -h2 { - font-size: 2rem; - margin-top: 1rem; - margin-bottom: 2rem; -} - -h3, h4 { - color: #a8a8a8; -} - -strong { - color: #ecebeb; -} - -p, li { - color: rgb(212, 212, 212); - font-size: 1rem; -} - -a { - color: #a0a0a0a0; - text-decoration: none; -} - -.header h1 { - display: inline-block; - transition: .4s; - margin-bottom: 0px; - margin-top: .5rem; - margin-left: 1rem; - font-size: 2rem; -} - -.header { - margin-bottom: 0px; - margin-left: 0rem; - background-color: #1a1a1a; - width: 100%; - z-index: 99; - position: fixed; - top: 0; - left: 0; - transition: .4s; - overflow: hidden; -} - -#name-container { - display: inline; -} - -.name { - display: inline; - background: url("../../assets/photos/sun.png") 0/5rem no-repeat; - background-size: contain; - padding-left: 5.5rem; -} - -.glitch { - display: inline; -} - -.textGrad { - font-family: "sunset-club" !important; -} - -.navControl { - transition: .4s; -} - -.navBar { - display: flex; - justify-content: space-between; - padding-left: 0px; - margin: 0px; - width: 100%; -} - -.navElement { - border: solid black .2rem; - width: 25vw; - text-align: center; - font-size: 1.2rem; - font-size: 1rem; - background-color: rgb(156, 49, 45, .4); -} - -.navElement:hover { - background-color: rgb(156, 49, 45, .8); -} - -.navElement * { - color: white; - margin: 0px; - display: block; - padding-top: .3rem; - padding-bottom: .3rem; - transition: .4s; -} - -#home { - /* height: 100vh; */ - overflow-y: hidden; -} - -.concentratedHead { - display: inline-block; - padding-right: 4rem; - border-bottom: #0f0f0f solid 5px; - color: white; -} - -.foreground { - position: relative; - padding-top: 7rem; - padding-left: 8rem; - width: calc(100%-8rem); - min-height: calc(100vh - 8rem); - background-color: rgb(44, 44, 44, .85); - padding-bottom: 1rem; - overflow: hidden; - transition: .4s; -} - -.foreground p { - line-height: 1.5em; - max-width: min(90%, 40rem); -} - -.homeground { - position: relative; - padding-top: 7rem; - min-height: calc(100vh - 8rem); - padding-bottom: 1rem; - overflow: hidden; - transition: .4s; -} - -.noBackground { - background: none; -} - -.relative { - position: relative; -} - -.noPad { - padding-left: 0px !important; - padding-right: 0px !important; -} - -.centerContent { - position: absolute; - top: 0; - left: 0; - width: 100vw; - height: 100vh; -} - -.centerContent>div { - margin-top: 30vh; - margin-left: auto; - margin-right: auto; - text-align: center; -} - -#HomeContent { - padding: 3rem; - display: inline-block; - background-color: rgb(44, 44, 44, .75); - border: solid black 4px; - text-align: center; -} - -.flex { - display: flex; - justify-content: space-around; -} - -.vFlex { - display: flex; - flex-direction: column; - height: 100%; -} - -.spaceBetween { - justify-content: space-between; -} - -.start { - justify-content: left; -} - -.onRight { - position: absolute; - right: 0; - top: 0; - max-width: 100vw; -} - -.onRight > * { - margin: auto; -} - -.bgi { - background-size: contain; - background-repeat: no-repeat; - background-position-y: center; - opacity: 0.4; - height: 100%; - width: 100%; - position: absolute; - z-index: 0; -} - -#Vertical { - margin-left: auto; - margin-right: auto; - width: 0; - height: 3rem; - border-right: rgb(156, 49, 45) solid 1px; -} - -.sideimg { - float: right; - top: 0; - right: 0; - display: block; - max-width: min(40rem, 80%); - max-height: min(30rem, 100%); -} - -.col { - float: left; - margin-right: 3rem; - width: calc(50% - 3rem); -} - -.boxedImg { - border: .5rem solid rgba(22, 22, 22, .8); - max-width: calc(90% - 1rem); - display: block; - margin-left: auto; - margin-right: auto; -} - -.carousel-container { - margin-left: 10%; - max-width: 80%; -} - -.elementBlock { - margin-top: 3rem; -} - -.skills { - display: inline-block; - background-color: rgba(0, 0, 0, 0.3); - border: solid rgba(156, 49, 45, .8) .3rem; - text-align: center; - padding: 1rem; -} - -.skill { - display: inline-block; - border: rgba(156, 49, 45, .8) solid .15rem; - padding: .2rem; - margin: .5rem; - background-color: rgba(11, 11, 11, .8); - color: rgb(212, 212, 212); -} - -#skillList { - color: white; - display: flex; - flex-wrap: wrap; -} - -#skillDisp { - width: 30em; - position: relative; -} - -#skillDisp::after { - background-repeat: no-repeat; - background-size: contain; - background-position: right top; - opacity: .2; - position: absolute; - height: 60%; - width: 100%; - top: 0; - right: 0; - content: ""; - z-index: -1; -} - -#skillDisp.python::after { - background-image: url('https://upload.wikimedia.org/wikipedia/commons/thumb/c/c3/Python-logo-notext.svg/1200px-Python-logo-notext.svg.png') -} - -#skillDisp.js::after { - background-image: url('https://external-content.duckduckgo.com/iu/?u=http%3A%2F%2F3.bp.blogspot.com%2F-PTty3CfTGnA%2FTpZOEjTQ_WI%2FAAAAAAAAAeo%2FKeKt_D5X2xo%2Fs1600%2Fjs.jpg&f=1&nofb=1&ipt=c8ae673676226ae40a5cd1408a5c7607e6b9725025888f4994a705309a16d1c3&ipo=images') -} - -#skillDisp.html::after { - background-image: url('https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Flogos-download.com%2Fwp-content%2Fuploads%2F2017%2F07%2FHTML5_badge.png&f=1&nofb=1&ipt=db644f64f96f334aad37d31dc1c9dab28021476f6effaa0cb682297f8fd14240&ipo=images') -} - -#skillDisp.sql::after { - background-image: url('https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fcdn3.iconfinder.com%2Fdata%2Ficons%2Fbasicolor-computer-tech%2F24%2F091_database_data_sql-512.png&f=1&nofb=1&ipt=cffc17203486b92c9733b992733e6934c03f984bc530c94b75bed278bc73477d&ipo=images') -} - -#skillDisp.cpp::after { - background-image: url('https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fen.nokiawroclaw.pl%2Fwp-content%2Fuploads%2Fsites%2F5%2F2018%2F11%2Fcpp_logo.png&f=1&nofb=1&ipt=5fc23951b00bcbdec1977f3bc4591a7b8511ab29f5982963c541526902c0b4fd&ipo=images') -} - -#skillDisp.other::after { - background-image: url('https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fcdn.freebiesupply.com%2Flogos%2Flarge%2F2x%2Fgit-icon-logo-png-transparent.png&f=1&nofb=1&ipt=834c5a11f63e26429713be2b7d9c9d1e45ce53d771862b9ab49bc35571513894&ipo=images') -} - -#skillDisp.tools::after { - background-image: url('https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fimages.g2crowd.com%2Fuploads%2Fproduct%2Fimage%2Flarge_detail%2Flarge_detail_64636a5c446c22391d4ed719e0987cd2%2Farcgis-pro.png&f=1&nofb=1&ipt=812a2905dd03e5c68f55a9f095bfe7a54feb801bf7f3f11cc01352f45f8a4f8d&ipo=images') -} - -.hex-wrapper { - display: flex; - flex-direction: column; - margin-top: 50px; -} - -.hex-row { - display: flex; -} - -.hex { - width: 100px; - height: 100px; - position: relative; - margin: 0px 5px; -} - -.hex:hover { - transform: scaleX(1.1) scaleY(1.1); -} - -.hex>* { - position: absolute; -} - -.hex-odd { - margin: 0px 55px; -} - -.hex-border { - border-left: solid black 3px; - border-right: solid black 3px; - width: 100%; - height: 58%; -} - -.hex>.hex-border:nth-child(1) { - rotate: 60deg; -} - -.hex>.hex-border:nth-child(2) { - rotate: 120deg; -} - -.projectList { - padding: 0px; - display: flex; - flex-wrap: wrap; - justify-content: center; - margin-left: auto; - margin-right: auto; - width: 100%; - text-align: center; -} - -.project { - display: inline-block; - text-align: left; - margin: 1rem; - width: 20rem; - height: 22rem; - border: .3rem rgba(156, 49, 45, .8) solid; - background-color: rgba(22, 22, 22, .8); - transition: .3s; - overflow: hidden; -} - -.projTitle > * { - margin-bottom: 0; -} - -.projBody { - position: relative; - z-index: 3; -} - -.project .topBox, .project .bottomBox, .project .projTitle { - padding: 0 1rem; - z-index: inherit; -} - -.backedBody { - background-color: #1a1a1a; - padding: .25em; -} - -.tab { - display: inline; - float: right; -} - -.project h3 { - display: inline-block; - border-bottom: black solid .2rem; -} - -.project img { - margin-top: auto; - height: 3rem; -} - -.bottomBox a, .placeholding { - vertical-align: middle; - display: inline; - text-align: left; - height: unset; -} - -.project a img, .project a p { - padding: .5rem; - filter: invert(100%) sepia(0%) saturate(1%) hue-rotate(52deg) brightness(106%) contrast(101%); -} - -.project a img:hover, .project a p:hover { - filter: invert(66%) sepia(0%) saturate(3964%) hue-rotate(99deg) brightness(100%) contrast(105%); -} - -.incomplete { - color: red; -} - -.WIP { - color: yellow; -} - -.complete { - color: green; -} - -.footer { - position: fixed; - bottom: 0; - left: 0; -} - -.socials { - margin-left: 1rem; - width: 0px; -} - -.socials img { - height: 2rem; - margin-bottom: 1rem; - filter: invert(29%) sepia(20%) saturate(1786%) hue-rotate(314deg) brightness(101%) contrast(110%); - transition: .2s; -} - -.socials img:hover { - opacity: .5; -} - -#vertLine { - border-right: 1px solid rgb(156, 49, 45); - margin-left: 1rem; - height: 10rem; -} - -.neon { - display: inline-block; - font-family: "neon-future"; - color: #fff; - text-shadow: 0 0 7px #fff, 0 0 10px #fff, 0 0 21px #fff, 0 0 42px #5271ff, - 0 0 82px #5271ff, 0 0 92px #5271ff, 0 0 102px #5271ff, 0 0 151px #5271ff; - animation: pulsate 0.11s ease-in-out infinite alternate; -} - -.neonBox h1 { - font-size: min(4em, 12vw); -} - -.neonBox h3 { - font-size: min(2em, 6vw); -} - -.neonBox { - border: 0.2rem solid #fff; - border-radius: 2rem; - padding: 2em; - margin: 2em; - box-shadow: 0 0 0.2rem #fff, 0 0 0.2rem #fff, 0 0 2rem #5271ff, - 0 0 0.8rem #5271ff, 0 0 2.8rem #5271ff, inset 0 0 1.3rem #5271ff; - background-image: url('https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fwww.thedermacompany.co.uk%2Fwp-content%2Fuploads%2F2020%2F11%2Fblack-brick-scaled.jpg&f=1&nofb=1&ipt=d10be6df79141da1b4ec0c725575cef0f7b67e957e391662226d66cff02d25e6&ipo=images'); - /* background-blend-mode: ; */ - text-align: center; -} - -@keyframes pulsate { - 100% { - text-shadow: 0 0 4px #fff, 0 0 11px #fff, 0 0 19px #fff, - 0 0 40px #5271ff, 0 0 80px #5271ff, 0 0 90px #5271ff, - 0 0 100px #5271ff, 0 0 150px #5271ff; - } - - 0% { - text-shadow: 0 0 4px #fff, 0 0 10px #fff, 0 0 18px #fff, - 0 0 38px #5271ff, 0 0 73px #5271ff, 0 0 80px #5271ff, 0 0 94px #5271ff, - 0 0 140px #5271ff; - } -} - -@keyframes swipeIn { - 100% { - opacity: 1; - transform: translateX(0); - } - - 0% { - opacity: 0; - transform: translateX(100px); - } -} - -.swipeIn { - animation: swipeIn 1s 1; -} - -.fPage { - height: 100vh; - width: 100%; - display: flex; - position: absolute; - justify-content: center; - background-position: center; - background-repeat: no-repeat; - background-size: cover; -} - -.heightBox { - height: 100%; - display: flex; - flex-direction: column; - justify-content: center; -} - -.chess { - width: 300px; - border: none; - /* transform: scale(.8); - float: right; */ -} - -#chessProfile { - border-radius: 5px; - width: 300px; - height: calc(125px + 2em); - color: #AAAAAA; - display: grid; - grid-template-columns: 1fr 1fr; - cursor: pointer; -} - -.chessInfo { - background-color: rgba(0, 0, 0, .3); - ; - margin: 1em; -} - -.bottomtext { - font-size: x-small; - margin: 3px; - color: white; - text-align: right; -} - -.black { - background-color: black; -} - -.identity { - margin-right: 0px; -} - -.identity h5 { - margin: 0px; - margin-top: -25px; - background: black; - z-index: 50; - position: relative; - width: 90%; - margin-left: 10px; - -} - -.pfpContainer { - display: flex; - justify-content: center; - height: 100%; -} - -.pfpContainer>div { - display: flex; - flex-direction: column; - justify-content: center; -} - -.pfp { - border-radius: 50%; - width: 100px; - text-align: center; -} - -.vContainer { - display: flex; - flex-direction: column; - max-height: 100%; - max-width: 100%; -} - -.vItem { - display: inline-block; -} - -.vItem p { - margin: 0px; - display: inline; -} - -.chessIcon { - display: inline-block; - font-family: Chess New; - font-size: x-large; - width: 25px; - text-align: center; -} - -.rapid { - color: #6c9d41; -} - -.blitz { - color: #f7c045; -} - -.bullet { - color: #a58a45; -} - -.puzzles { - color: #db7e3b; -} - -.timeitem { - transition: .4s; - overflow-y: clip; - height: auto; - max-height: 500px; -} - -.timeitem a { - color: inherit; - font-family: inherit; - font-size: inherit; - text-decoration: underline; -} - -.timeline-item{ - border-left: solid #AAAAAA 3px; -} - -.timeline-item h2{ - margin-top: 0px; - margin-left: .5em; - font-family: robotoreg; -} - -.timeline-item p{ - margin-bottom: 0px; - padding-bottom: 2em; - padding-left: 3em; - font-family: robotoreg; -} - -/* .timeline-item::before{ - content: ""; - background-color: red; - border: solid black 3px; - border-radius: 100%; - padding: 5px; - position: absolute; - margin-left: -8px; -} */ - -.datetext { - margin: .25em; - font-size: small; - margin-left: -1.5em; - font-family: robotoreg; -} - -@font-face { - font-family: Chess New; - src: url('https://www.chess.com/bundles/web/fonts/chessglyph-new.0cc8115c.woff2'); -} - -@media screen and (max-width: 1200px) { - - #menu { - display: unset; - } - - .header { - background-color: #1a1a1a; - border-bottom: solid 3px rgb(156, 49, 45, .4); - } - - .header h1 { - font-size: 1.5rem; - } - - .navBar { - flex-direction: column; - } - - .navElement { - width: 100vw; - } - - .navControl { - max-height: 0px; - } - - .projectList { - width: 95%; - } - - .sideimg { - position: relative; - } - - body { - background-size: auto 100%; - } - - .foreground { - width: 100%; - padding-left: 2rem; - /* centered objects will need to remove 1.5 of this to center */ - padding-right: .5rem; - padding-bottom: 36px; - } - - .homeground { - width: 90%; - padding-bottom: 36px; - display: flex; - margin: auto; - overflow: visible; - } - - .centeredForeground { - margin-left: -1.5rem; - /* remove .foreground excess margin */ - } - - .onRight { - position: unset; - margin-top: 3rem; - } - - .col { - width: 90%; - margin-bottom: 3rem; - } - - #aboutMe { - float: none; - display: block; - width: 90%; - } - - #skills { - float: none; - margin-right: auto; - display: block; - width: 90%; - } - - .footer { - position: relative; - width: 100%; - display: inline-block; - background-color: rgb(156, 49, 45); - } - - .socials { - display: flex; - justify-content: space-around; - padding-top: .5rem; - padding-bottom: .5rem; - margin-right: auto; - margin-left: auto; - width: min(100vw, 400px); - } - - .socials * { - display: inline; - text-align: center; - padding-left: 0px; - padding-right: 0px; - } - - .socials img { - height: 2rem; - margin-bottom: 0px; - filter: none; - } - - #vertLine { - display: none; - height: 0px; - } -} \ No newline at end of file diff --git a/react_OLD/src/assets/css/checkbox.css b/react_OLD/src/assets/css/checkbox.css deleted file mode 100644 index 326f863..0000000 --- a/react_OLD/src/assets/css/checkbox.css +++ /dev/null @@ -1,70 +0,0 @@ -.hidden { - display: none; -} - -.hiddenup { - max-height: 0px !important; -} - -.checkbox-wrapper > div { - display: inline-block; - margin-right: 1em; - margin-bottom: 1em; -} - -.checkbox-wrapper > div:last-child { - margin-bottom: 0;; -} - -.checkbox-wrapper .switch { - display: flex; - position: relative; - cursor: pointer; -} - -.checkbox-wrapper .switch > * { - align-self: center; -} - -.checkbox-wrapper .switch input { - display: none; -} - - -.checkbox-wrapper .slider { - background-color: #ccc; - transition: 0.4s; - height: 34px; - width: 60px; -} - -.checkbox-wrapper .slider:before { - background-color: #fff; - bottom: 4px; - content: ""; - height: 26px; - left: 4px; - position: absolute; - transition: 0.4s; - width: 26px; -} - -.checkbox-wrapper input:checked+.slider { - background-color: #66bb6a; -} - -.checkbox-wrapper input:checked+.slider:before { - transform: translateX(26px); -} - -.checkbox-wrapper .slider.round { - border-radius: 34px; -} - -.checkbox-wrapper .slider.round:before { - border-radius: 50%; -} - -.checkbox-wrapper strong { - margin-left: .5em; -} diff --git a/react_OLD/src/assets/css/head.scss b/react_OLD/src/assets/css/head.scss deleted file mode 100644 index b9abb8f..0000000 --- a/react_OLD/src/assets/css/head.scss +++ /dev/null @@ -1,60 +0,0 @@ -.line { - &:not(:first-child) { - position: absolute; - top: 0; - left: 0; - } - - @for $i from 1 through 10 { - &:nth-child(#{$i}) { - animation: - clip 6000ms $i * -600ms linear infinite, - glitch#{$i} 2500ms random(1000) * -1ms linear infinite; - - @keyframes glitch#{$i} { - 0% { - transform: translateX(0); - } - 96% { - transform: translateX(0); - color: #fff; - } - 97% { - transform: translateX(random(10) - 5px); - color: #4E9A26; - } - 98% { - transform: translateX(random(10) - 5px); - color: #AC1212; - } - 99% { - transform: translateX(random(10) - 5px); - color: #fff; - } - 100% { - transform: translateX(0); - } - } - } - } -} - -@keyframes clip { - 0% { - clip-path: polygon( - 0 100%, - 100% 100%, - 100% 120%, - 0 120% - ); - } - - 100% { - clip-path: polygon( - 0 -20%, - 100% -20%, - 100% 0%, - 0 0 - ); - } -} diff --git a/react_OLD/src/assets/fonts/INDEPENDENT.ttf b/react_OLD/src/assets/fonts/INDEPENDENT.ttf deleted file mode 100644 index 98356f3..0000000 Binary files a/react_OLD/src/assets/fonts/INDEPENDENT.ttf and /dev/null differ diff --git a/react_OLD/src/assets/fonts/Neon Future.ttf b/react_OLD/src/assets/fonts/Neon Future.ttf deleted file mode 100644 index ef61e4a..0000000 Binary files a/react_OLD/src/assets/fonts/Neon Future.ttf and /dev/null differ diff --git a/react_OLD/src/assets/fonts/RobotoCondensed-Regular.ttf b/react_OLD/src/assets/fonts/RobotoCondensed-Regular.ttf deleted file mode 100644 index 17e8ea5..0000000 Binary files a/react_OLD/src/assets/fonts/RobotoCondensed-Regular.ttf and /dev/null differ diff --git a/react_OLD/src/assets/fonts/Starixo.otf b/react_OLD/src/assets/fonts/Starixo.otf deleted file mode 100644 index 2b7f38e..0000000 Binary files a/react_OLD/src/assets/fonts/Starixo.otf and /dev/null differ diff --git a/react_OLD/src/assets/fonts/SunsetClub.otf b/react_OLD/src/assets/fonts/SunsetClub.otf deleted file mode 100644 index e80988e..0000000 Binary files a/react_OLD/src/assets/fonts/SunsetClub.otf and /dev/null differ diff --git a/react_OLD/src/assets/icons/email.svg b/react_OLD/src/assets/icons/email.svg deleted file mode 100644 index 7fef27b..0000000 --- a/react_OLD/src/assets/icons/email.svg +++ /dev/null @@ -1,10 +0,0 @@ - -Created with Fabric.js 1.7.22 - - - - - - - - \ No newline at end of file diff --git a/react_OLD/src/assets/icons/github.svg b/react_OLD/src/assets/icons/github.svg deleted file mode 100644 index bf9fbba..0000000 --- a/react_OLD/src/assets/icons/github.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/react_OLD/src/assets/icons/globe.svg b/react_OLD/src/assets/icons/globe.svg deleted file mode 100644 index ac79245..0000000 --- a/react_OLD/src/assets/icons/globe.svg +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/react_OLD/src/assets/icons/instagram.svg b/react_OLD/src/assets/icons/instagram.svg deleted file mode 100644 index 80542ae..0000000 --- a/react_OLD/src/assets/icons/instagram.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/react_OLD/src/assets/icons/linkedin.svg b/react_OLD/src/assets/icons/linkedin.svg deleted file mode 100644 index b076257..0000000 --- a/react_OLD/src/assets/icons/linkedin.svg +++ /dev/null @@ -1,10 +0,0 @@ - -Created with Fabric.js 1.7.22 - - - - - - - - \ No newline at end of file diff --git a/react_OLD/src/assets/icons/menu.svg b/react_OLD/src/assets/icons/menu.svg deleted file mode 100644 index 562f644..0000000 --- a/react_OLD/src/assets/icons/menu.svg +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/react_OLD/src/assets/photos/AcademicTeam.jpg b/react_OLD/src/assets/photos/AcademicTeam.jpg deleted file mode 100644 index 3cc0ad8..0000000 Binary files a/react_OLD/src/assets/photos/AcademicTeam.jpg and /dev/null differ diff --git a/react_OLD/src/assets/photos/WeThePeople.jpg b/react_OLD/src/assets/photos/WeThePeople.jpg deleted file mode 100644 index 0e92ca3..0000000 Binary files a/react_OLD/src/assets/photos/WeThePeople.jpg and /dev/null differ diff --git a/react_OLD/src/assets/photos/WeThePeople_Districts.jpg b/react_OLD/src/assets/photos/WeThePeople_Districts.jpg deleted file mode 100644 index 53eac4d..0000000 Binary files a/react_OLD/src/assets/photos/WeThePeople_Districts.jpg and /dev/null differ diff --git a/react_OLD/src/assets/photos/WeThePeople_NationalsSetup.jpg b/react_OLD/src/assets/photos/WeThePeople_NationalsSetup.jpg deleted file mode 100644 index 413a31d..0000000 Binary files a/react_OLD/src/assets/photos/WeThePeople_NationalsSetup.jpg and /dev/null differ diff --git a/react_OLD/src/assets/photos/ceoOfYugo.png b/react_OLD/src/assets/photos/ceoOfYugo.png deleted file mode 100644 index 0c13e30..0000000 Binary files a/react_OLD/src/assets/photos/ceoOfYugo.png and /dev/null differ diff --git a/react_OLD/src/assets/photos/chessbed.png b/react_OLD/src/assets/photos/chessbed.png deleted file mode 100644 index 0400d6d..0000000 Binary files a/react_OLD/src/assets/photos/chessbed.png and /dev/null differ diff --git a/react_OLD/src/assets/photos/geovisF.png b/react_OLD/src/assets/photos/geovisF.png deleted file mode 100644 index 172189e..0000000 Binary files a/react_OLD/src/assets/photos/geovisF.png and /dev/null differ diff --git a/react_OLD/src/assets/photos/hagerstownVex2019.jpg b/react_OLD/src/assets/photos/hagerstownVex2019.jpg deleted file mode 100644 index 0cff15a..0000000 Binary files a/react_OLD/src/assets/photos/hagerstownVex2019.jpg and /dev/null differ diff --git a/react_OLD/src/assets/photos/itsa_me.JPG b/react_OLD/src/assets/photos/itsa_me.JPG deleted file mode 100644 index 6cd7514..0000000 Binary files a/react_OLD/src/assets/photos/itsa_me.JPG and /dev/null differ diff --git a/react_OLD/src/assets/photos/me_robot.jpeg b/react_OLD/src/assets/photos/me_robot.jpeg deleted file mode 100644 index ac0c36d..0000000 Binary files a/react_OLD/src/assets/photos/me_robot.jpeg and /dev/null differ diff --git a/react_OLD/src/assets/photos/occupyRIT.png b/react_OLD/src/assets/photos/occupyRIT.png deleted file mode 100644 index a919a21..0000000 Binary files a/react_OLD/src/assets/photos/occupyRIT.png and /dev/null differ diff --git a/react_OLD/src/assets/photos/placeholder.png b/react_OLD/src/assets/photos/placeholder.png deleted file mode 100644 index 2ce6417..0000000 Binary files a/react_OLD/src/assets/photos/placeholder.png and /dev/null differ diff --git a/react_OLD/src/assets/photos/plexus.jpg b/react_OLD/src/assets/photos/plexus.jpg deleted file mode 100644 index b4de7b2..0000000 Binary files a/react_OLD/src/assets/photos/plexus.jpg and /dev/null differ diff --git a/react_OLD/src/assets/photos/resume.png b/react_OLD/src/assets/photos/resume.png deleted file mode 100644 index f810c68..0000000 Binary files a/react_OLD/src/assets/photos/resume.png and /dev/null differ diff --git a/react_OLD/src/assets/photos/slate.png b/react_OLD/src/assets/photos/slate.png deleted file mode 100644 index 2588b8f..0000000 Binary files a/react_OLD/src/assets/photos/slate.png and /dev/null differ diff --git a/react_OLD/src/assets/photos/sun.png b/react_OLD/src/assets/photos/sun.png deleted file mode 100644 index 176f5bf..0000000 Binary files a/react_OLD/src/assets/photos/sun.png and /dev/null differ diff --git a/react_OLD/src/assets/photos/vexcodeButtons.jpeg b/react_OLD/src/assets/photos/vexcodeButtons.jpeg deleted file mode 100644 index ad7a861..0000000 Binary files a/react_OLD/src/assets/photos/vexcodeButtons.jpeg and /dev/null differ diff --git a/react_OLD/src/assets/photos/website.png b/react_OLD/src/assets/photos/website.png deleted file mode 100644 index 2736411..0000000 Binary files a/react_OLD/src/assets/photos/website.png and /dev/null differ diff --git a/react_OLD/src/componets/Carousel.js b/react_OLD/src/componets/Carousel.js deleted file mode 100644 index 47ffe89..0000000 --- a/react_OLD/src/componets/Carousel.js +++ /dev/null @@ -1,12 +0,0 @@ -import React from "react"; -import ImageGallery from 'react-image-gallery'; - -export default function ResponsiveCarousel(props) { - return ( -
-
- -
-
- ); -} \ No newline at end of file diff --git a/react_OLD/src/componets/ChessBed.js b/react_OLD/src/componets/ChessBed.js deleted file mode 100644 index 12929e3..0000000 --- a/react_OLD/src/componets/ChessBed.js +++ /dev/null @@ -1,127 +0,0 @@ -import React from "react"; -import bg from "../assets/chesscom-embed/diamonds.png"; -import def from "../assets/chesscom-embed/default.svg"; - -export default class ChessBed extends React.Component { - constructor(props) { - super(props); - this.seeAccount = this.seeAccount.bind(this, props.username); - this.addChessEmbed = this.addChessEmbed.bind(this, props.username); - this.state = { - name: "Loading..", - pic: def, - ratings: { - rapid: "Loading", - blitz: "Loading", - bullet: "Loading", - tactics: "Loading", - }, - loaded: "hidden" - }; - this.diamonds = { - background: "black", - backgroundImage: `linear-gradient(rgba(0, 0, 0, .5), rgba(0, 0, 0, .75)), url(${bg})`, - }; - } - - seeAccount(username) { - window.top.location.href = "https://chess.com/member/" + username; - } - - async addChessEmbed(username) { - let user, stats; - try { - user = await fetch(`https://api.chess.com/pub/player/${username}`); - stats = await fetch( - `https://api.chess.com/pub/player/${username}/stats` - ); - } catch (e) { - this.setState({ - name: "Chess.com request failed", - ratings: { - rapid: "Site may", - blitz: "be blocked", - bullet: "by client.\n\n", - tactics: "not my fault :(", - }, - }); - return; - } - if (user.status === 200) { - user = await user.json(); - stats = await stats.json(); - this.setState({ - name: user["username"], - pic: user.avatar, - ratings: { - rapid: stats.chess_rapid.last.rating, - blitz: stats.chess_blitz.last.rating, - bullet: stats.chess_bullet.last.rating, - tactics: stats.tactics.highest.rating, - }, - loaded: '' - }); - } else if (user === null || user.status === 403 || user.status === null) { - this.setState({ - name: "Chess.com request failed" - }); - } else { - this.setState({ - name: "User Not Found", - loaded: '' - }); - } - } - - componentDidMount() { - this.addChessEmbed(); - } - - render() { - return ( - <> -
-
-
-
-
- {this.username} -
-
-
{this.state.name}
-
-
-
-
-

{this.state.ratings.rapid}

-
-
-
-

{this.state.ratings.blitz}

-
-
-
-

{this.state.ratings.bullet}

-
-
-
-

{this.state.ratings.tactics}

-
-
-
-
- Chess.com Stat Embed by Andrew Simonson -
-
- - ); - } -} diff --git a/react_OLD/src/componets/HexGrid.js b/react_OLD/src/componets/HexGrid.js deleted file mode 100644 index 76aecd7..0000000 --- a/react_OLD/src/componets/HexGrid.js +++ /dev/null @@ -1,50 +0,0 @@ -import { skill } from '../scripts/skill' - -export default function HexGrid() { - return ( -
-
-
skill('python')}> -
-
-
-
-
skill('js')}> -
-
-
-
-
-
-
skill('html')}> -
-
-
-

Ahoy

-
-
skill('sql')}> -
-
-
-
-
skill('cpp')}> -
-
-
-
-
-
-
skill('other')}> -
-
-
-
-
skill('tools')}> -
-
-
-
-
-
- ); -} diff --git a/react_OLD/src/componets/Idler.js b/react_OLD/src/componets/Idler.js deleted file mode 100644 index 038fb06..0000000 --- a/react_OLD/src/componets/Idler.js +++ /dev/null @@ -1,102 +0,0 @@ -import Sketch from "react-p5"; -import React from "react"; - -const balls = []; -const density = 0.00005; -let screenWidth = window.innerWidth + 10; -let screenHeight = window.innerHeight + 10; - -export default class Idler extends React.Component { - setup = (p5, parentRef) => { - p5.frameRate(15); - const pix = screenHeight * screenWidth; - p5.createCanvas(screenWidth, screenHeight).parent(parentRef); - for (let i = 0; i < pix * density; i++) { - let thisBall = new Ball( - p5.random(screenWidth), - p5.random(screenHeight), - p5.random(6) + 3, - Math.exp(p5.random(4) + 3) / 1000 + 1, - p5.random(360) - ); - balls.push(thisBall); - } - - p5.stroke(255); - }; - - draw = (p5) => { - p5.background(32); - - for (let i = 0; i < balls.length; i++) { - balls[i].update(); - p5.stroke(200, 100); - p5.strokeWeight(2); - p5.fill(0); - p5.ellipse(balls[i].x, balls[i].y, balls[i].size, balls[i].size); - } - for (let i = 0; i < balls.length - 1; i++) { - for (let j = i + 1; j < balls.length; j++) { - let distance = p5.dist(balls[i].x, balls[i].y, balls[j].x, balls[j].y); - if (distance < 100){ - p5.stroke(150); - p5.line(balls[i].x, balls[i].y, balls[j].x, balls[j].y); - } - else if (distance < 150) { - p5.stroke(100); - let chance = 0.3 ** (((p5.random(0.2) + 0.8) * distance) / 150); - if (chance < 0.5) { - p5.stroke(50); - } - p5.line(balls[i].x, balls[i].y, balls[j].x, balls[j].y); - } - } - } - }; - render() { - const windowResized = (p5) => { - p5.resizeCanvas(p5.windowWidth, p5.windowHeight); - screenWidth = window.innerWidth + 10; - screenHeight = window.innerHeight + 10; - }; - return ( - - ); - } -} - -class Ball { - constructor(x, y, size, speed, angle) { - this.x = x; - this.y = y; - this.size = size; - this.speed = speed; - this.angle = angle; - this.calcChange(); - } - - calcChange() { - this.xSpeed = this.speed * Math.sin((this.angle * Math.PI) / 180); - this.ySpeed = this.speed * Math.cos((this.angle * Math.PI) / 180); - } - - update() { - this.x += this.xSpeed; - this.y += this.ySpeed; - if (this.x > screenWidth) { - this.x -= screenWidth; - } else if (this.x < 0) { - this.x += screenWidth; - } - if (this.y > screenHeight) { - this.y -= screenHeight; - } else if (this.y < 0) { - this.y += screenHeight; - } - } -} diff --git a/react_OLD/src/componets/Name.js b/react_OLD/src/componets/Name.js deleted file mode 100644 index 57936d3..0000000 --- a/react_OLD/src/componets/Name.js +++ /dev/null @@ -1,37 +0,0 @@ -export default function Name() { - return ( - -
-
-
-

Andrew Simonson

-
-
-

Andrew Simonson

-
-
-

Andrew Simonson

-
-
-

Andrew Simonson

-
-
-

Andrew Simonson

-
-
-

Andrew Simonson

-
-
-

Andrew Simonson

-
-
-

Andrew Simonson

-
-
-

Andrew Simonson

-
-
-
-
- ); -} diff --git a/react_OLD/src/componets/Nav.js b/react_OLD/src/componets/Nav.js deleted file mode 100644 index 34eabe3..0000000 --- a/react_OLD/src/componets/Nav.js +++ /dev/null @@ -1,20 +0,0 @@ -import React from 'react'; - -export default function Nav(props) { - let items; - for (let i = 0; i < props.children.length; i++) { - items = ( - <> - {items} -
{props.children[i]}
- - ) - } - return ( -
-
- {items} -
-
- ) -} \ No newline at end of file diff --git a/react_OLD/src/componets/Neon.js b/react_OLD/src/componets/Neon.js deleted file mode 100644 index fdecf74..0000000 --- a/react_OLD/src/componets/Neon.js +++ /dev/null @@ -1,21 +0,0 @@ -export default function ProjectList(props) { - let text; - props.children.forEach(function (x) { - text = ( - <> - {text} - {x} - - ); - }); - text = (
{text}
) - return ( - <> -
-
-
{text}
-
-
- - ); -} diff --git a/react_OLD/src/componets/Project.js b/react_OLD/src/componets/Project.js deleted file mode 100644 index fcb94e0..0000000 --- a/react_OLD/src/componets/Project.js +++ /dev/null @@ -1,44 +0,0 @@ -import React from "react"; -import placeholder from "../assets/photos/placeholder.png"; - -export default class Project extends React.Component { - render() { - let style = { - backgroundImage: "url(" + this.props.bgi + ")", - }; - let links = <>; - if (this.props.links != null) { - this.props.links.forEach((x) => { - links = ( - <> - {links} - {x[1]} - - ); - }); - } else { - links = ( -
- no links! -
- ); - } - return ( -
-
-
-

{this.props.title}

-

-
-
-
-
-

{this.props.children}

-
-
{links}
-
-
-
- ); - } -} diff --git a/react_OLD/src/componets/ProjectList.js b/react_OLD/src/componets/ProjectList.js deleted file mode 100644 index 463bf45..0000000 --- a/react_OLD/src/componets/ProjectList.js +++ /dev/null @@ -1,18 +0,0 @@ -import React from 'react' - -export default function ProjectList(props){ - let projects; - props.children.forEach(function(x){ - projects = ( - <> - {projects} - {x} - - ); - }); - return( -
- {projects} -
- ); -} \ No newline at end of file diff --git a/react_OLD/src/componets/Skills.js b/react_OLD/src/componets/Skills.js deleted file mode 100644 index 08625a8..0000000 --- a/react_OLD/src/componets/Skills.js +++ /dev/null @@ -1,17 +0,0 @@ -import React from 'react' - -export default function Skills(props){ - let allSkills; - props.children.forEach(x => { - allSkills = ( - <> - {allSkills} -
  • {x}
  • - - ) - }); - return ( - ); -} \ No newline at end of file diff --git a/react_OLD/src/componets/Socials.js b/react_OLD/src/componets/Socials.js deleted file mode 100644 index 4a8b85c..0000000 --- a/react_OLD/src/componets/Socials.js +++ /dev/null @@ -1,18 +0,0 @@ -import React from 'react'; - -import github from '../assets/icons/github.svg' -import instagram from '../assets/icons/instagram.svg' -import linkedin from '../assets/icons/linkedin.svg' -import email from '../assets/icons/email.svg' - -export default function Socials(){ - return( -
    - Github - Instagram - LinkedIn - E-mail -
    -
    - ) -} \ No newline at end of file diff --git a/react_OLD/src/componets/TimeItem.js b/react_OLD/src/componets/TimeItem.js deleted file mode 100644 index 6b4e959..0000000 --- a/react_OLD/src/componets/TimeItem.js +++ /dev/null @@ -1,21 +0,0 @@ -import React from "react"; - -export default class TimeItem extends React.Component { - constructor(props) { - super(props); - this.date = props.date; - this.classes = props.classes; - this.item = ( - <> -

    {props.title}

    -
    -

    {props.children}

    -
    - - ); - } - - render() { - return

    {this.date}

    {this.item}
    ; - } -} diff --git a/react_OLD/src/componets/Timeline.js b/react_OLD/src/componets/Timeline.js deleted file mode 100644 index 9d19da5..0000000 --- a/react_OLD/src/componets/Timeline.js +++ /dev/null @@ -1,17 +0,0 @@ -import React from "react"; - -export default class Timeline extends React.Component { - constructor(props) { - super(props); - this.items = props.children; - this.classes = props.classes; - } - - componentDidMount() {} - - render() { - return
    - {this.items} -
    ; - } -} diff --git a/react_OLD/src/index.js b/react_OLD/src/index.js deleted file mode 100644 index 92e9aab..0000000 --- a/react_OLD/src/index.js +++ /dev/null @@ -1,11 +0,0 @@ -import React from 'react'; -import { createRoot } from 'react-dom/client'; -import App from './App'; - -const container = document.getElementById('root'); -const root = createRoot(container); -root.render( - // - - // - ); diff --git a/react_OLD/src/pages/AboutMe.js b/react_OLD/src/pages/AboutMe.js deleted file mode 100644 index 59a1679..0000000 --- a/react_OLD/src/pages/AboutMe.js +++ /dev/null @@ -1,265 +0,0 @@ -import React, { useEffect } from "react"; -// import MyCarousel from "../componets/Carousel.js"; -import ChessBed from "../componets/ChessBed.js"; -// import HexGrid from "../componets/HexGrid"; -import Skills from "../componets/Skills"; -import Timeline from "../componets/Timeline"; -import TimeItem from "../componets/TimeItem.js"; -import { toggle } from "../scripts/checkbox"; -// import img1 from '../assets/photos/itsa_me.JPG' -// import img2 from '../assets/photos/me_robot.jpeg' -// import img3 from "../assets/photos/AcademicTeam.jpg"; -// import img4 from "../assets/photos/hagerstownVex2019.jpg"; -// import img5 from "../assets/photos/WeThePeople_Districts.jpg"; -// import img6 from "../assets/photos/WeThePeople.jpg"; -// import img7 from "../assets/photos/WeThePeople_NationalsSetup.jpg"; - -export default function AboutMe() { - useEffect(() => { - // This will run when the page first loads and whenever the title changes - document.title = "Andrew Simonson - About Me"; - }, []); - - return ( -
    toggle("up")}> - - -
    -
    -

    About Me

    -

    - I'm Andrew Simonson, a second year (third year standing) student at{" "} - Rochester Institute of Technology - in the Computer Science BS program, pursuing a career in data - science with a focus on predictive analytics. -

    -

    - When I'm not in class, you can find me working on extra - collaborative projects, building discord bots, playing chess, - reading up on some recent geopolitical development, or haphazardly - expanding my list of unusable, yet bizzarely wise quotes. -

    - {/*

    - My goal is to strive to make the biggest positive impact on the - world that I can. I'm here to improve and optimize what we have so - that we can spend more time on the things that matter. -

    -

    - I also value the ability to understand the world at large. That - awareness is what grounds a person into reality and gives their - place in the world value. My favorite part of learning about - grographies and cultures is when I can justify to myself the hidden - causality to historic events, which presents an inside look into how - we can act in the present. -

    -

    - It is my belief that being able to channel each distinct creative - interest into a final product is vital. With this philosophy that - promotes dedication and enables an in-depth understanding, I can - take pride in each of my projects, bridging the gap between the the - multifaceted purpose present in everything around us. -

    */} - {/*Me*/} -
    -
    -
    -
    -

    Skills

    - {/*
    - -
    -

    -

    -
    -
    */} - - {[ - "Python", - "JavaScript", - "Java", - "C", - "C++", - "MIPS Assembly", - "Processing", - "P5.js", - "SQL", - "SQLite", - "PostgreSQL", - "SQLAlchemy", - "HTML", - "CSS", - "Docker", - "LaTeX", - "ArcGIS", - "Git", - "Github", - "Linux", - "OKD4", - "Kubernetes", - "Angular", - "Flask", - "Jinja", - "DOM Scraping", - "Google API", - "React", - "Node.js", - "ArcGIS", - ]} - -
    - -
    -
    - {/*
    -

    Extracirricular Awards

    - - {[ - { - original: img4, - description: - "High School VEX Robotics President and Team Leader", - }, - { - original: img5, - description: - "We the People Civics Competition District Champions", - }, - { - original: img6, - description: "We The People State Civics Competition Champions", - }, - { - original: img7, - description: - "what it looks like to compete in We the People Nationals, circa 2020", - }, - { - original: img3, - description: "Academic Team county championships", - }, - ]} - -
    */} -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - - - Spring 2023 Semester Co-op under Dow Chemical's Global Reactive - Chemicals team in Analytical Sciences. Responsibilities included - management of chemical compatability data and tool creation for - parsing, generating, and submitting reports. - - - I started building this website on this day. I wish I could say I - was farther along than I am. - - - Studying in Rochester Institute of Technology's Computer Science BS - program with a minor in International Relations. - - - Worked part-time as a chef, managing active ingredient supply and - fulfilling orders. I personally recommend the stuffed pretzels. - - - Trained in voter registry operations and provisional voting by the - Washington County Board of Elections for the 2020 US Presidential - Election. - - - Graduated high school with highest honors. -
    - Member of National Honor Society, Academic Team County Champions. - Participated in Physics Olympics, Robotics Club, and scored at state - championships in{" "} - - Cross Country and Track and Field (4x800, 800) - - .{" "} -
    - - Led 5 teams through middle and high school to VEX Robotics - Competitions, elevating Boonsboro from county group-stage - elimination to its first state championship participation. - Reorganized club and set up its first interface with the community + - sponsors - -
    -
    -
    - ); -} diff --git a/react_OLD/src/pages/Activities.js b/react_OLD/src/pages/Activities.js deleted file mode 100644 index 43a737b..0000000 --- a/react_OLD/src/pages/Activities.js +++ /dev/null @@ -1,14 +0,0 @@ -import Neon from "../componets/Neon"; - -export default function ErrorNotFound() { - return ( - <> - - -

    ERROR 404

    -
    -

    URL Not Found

    -
    - - ); -} diff --git a/react_OLD/src/pages/Error.js b/react_OLD/src/pages/Error.js deleted file mode 100644 index 46163c2..0000000 --- a/react_OLD/src/pages/Error.js +++ /dev/null @@ -1,8 +0,0 @@ -import Neon from '../componets/Neon' - -export default function ErrorNotFound() { - return (<> - -

    ERROR 404


    URL Not Found

    - ) -} \ No newline at end of file diff --git a/react_OLD/src/pages/Home.js b/react_OLD/src/pages/Home.js deleted file mode 100644 index 72ba298..0000000 --- a/react_OLD/src/pages/Home.js +++ /dev/null @@ -1,49 +0,0 @@ -import React, { useEffect } from "react"; -import ChessBed from "../componets/ChessBed.js"; - -export default function Home() { - const langstyle = { - width: "350px", - height: "165px", - border: "none", - display: "block", - }; - - useEffect(() => { - // This will run when the page first loads and whenever the title changes - document.title = "Andrew Simonson - Portfolio Home"; - }, []); - - return ( -
    - - - -
    -
    -
    -
    -

    Andrew Simonson

    -

    - Computer Science student at Rochester Institute of Technology -

    -
    -
    -
    - -
    - -
    -
    -
    -
    -
    - ); -} diff --git a/react_OLD/src/pages/Projects.js b/react_OLD/src/pages/Projects.js deleted file mode 100644 index 81988c3..0000000 --- a/react_OLD/src/pages/Projects.js +++ /dev/null @@ -1,287 +0,0 @@ -import React, { useEffect } from "react"; -import ProjectList from "../componets/ProjectList"; -import Project from "../componets/Project"; -import { toggle } from "../scripts/checkbox"; -import github from "../assets/icons/github.svg"; -import globe from "../assets/icons/globe.svg"; - -import geovisF from "../assets/photos/geovisF.png"; -import chessbed from "../assets/photos/chessbed.png"; -import occupyrit from "../assets/photos/occupyRIT.png"; -import slate from "../assets/photos/slate.png"; -import website from "../assets/photos/website.png"; -import resume from "../assets/photos/resume.png"; -import yugoslavia from "../assets/photos/ceoOfYugo.png"; -import vexbutt from "../assets/photos/vexcodeButtons.jpeg"; - -export default function Projects() { - useEffect(() => { - // This will run when the page first loads and whenever the title changes - document.title = "Andrew Simonson - Projects"; - }, []); - - return ( -
    toggle('')}> - - -
    -

    Projects

    -

    - Project status is indicated by the color of the project card: -
    - - Complete -
    - - Work In Progress -
    - - Incomplete -

    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    - - , - ], - ]} - > - ArcGIS Map of the most effective alternative energy sources in the - continental United States - - , - ], - ]} - > - Collects RIT Gym Occupancy data, determining busiest workout - times. - - , - ], - ]} - > - A template for creating Chess.com user profile embeds - - , - ], - [ - "https://asimonson.com/Resume.pdf/", - site, - ], - ]} - > - My Resume, made in LaTeX with a custom design derived by the AltaCV - template on OverLeaf. - - , - ], - ["https://asimonson.com/", site], - ]} - > - A personal portfolio site made with React.js. - - , - ], - ["https://slate.csh.rit.edu/", site], - ]} - > - Slate is a web app designed to help event coordinators schedule events - by congregating participant calendar data. Includes Computer Science - House account integration. - - , - ], - ]} - > - A Discord bot to handle role management and statistics for RIT's - Humans vs. Zombies games. - - , - ], - ]} - > - A team derived from the RIT Financial Management Association dedicated - to learning about financial management of equities using automated - solutions developed by students. - - - A tampermonkey tool used to automatically answer and submit online - trivia forms, which can be tailored to different site layouts. -
    -
    - Source is currently private. -
    - , - ], - ]} - > - A modular discord bot to manage class discord servers divided by class - sections. Used in my Web and Mobile 101 class discord server. - - , - ], - ]} - > - A personal Discord bot focused on statistical insight and role - management for NationsGame, including NG Rolls Sim accessibility. - - , - ], - ]} - > - A simulator for the browser game, NationsGame, to analyze unit - composition and predict in-game victors and unit statistics. -
    - Unfortunately, NationsGame is now defunct. Limited screenshots of - functionality. -
    - , - ], - ]} - > - A GNOME extension that cycles through a folder of wallpapers. - - , - ], - ]} - > - VEXcode button library + examples and template for the VEX V5 brain - - , - ], - ]} - > - A C++ keylogger for windows based off a udemy course with my custom - modifications and powershell script. - -
    -
    - ); -} diff --git a/react_OLD/src/scripts/checkbox.js b/react_OLD/src/scripts/checkbox.js deleted file mode 100644 index fabbd56..0000000 --- a/react_OLD/src/scripts/checkbox.js +++ /dev/null @@ -1,27 +0,0 @@ -export function toggle(dir) { - let toggles = document.querySelectorAll( - ".checkbox-wrapper input[type=checkbox]" - ); - let allow = []; - toggles.forEach(function (x) { - if (x.checked) { - allow.push(x.id); - } - }); - let list = document.querySelectorAll(".checkbox-client > div"); - if (allow.length === 0) { - for (let i = 0; i < list.length; i++) { - list[i].classList.remove("hidden" + dir); - } - } else { - for (let i = 0; i < list.length; i++) { - list[i].classList.remove("hidden" + dir); - for (let x = 0; x < allow.length; x++) { - if (!list[i].classList.contains(allow[x])) { - list[i].classList.add("hidden" + dir); - break; - } - } - } - } -} diff --git a/react_OLD/src/scripts/responsive.js b/react_OLD/src/scripts/responsive.js deleted file mode 100644 index c41f9f7..0000000 --- a/react_OLD/src/scripts/responsive.js +++ /dev/null @@ -1,89 +0,0 @@ -window.onload = function () { - onLoaded(); -}; -function onLoaded() { - document.body.scrollTop = 0; // For Safari - document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera - let navs = document.querySelectorAll(".navElement"); - navs.forEach(function (element) { - element.onclick = function () { - window.scrollTo(0, 0); - toggleMenu(); - }; - }); - - window.onresize = function () { - resizer(); - }; - resizer(); - if (window.innerWidth < 1200) { - const e = document.querySelector(".navControl"); - e.style.maxHeight = "0px"; - } -} - -function resizer() { - const e = document.querySelector(".navControl"); - if (window.innerWidth > 1200) { - // desktop view - scrollFunction(); - window.onscroll = function () { - scrollFunction(); - }; - e.style.maxHeight = `${e.scrollHeight + 10}px`; - } else { - // mobile view - window.onscroll = ""; - document.querySelector(".header").style.backgroundColor = "#1a1a1a"; - document.querySelectorAll(".header .name h1").forEach(function (x) { - x.style.fontSize = "1.5rem"; - }); - // document.querySelector('.header > h1').style.color = "#ecebeb"; - document.querySelector(".header").style.borderBottomWidth = "3px"; - e.style.maxHeight = "0px"; - document.querySelectorAll(".navElement *").forEach((x) => { - x.style.paddingTop = ".3rem"; - x.style.paddingBottom = ".3rem"; - x.style.fontSize = "1rem"; - }); - } -} - -function scrollFunction() { - if (document.body.scrollTop > 10 || document.documentElement.scrollTop > 10) { - document.querySelector(".header").style.backgroundColor = "#1a1a1a"; - document.querySelectorAll(".header .name h1").forEach(function (x) { - x.style.fontSize = "1.5rem"; - }); - document.querySelectorAll(".navElement *").forEach((x) => { - x.style.paddingTop = ".3rem"; - x.style.paddingBottom = ".3rem"; - x.style.fontSize = "1rem"; - }); - } else { - document.querySelector(".header").style.backgroundColor = "rgba(0,0,0,0)"; - document.querySelectorAll(".header .name h1").forEach(function (x) { - x.style.fontSize = "2rem"; - }); - // document.querySelector('.header > h1').style.color = "#ecebeb"; - document.querySelectorAll(".navElement *").forEach((x) => { - x.style.paddingTop = ".5rem"; - x.style.paddingBottom = ".5rem"; - x.style.fontSize = "1.2rem"; - }); - } -} - -export function toggleMenu() { - if (window.innerWidth < 1200) { - const e = document.querySelector(".navControl"); - const bar = document.querySelector(".header"); - if (e.style.maxHeight === "0px") { - e.style.maxHeight = `${e.scrollHeight + 10}px`; - bar.style.borderBottomWidth = "0px"; - } else { - e.style.maxHeight = "0px"; - bar.style.borderBottomWidth = "3px"; - } - } -} diff --git a/react_OLD/src/scripts/skill.js b/react_OLD/src/scripts/skill.js deleted file mode 100644 index 612e65e..0000000 --- a/react_OLD/src/scripts/skill.js +++ /dev/null @@ -1,26 +0,0 @@ -let currentType = ""; - -const dict = { - 'python': {'name': 'Python', 'info': 'Python and shit'}, - 'js': {'name': 'Javascript', 'info': 'JS and shit'}, - 'html': {'name': 'HTML/CSS', 'info': 'also SCSS'}, - 'sql': {'name': 'HTML/CSS', 'info': 'also SCSS'}, - 'cpp': {'name': 'HTML/CSS', 'info': 'also SCSS'}, - 'other': {'name': 'HTML/CSS', 'info': 'also SCSS'}, - 'tools': {'name': 'HTML/CSS', 'info': 'also SCSS'} -} - -export function skill(type) { - if (currentType === type) { - return; - } - currentType = type; - let disp = document.getElementById("skillDisp"); - disp.classList = []; - let ugh = disp.offsetWidth; // without this delay the animation doesn't begin. idfk. - disp.querySelector('h2').textContent = dict[type]['name']; - disp.querySelector('p').textContent = dict[type]['info']; - disp.classList.add(type); - disp.classList.add('swipeIn'); - return ugh; // gets rid of unused variable warning -} diff --git a/src/app.py b/src/app.py index 78e6ad7..e02b874 100644 --- a/src/app.py +++ b/src/app.py @@ -1,52 +1,21 @@ import flask from flask_minify import Minify -from flask_socketio import SocketIO import json proj = json.load(open("./static/json/projects.json", "r")) timeline = json.load(open("./static/json/timeline.json", "r")) -pages = { - "home": { - "template": "home.html", - "title": "Andrew Simonson - Portfolio Home", - "description": "Andrew Simonson's Digital Portfolio home", - "canonical": "", - }, - "projects": { - "template": "projects.html", - "projects": proj, - "title": "Andrew Simonson - Projects", - "description": "Recent projects by Andrew Simonson on his lovely portfolio website :)", - "canonical": "projects", - }, - "about": { - "template": "about.html", - "timeline": timeline, - "title": "Andrew Simonson - About Me", - "description": "About Andrew Simonson", - "canonical": "about", - }, -} +pages = json.load(open("./static/json/pages.json", "r")) +pages['about']['timeline'] = timeline +pages['projects']['projects'] = proj app = flask.Flask(__name__) -Minify(app=app, html=True, js=True, cssless=True) -socketio = SocketIO(app) -@socketio.on("goto") -def goto(location): - sid = flask.request.sid +@app.route('/api/goto/') +@app.route('/api/goto/') +def goto(location='home'): pagevars = pages[location] - output = [location, flask.render_template(pagevars["template"], var=pagevars), pagevars['title']] - socketio.emit("goto", output, to=sid) - -@socketio.on("socketio/goto") -def goto(location): - sid = flask.request.sid - pagevars = pages[location] - output = [location, flask.render_template(pagevars["template"], var=pagevars), pagevars['title']] - socketio.emit("goto", f"

    AAAAAAAAAAAAAA

    {output}", to=sid) - + return [pagevars, flask.render_template(pagevars["template"], var=pagevars)] @app.route("/") def home(): @@ -104,7 +73,9 @@ def static_from_root(): if __name__ == "__main__": - import sass + # import sass - sass.compile(dirname=("static/scss", "static/css"), output_style="compressed") - socketio.run(app) + # sass.compile(dirname=("static/scss", "static/css"), output_style="compressed") + app.run() +else: + Minify(app=app, html=True, js=True, cssless=True) \ No newline at end of file diff --git a/src/static/css/App.css b/src/static/css/App.css index a300a6a..4eda8ed 100644 --- a/src/static/css/App.css +++ b/src/static/css/App.css @@ -34,6 +34,7 @@ body { background-attachment: fixed; background-size: 100% auto; background-clip: border-box; + background-color: #1a1a1a; } * { @@ -147,11 +148,12 @@ a { text-align: center; font-size: 1.2rem; font-size: 1rem; - background-color: rgb(156, 49, 45, .4); + background-color: rgba(139, 36, 36, 0.5); } .navElement:hover { - background-color: rgb(156, 49, 45, .8); + background-color: rgba(139, 36, 36, 0.8); + cursor: pointer; } .navElement * { @@ -189,11 +191,11 @@ a { .foreground { position: relative; - padding-top: 7rem; + padding-top: 6rem; padding-left: 8rem; width: calc(100%-8rem); min-height: calc(100vh - 8rem); - background-color: rgb(44, 44, 44, .85); + background-color: rgb(24, 24, 24, .85); padding-bottom: 1rem; overflow: hidden; transition: .4s; @@ -268,6 +270,10 @@ a { justify-content: left; } +.relative { + position: relative; +} + .onRight { position: absolute; right: 0; @@ -309,10 +315,20 @@ a { max-height: min(30rem, 100%); } +/* #aboutGrid{ + display: grid; +} */ + .col { - float: left; - margin-right: 3rem; width: calc(50% - 3rem); + margin-bottom: 3em; +} + +.rightCol { + position: absolute; + right: 0; + top: 0; + margin-right: 3em; } .boxedImg { @@ -323,15 +339,6 @@ a { margin-right: auto; } -.carousel-container { - margin-left: 10%; - max-width: 80%; -} - -.elementBlock { - margin-top: 3rem; -} - .skills { display: inline-block; background-color: rgba(0, 0, 0, 0.3); @@ -349,103 +356,6 @@ a { color: rgb(212, 212, 212); } -#skillList { - color: white; - display: flex; - flex-wrap: wrap; -} - -#skillDisp { - width: 30em; - position: relative; -} - -#skillDisp::after { - background-repeat: no-repeat; - background-size: contain; - background-position: right top; - opacity: .2; - position: absolute; - height: 60%; - width: 100%; - top: 0; - right: 0; - content: ""; - z-index: -1; -} - -#skillDisp.python::after { - background-image: url('https://upload.wikimedia.org/wikipedia/commons/thumb/c/c3/Python-logo-notext.svg/1200px-Python-logo-notext.svg.png') -} - -#skillDisp.js::after { - background-image: url('https://external-content.duckduckgo.com/iu/?u=http%3A%2F%2F3.bp.blogspot.com%2F-PTty3CfTGnA%2FTpZOEjTQ_WI%2FAAAAAAAAAeo%2FKeKt_D5X2xo%2Fs1600%2Fjs.jpg&f=1&nofb=1&ipt=c8ae673676226ae40a5cd1408a5c7607e6b9725025888f4994a705309a16d1c3&ipo=images') -} - -#skillDisp.html::after { - background-image: url('https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Flogos-download.com%2Fwp-content%2Fuploads%2F2017%2F07%2FHTML5_badge.png&f=1&nofb=1&ipt=db644f64f96f334aad37d31dc1c9dab28021476f6effaa0cb682297f8fd14240&ipo=images') -} - -#skillDisp.sql::after { - background-image: url('https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fcdn3.iconfinder.com%2Fdata%2Ficons%2Fbasicolor-computer-tech%2F24%2F091_database_data_sql-512.png&f=1&nofb=1&ipt=cffc17203486b92c9733b992733e6934c03f984bc530c94b75bed278bc73477d&ipo=images') -} - -#skillDisp.cpp::after { - background-image: url('https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fen.nokiawroclaw.pl%2Fwp-content%2Fuploads%2Fsites%2F5%2F2018%2F11%2Fcpp_logo.png&f=1&nofb=1&ipt=5fc23951b00bcbdec1977f3bc4591a7b8511ab29f5982963c541526902c0b4fd&ipo=images') -} - -#skillDisp.other::after { - background-image: url('https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fcdn.freebiesupply.com%2Flogos%2Flarge%2F2x%2Fgit-icon-logo-png-transparent.png&f=1&nofb=1&ipt=834c5a11f63e26429713be2b7d9c9d1e45ce53d771862b9ab49bc35571513894&ipo=images') -} - -#skillDisp.tools::after { - background-image: url('https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fimages.g2crowd.com%2Fuploads%2Fproduct%2Fimage%2Flarge_detail%2Flarge_detail_64636a5c446c22391d4ed719e0987cd2%2Farcgis-pro.png&f=1&nofb=1&ipt=812a2905dd03e5c68f55a9f095bfe7a54feb801bf7f3f11cc01352f45f8a4f8d&ipo=images') -} - -.hex-wrapper { - display: flex; - flex-direction: column; - margin-top: 50px; -} - -.hex-row { - display: flex; -} - -.hex { - width: 100px; - height: 100px; - position: relative; - margin: 0px 5px; -} - -.hex:hover { - transform: scaleX(1.1) scaleY(1.1); -} - -.hex>* { - position: absolute; -} - -.hex-odd { - margin: 0px 55px; -} - -.hex-border { - border-left: solid black 3px; - border-right: solid black 3px; - width: 100%; - height: 58%; -} - -.hex>.hex-border:nth-child(1) { - rotate: 60deg; -} - -.hex>.hex-border:nth-child(2) { - rotate: 120deg; -} - .projectList { padding: 0px; display: flex; @@ -602,22 +512,6 @@ a { } } -@keyframes swipeIn { - 100% { - opacity: 1; - transform: translateX(0); - } - - 0% { - opacity: 0; - transform: translateX(100px); - } -} - -.swipeIn { - animation: swipeIn 1s 1; -} - .fPage { height: 100vh; width: 100%; @@ -799,16 +693,6 @@ a { font-family: robotoreg; } -/* .timeline-item::before{ - content: ""; - background-color: red; - border: solid black 3px; - border-radius: 100%; - padding: 5px; - position: absolute; - margin-left: -8px; -} */ - .datetext { margin: .25em; font-size: small; @@ -866,6 +750,7 @@ a { /* centered objects will need to remove 1.5 of this to center */ padding-right: .5rem; padding-bottom: 36px; + padding-top: 3em; } .homeground { @@ -892,19 +777,11 @@ a { margin-bottom: 3rem; } - #aboutMe { - float: none; - display: block; - width: 90%; + .rightCol { + position: inherit; + margin-right: inherit; } - - #skills { - float: none; - margin-right: auto; - display: block; - width: 90%; - } - + .footer { position: relative; width: 100%; diff --git a/src/static/js/checkbox.js b/src/static/js/checkbox.js index d9f094d..ceb5e9c 100644 --- a/src/static/js/checkbox.js +++ b/src/static/js/checkbox.js @@ -1,4 +1,4 @@ -function toggle(dir) { +function toggleCheckbox(dir) { let toggles = document.querySelectorAll( ".checkbox-wrapper input[type=checkbox]" ); diff --git a/src/static/js/chessbed.js b/src/static/js/chessbed.js index 23ee553..c97da4b 100644 --- a/src/static/js/chessbed.js +++ b/src/static/js/chessbed.js @@ -4,7 +4,7 @@ async function addChessEmbed(username) { user = await fetch(`https://api.chess.com/pub/player/${username}`); stats = await fetch(`https://api.chess.com/pub/player/${username}/stats`); } catch (e) { - setChess({cName:"Chess.com request failed"}); + setChess({ cName: "Chess.com request failed" }); return; } if (user.status === 200) { @@ -15,26 +15,34 @@ async function addChessEmbed(username) { blitz: stats.chess_blitz.last.rating, bullet: stats.chess_bullet.last.rating, tactics: stats.tactics.highest.rating, - } - setChess({cName:user["username"],pic:user.avatar,ratings:ratings}); + }; + setChess({ cName: user["username"], pic: user.avatar, ratings: ratings }); } else if (user === null || user.status === 403 || user.status === null) { - chessSet({cName:"Chess.com request failed"}); + setChess({ cName: "Chess.com request failed" }); } else { - chessSet({cName:"User Not Found"}); + setChess({ cName: "User Not Found" }); } } -function setChess({cName = null, pic = null, ratings = null}) { - if (cName) { - document.querySelector(".chessName").textContent = cName; - } - if (pic) { - document.querySelector(".chessImage").src = pic; - } - if (ratings) { - document.querySelector(".chessRapid .chessStat").textContent = ratings.rapid; - document.querySelector(".chessBlitz .chessStat").textContent = ratings.blitz; - document.querySelector(".chessBullet .chessStat").textContent = ratings.bullet; - document.querySelector(".chessPuzzles .chessStat").textContent = ratings.tactics; +function setChess({ cName = null, pic = null, ratings = null }) { + try { + if (cName) { + document.querySelector(".chessName").textContent = cName; + } + if (pic) { + document.querySelector(".chessImage").src = pic; + } + if (ratings) { + document.querySelector(".chessRapid .chessStat").textContent = + ratings.rapid; + document.querySelector(".chessBlitz .chessStat").textContent = + ratings.blitz; + document.querySelector(".chessBullet .chessStat").textContent = + ratings.bullet; + document.querySelector(".chessPuzzles .chessStat").textContent = + ratings.tactics; + } + } catch { + console.log("fucker clicking so fast the internet can't even keep up"); } } diff --git a/src/static/js/idler.js b/src/static/js/idler.js index 2fa1765..3c4e75f 100644 --- a/src/static/js/idler.js +++ b/src/static/js/idler.js @@ -67,7 +67,7 @@ function windowResized() { } function draw() { - background(32); + background(24); for (let i = 0; i < balls.length; i++) { balls[i].update(); diff --git a/src/static/js/responsive.js b/src/static/js/responsive.js index 934d7b5..1ea5c25 100644 --- a/src/static/js/responsive.js +++ b/src/static/js/responsive.js @@ -4,13 +4,6 @@ window.onload = function () { function onLoaded() { document.body.scrollTop = 0; // For Safari document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera - let navs = document.querySelectorAll(".navElement"); - navs.forEach(function (element) { - element.onclick = function () { - window.scrollTo(0, 0); - toggleMenu(); - }; - }); window.onresize = function () { resizer(); @@ -88,25 +81,31 @@ function toggleMenu() { } } -let socket = io(); - -function emit(event) { - socket.emit(event); -} - -function emitData(event, data) { - socket.emit(event, data) -} - -socket.on('goto', (page) => { - pagename = page[0]; - content = page[1]; - let root = document.getElementById('root'); +async function goto(location, {push=true, toggle=true}={}) { + let a = await fetch("/api/goto/" + location, { + credentials: "include", + method: "GET", + mode: "cors", + }); + const response = await a.json(); + const metadata = response[0]; + const content = response[1]; + let root = document.getElementById("root"); root.innerHTML = content; - root.querySelectorAll("script").forEach(x => { + root.querySelectorAll("script").forEach((x) => { eval(x.innerHTML); }); - document.querySelector('title').textContent = page[2]; - if (pagename == 'home') pagename = '/'; - history.pushState(null, null, pagename); -}); \ No newline at end of file + document.querySelector("title").textContent = metadata['title']; + window.scrollTo(0, 0); + if(toggle){ + toggleMenu(); + } + if(push){ + history.pushState(null, null, metadata['canonical']); + } +} + +function backButton() { + const location = window.location.pathname; + goto(location.substring(1), {push:false}); // remove slash, goto already does that +} diff --git a/src/static/json/pages.json b/src/static/json/pages.json new file mode 100644 index 0000000..cc087d8 --- /dev/null +++ b/src/static/json/pages.json @@ -0,0 +1,20 @@ +{ + "home": { + "template": "home.html", + "title": "Andrew Simonson - Portfolio Home", + "description": "Andrew Simonson's Digital Portfolio home", + "canonical": "/" + }, + "projects": { + "template": "projects.html", + "title": "Andrew Simonson - Projects", + "description": "Recent projects by Andrew Simonson on his lovely portfolio website :)", + "canonical": "/projects" + }, + "about": { + "template": "about.html", + "title": "Andrew Simonson - About Me", + "description": "About Andrew Simonson", + "canonical": "/about" + } +} diff --git a/src/templates/about.html b/src/templates/about.html index 933371a..c9a4c5f 100644 --- a/src/templates/about.html +++ b/src/templates/about.html @@ -1,7 +1,8 @@ {% block content %}
    -
    -
    +
    +
    +

    About Me

    I'm Andrew Simonson, a second year (third year standing) student at @@ -36,20 +37,17 @@ multifaceted purpose present in everything around us.

    -->
    -
    -
    -
    +

    Skills

    - {% from 'partials/skills.html' import skills %} - {{ skills([ "Python", "JavaScript", "Java", "C", "C++", "R", "MIPS Assembly", - "Processing", "P5.js", "SQL", "SQLite", "PostgreSQL", "SQLAlchemy", - "HTML", "CSS", "Docker", "LaTeX", "ArcGIS", "Git", "Github", "Linux", - "OKD4", "Kubernetes", "Openshift", "Angular", "Flask", "Jinja", "DOM Scraping", - "Google API", "React", "Node.js", "ArcGIS", ]) }} - + {% from 'partials/skills.html' import skills %} {{ skills([ "Python", + "JavaScript", "Java", "C", "C++", "R", "MIPS Assembly", "Processing", + "P5.js", "SQL", "SQLite", "PostgreSQL", "SQLAlchemy", "HTML", "CSS", + "Docker", "LaTeX", "ArcGIS", "Git", "Github", "Linux", "OKD4", + "Kubernetes", "Openshift", "Nginx", "Angular", "Flask", "Jinja", "DOM + Scraping", "Google API", "React", "Node.js", "ArcGIS", ]) }}
    - {% from 'partials/chess.html' import chess %} - {{ chess('asimonson1125') }} + {% from 'partials/chess.html' import chess %} {{ chess('asimonson1125') + }}
    +
    +

    Timeline

    +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    + {% from 'partials/timeline.html' import timeitem %} {% for i in + var["timeline"] %} {{ timeitem(i, var["timeline"][i]["classes"], + var["timeline"][i]["date"], var["timeline"][i]["content"])}} {% endfor + %} +
    + +
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    - {% from 'partials/timeline.html' import timeitem %} - {% for i in var["timeline"] %} - {{ timeitem(i, var["timeline"][i]["classes"], var["timeline"][i]["date"], var["timeline"][i]["content"])}} - {% endfor %} -
    -
    {% endblock %} diff --git a/src/templates/header.html b/src/templates/header.html index c4883ba..4e61678 100644 --- a/src/templates/header.html +++ b/src/templates/header.html @@ -52,22 +52,20 @@ href="{{ url_for('static', filename='css/head.css') }}" /> - - - - + + + {{ var['title'] }} - +
    - -
    +
    {% for i in range(9) %}
    @@ -85,18 +83,18 @@ />