diff --git a/package.json b/package.json index f445c6e..c4b5ce7 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "@types/react": "^17.0.0", "@types/react-animate-on-scroll": "^2.1.2", "@types/react-dom": "^17.0.0", + "@types/react-router-dom": "^5.3.1", "@types/react-slick": "^0.23.4", "@types/react-tabs": "^2.3.2", "@types/react-typing-animation": "^1.6.2", @@ -22,6 +23,8 @@ "react-animate-on-scroll": "^2.1.5", "react-bootstrap": "^1.6.1", "react-dom": "^17.0.2", + "react-router": "^5.2.1", + "react-router-dom": "^5.3.0", "react-scripts": "4.0.3", "react-slick": "^0.28.1", "react-tabs": "^3.2.2", diff --git a/src/App.css b/src/App.css index ccb7da1..76f93de 100644 --- a/src/App.css +++ b/src/App.css @@ -144,14 +144,10 @@ h1 { animation: move-left-atx-anim 1s forwards; } -ul { - list-style-type: none; - margin-left: -35px; -} html { - scroll-snap-type: y proximity; + scroll-snap-type: y mandatory; } .child { diff --git a/src/App.tsx b/src/App.tsx index eee9e81..9d1a904 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -8,6 +8,11 @@ import Projects from "./components/projects/Projects"; import Hobbies from "./components/hobbies/Hobbies"; import Contact from "./components/contact/Contact"; import Terminal from "./components/terminal/Terminal"; +import { + BrowserRouter as Router, + Switch, + Route +} from 'react-router-dom'; function App() { @@ -16,18 +21,26 @@ function App() { return (
- {showTerm && } - {!isTerminalVisible && -
- - - - - - -
-
- } + + + + {showTerm && } + {!isTerminalVisible && +
+ + + + + + +
+
+ } +
+ + +
+
); } diff --git a/src/components/footer/Footer.tsx b/src/components/footer/Footer.tsx index 6d03a20..feb7902 100644 --- a/src/components/footer/Footer.tsx +++ b/src/components/footer/Footer.tsx @@ -3,11 +3,8 @@ import React from "react"; export default function Footer() { return ( ) diff --git a/src/components/job-card/JobCard.css b/src/components/job-card/JobCard.css index 96da3e0..1d75585 100644 --- a/src/components/job-card/JobCard.css +++ b/src/components/job-card/JobCard.css @@ -1,9 +1,3 @@ -@media only screen and (min-width: 993px) { - .center-card { - border-left: .5px rgba(255,255,255,.25) solid; - border-right: .5px rgba(255,255,255,.25) solid; - } -} @media only screen and (max-width: 768px) { diff --git a/src/components/job-card/JobCard.tsx b/src/components/job-card/JobCard.tsx index 76b7889..a67e0ca 100644 --- a/src/components/job-card/JobCard.tsx +++ b/src/components/job-card/JobCard.tsx @@ -3,18 +3,22 @@ import React from "react"; import Job from "../../types/Job"; import "./JobCard.css"; -export default function JobCard(props: {style?: any, className?: string, job: Job, isCenter: boolean}){ +export default function JobCard(props: {style?: any, className?: string, job: Job}){ return ( - -
- {props.job.company+" -

{props.job.title}

- {props.job.uri == null &&
{props.job.company}
} - {props.job.uri != null &&
{props.job.company}
} -

{props.job.timespan}

- + +
+ {props.job.company+" +
+
+

{props.job.title}

+ {props.job.uri == null &&
{props.job.company}
} + {props.job.uri != null &&
{props.job.company}
} +

{props.job.timespan}

+
+
    + {props.job.items.map((s) =>
  • {s}
  • )} +
+
); diff --git a/src/components/jobs/Jobs.tsx b/src/components/jobs/Jobs.tsx index a9d649f..1094e11 100644 --- a/src/components/jobs/Jobs.tsx +++ b/src/components/jobs/Jobs.tsx @@ -6,12 +6,9 @@ import "./Jobs.css"; export default function Jobs() { return (
-
-

Work

- - {AllJobs.map((job, i) =>)} - +
+

Work

+ {AllJobs.map((job, i) =>)}
) diff --git a/src/static/data/Hobbies.ts b/src/static/data/Hobbies.ts index 4141af3..2c64f16 100644 --- a/src/static/data/Hobbies.ts +++ b/src/static/data/Hobbies.ts @@ -10,6 +10,14 @@ const RunningHobby: InfoCardProps = { listClassName: "col-12" } +const Listing: InfoCardProps = { + title: "Lifting", + description: "Began lifting when I got into college. (TODO: add more before publishing)", + listTitle: "Personal Records", + list:["Bench - 200lbs", "Squat - 305lbs"], + listClassName: "col-12" +} + const VideogameHobby: InfoCardProps = { title: "Video Games", description: "Video games are what got me interested in programming in the first place. I tend to play them a lot less now in favor of programming though, I'll occasionally sink a couple hours into a game.", diff --git a/src/static/data/Jobs.ts b/src/static/data/Jobs.ts index 0de9efa..0cd8f5d 100644 --- a/src/static/data/Jobs.ts +++ b/src/static/data/Jobs.ts @@ -2,6 +2,7 @@ import Job from "../../types/Job"; import VrboImage from "../images/vrbo-logo-min.png"; import CavImage from "../images/cavcash-logo-min.png"; import ChicksImage from "../images/chicks-logo.svg"; +import CompImage from "../images/compwallet-logo.png"; const VrboJob: Job = { title: "Data Scientist", @@ -19,15 +20,13 @@ const VrboJob: Job = { const CavCashJob: Job = { title: "CEO & Software Engineer", - company: "CavCash Inc", + company: "CavCash", timespan: "May 2017 - Present", items: [ "Founded the company", "Wrote a C# webAPI", "Managed mongoDB and MSSQL databases", - "Deployed and maintained k8s clusters on bare metal", - "Managed CI/CD & DevOps in Azure DevOps", - "Ran & migrated services between Azure, AWS, and GCP" + "Deployed and maintained k8s clusters on bare metal on in-house datacenter", ], image: CavImage } @@ -36,7 +35,7 @@ const ChicksJob: Job = { title: "Software Engineer", company: "Chicks Gold", uri: "https://chicksgold.com", - timespan: "April 2021 - Present", + timespan: "April 2021 - October 2021", items: [ "Added features & bugfixes to .NET 5 API", "Added features & bugfixes to Aurelia website", @@ -46,6 +45,17 @@ const ChicksJob: Job = { image: ChicksImage } +const CompWalletJob: Job = { + title: "Lead Software Developer", + company: "Casino CompWallet", + timespan: "October 2021 - Present", + items: [ + "Work on Ruby-On-Rails API", + "Updated a React Native mobile app" + ], + image: CompImage +} -export const AllJobs: Job[] = [VrboJob, CavCashJob, ChicksJob]; + +export const AllJobs: Job[] = [CompWalletJob, CavCashJob, ChicksJob, VrboJob]; diff --git a/src/static/data/Projects.ts b/src/static/data/Projects.ts index 740559f..7ef8cfd 100644 --- a/src/static/data/Projects.ts +++ b/src/static/data/Projects.ts @@ -2,7 +2,7 @@ import InfoCardProps from "../../types/InfoCardProps"; const WebsiteProject: InfoCardProps = { title: "personal-site (this website)", - description: "As a primairly backend guy, I wrote my last website as a JSON file (imatating a webAPI). Feedback showed that that was a bad idea so I made this pretty neat site (in my opinion). If you like it, feel free to use it yourself!", + description: "As a primairly backend guy, I wrote my last website as a JSON file (imatating a webAPI). Feedback showed that that was a bad idea so I made this pretty neat site (in my opinion). If you like it, feel free to use it yourself! The backend is run in a homemade datacenter (a few Dell Poweredges on a rack) running on Kubernetes.", listTitle: "Technologies & Resources used", list:["React", "Typescript", "Bootstrap", "Icons8", "Docker", "Kubernetes"], link: "https://github.com/nickorlow/personal-site", diff --git a/src/static/images/compwallet-logo.png b/src/static/images/compwallet-logo.png new file mode 100644 index 0000000..d7fefdc Binary files /dev/null and b/src/static/images/compwallet-logo.png differ diff --git a/yarn.lock b/yarn.lock index 012ef71..a6706af 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1091,6 +1091,13 @@ dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a" + integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw== + dependencies: + regenerator-runtime "^0.13.4" + "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.8", "@babel/runtime@^7.14.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": version "7.14.6" resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.6.tgz" @@ -1789,6 +1796,11 @@ dependencies: "@types/node" "*" +"@types/history@*": + version "4.7.9" + resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.9.tgz#1cfb6d60ef3822c589f18e70f8b12f9a28ce8724" + integrity sha512-MUc6zSmU3tEVnkQ78q0peeEjKWPUADMlC/t++2bI8WnAG2tvYRPIgHG8lWkXwqc8MsUF6Z2MOf+Mh5sazOmhiQ== + "@types/html-minifier-terser@^5.0.0": version "5.1.1" resolved "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz" @@ -1895,6 +1907,23 @@ dependencies: "@types/react" "*" +"@types/react-router-dom@^5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.3.1.tgz#76700ccce6529413ec723024b71f01fc77a4a980" + integrity sha512-UvyRy73318QI83haXlaMwmklHHzV9hjl3u71MmM6wYNu0hOVk9NLTa0vGukf8zXUqnwz4O06ig876YSPpeK28A== + dependencies: + "@types/history" "*" + "@types/react" "*" + "@types/react-router" "*" + +"@types/react-router@*": + version "5.1.17" + resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.17.tgz#087091006213b11042f39570e5cd414863693968" + integrity sha512-RNSXOyb3VyRs/EOGmjBhhGKTbnN6fHWvy5FNLzWfOWOGjgVUKqJZXfpKzLmgoU8h6Hj8mpALj/mbXQASOb92wQ== + dependencies: + "@types/history" "*" + "@types/react" "*" + "@types/react-slick@^0.23.4": version "0.23.4" resolved "https://registry.yarnpkg.com/@types/react-slick/-/react-slick-0.23.4.tgz#c97e2a9e7e3d1933c68593b8e82752fab1e8ce53" @@ -5842,6 +5871,18 @@ hex-color-regex@^1.1.0: resolved "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz" integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== +history@^4.9.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" + integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== + dependencies: + "@babel/runtime" "^7.1.2" + loose-envify "^1.2.0" + resolve-pathname "^3.0.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + value-equal "^1.0.1" + hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" @@ -5851,7 +5892,7 @@ hmac-drbg@^1.0.1: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoist-non-react-statics@^3.3.2: +hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== @@ -6579,6 +6620,11 @@ is-wsl@^2.1.1, is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" @@ -7530,7 +7576,7 @@ loglevel@^1.6.8: resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz" integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -7764,6 +7810,14 @@ min-indent@^1.0.0: resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== +mini-create-react-context@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e" + integrity sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ== + dependencies: + "@babel/runtime" "^7.12.1" + tiny-warning "^1.0.3" + mini-css-extract-plugin@0.11.3: version "0.11.3" resolved "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.11.3.tgz" @@ -8629,6 +8683,13 @@ path-to-regexp@0.1.7: resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + path-type@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz" @@ -9784,7 +9845,7 @@ react-error-overlay@^6.0.9: resolved "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz" integrity sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew== -react-is@^16.3.2, react-is@^16.7.0, react-is@^16.8.1: +react-is@^16.3.2, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1: version "16.13.1" resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -9823,6 +9884,35 @@ react-refresh@^0.8.3: resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz" integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg== +react-router-dom@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.0.tgz#da1bfb535a0e89a712a93b97dd76f47ad1f32363" + integrity sha512-ObVBLjUZsphUUMVycibxgMdh5jJ1e3o+KpAZBVeHcNQZ4W+uUGGWsokurzlF4YOldQYRQL4y6yFRWM4m3svmuQ== + dependencies: + "@babel/runtime" "^7.12.13" + history "^4.9.0" + loose-envify "^1.3.1" + prop-types "^15.6.2" + react-router "5.2.1" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-router@5.2.1, react-router@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.2.1.tgz#4d2e4e9d5ae9425091845b8dbc6d9d276239774d" + integrity sha512-lIboRiOtDLFdg1VTemMwud9vRVuOCZmUIT/7lUoZiSpPODiiH1UQlfXy+vPLC/7IWdFYnhRwAyNqA/+I7wnvKQ== + dependencies: + "@babel/runtime" "^7.12.13" + history "^4.9.0" + hoist-non-react-statics "^3.1.0" + loose-envify "^1.3.1" + mini-create-react-context "^0.4.0" + path-to-regexp "^1.7.0" + prop-types "^15.6.2" + react-is "^16.6.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + react-scripts@4.0.3: version "4.0.3" resolved "https://registry.npmjs.org/react-scripts/-/react-scripts-4.0.3.tgz" @@ -10230,6 +10320,11 @@ resolve-from@^5.0.0: resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== +resolve-pathname@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" + integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== + resolve-url-loader@^3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz" @@ -11426,7 +11521,12 @@ timsort@^0.3.0: resolved "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= -tiny-warning@^1.0.2: +tiny-invariant@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" + integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== + +tiny-warning@^1.0.0, tiny-warning@^1.0.2, tiny-warning@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== @@ -11885,6 +11985,11 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +value-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" + integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== + vary@~1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"