Add files
Vercel Preview Deployment / Deploy-Preview (push) Failing after 1m15s
@@ -132,4 +132,5 @@ dist
|
||||
|
||||
# Configuration Files
|
||||
pease-portfolio/src/app/projects.json
|
||||
/pease-portfolio/.vercel
|
||||
/pease-portfolio/.vercel
|
||||
.vercel
|
||||
|
||||
@@ -22,7 +22,9 @@
|
||||
"react-chrono": "^2.6.1",
|
||||
"react-dom": "^18",
|
||||
"react-file-viewer": "^1.2.1",
|
||||
"react-grid-gallery": "^1.0.1",
|
||||
"react-iframe": "^1.8.5",
|
||||
"react-image-lightbox": "^5.1.4",
|
||||
"react-youtube": "^10.1.0",
|
||||
"vercel": "^37.6.1"
|
||||
},
|
||||
|
||||
@@ -47,9 +47,15 @@ importers:
|
||||
react-file-viewer:
|
||||
specifier: ^1.2.1
|
||||
version: 1.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@2.7.0)
|
||||
react-grid-gallery:
|
||||
specifier: ^1.0.1
|
||||
version: 1.0.1(react@18.3.1)
|
||||
react-iframe:
|
||||
specifier: ^1.8.5
|
||||
version: 1.8.5(react@18.3.1)
|
||||
react-image-lightbox:
|
||||
specifier: ^5.1.4
|
||||
version: 5.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
react-youtube:
|
||||
specifier: ^10.1.0
|
||||
version: 10.1.0(react@18.3.1)
|
||||
@@ -1706,6 +1712,9 @@ packages:
|
||||
resolution: {integrity: sha512-kJJfVbI/lZE1PZYDI5VPxp8zXPO9rtxOkhpZ0jMKha56AI9y2gGVC6bkukStQf0ka5Rh15BA5m7cCCH4jmHqkw==}
|
||||
engines: {node: ^8.12.0 || >=9.7.0}
|
||||
|
||||
exenv@1.2.2:
|
||||
resolution: {integrity: sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==}
|
||||
|
||||
exit-on-epipe@1.0.1:
|
||||
resolution: {integrity: sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==}
|
||||
engines: {node: '>=0.8'}
|
||||
@@ -3037,17 +3046,39 @@ packages:
|
||||
react: ^16.6.3
|
||||
react-dom: ^16.6.3
|
||||
|
||||
react-grid-gallery@1.0.1:
|
||||
resolution: {integrity: sha512-+fVd6fH9tm0W+UMgzRHET/gmzSs2/l2sGOuELLaHXMto6UhuZdscj9ILHOYe7hn0GBRUJiczMllsEs7OJz9uPA==}
|
||||
peerDependencies:
|
||||
react: '>=16.14.0'
|
||||
|
||||
react-iframe@1.8.5:
|
||||
resolution: {integrity: sha512-F4cQJGs3ydaG6fJWfuz9yLwOU0Trzl6kttXuUG+vYwosH8enOOFxZWEDQCSbNVO8ayjfYZeqLxEvdvcsSy4GvA==}
|
||||
peerDependencies:
|
||||
react: '>=16.x.x'
|
||||
|
||||
react-image-lightbox@5.1.4:
|
||||
resolution: {integrity: sha512-kTiAODz091bgT7SlWNHab0LSMZAPJtlNWDGKv7pLlLY1krmf7FuG1zxE0wyPpeA8gPdwfr3cu6sPwZRqWsc3Eg==}
|
||||
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
|
||||
peerDependencies:
|
||||
react: 16.x || 17.x
|
||||
react-dom: 16.x || 17.x
|
||||
|
||||
react-is@16.13.1:
|
||||
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
|
||||
|
||||
react-is@18.3.1:
|
||||
resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
|
||||
|
||||
react-lifecycles-compat@3.0.4:
|
||||
resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==}
|
||||
|
||||
react-modal@3.16.1:
|
||||
resolution: {integrity: sha512-VStHgI3BVcGo7OXczvnJN7yT2TWHJPDXZWyI/a0ssFNhGZWsPmB8cF0z33ewDXq4VfYMO1vXgiv/g8Nj9NDyWg==}
|
||||
engines: {node: '>=8'}
|
||||
peerDependencies:
|
||||
react: ^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18
|
||||
react-dom: ^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18
|
||||
|
||||
react-transition-group@4.4.5:
|
||||
resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==}
|
||||
peerDependencies:
|
||||
@@ -3750,6 +3781,9 @@ packages:
|
||||
engines: {node: '>=0.8'}
|
||||
hasBin: true
|
||||
|
||||
warning@4.0.3:
|
||||
resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==}
|
||||
|
||||
watchpack-chokidar2@2.0.1:
|
||||
resolution: {integrity: sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==}
|
||||
|
||||
@@ -5707,7 +5741,7 @@ snapshots:
|
||||
eslint: 8.57.0
|
||||
eslint-import-resolver-node: 0.3.9
|
||||
eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@4.9.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0)
|
||||
eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@4.9.5))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0)
|
||||
eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@4.9.5))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@4.9.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0)
|
||||
eslint-plugin-jsx-a11y: 6.9.0(eslint@8.57.0)
|
||||
eslint-plugin-react: 7.35.0(eslint@8.57.0)
|
||||
eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0)
|
||||
@@ -5738,7 +5772,7 @@ snapshots:
|
||||
is-bun-module: 1.1.0
|
||||
is-glob: 4.0.3
|
||||
optionalDependencies:
|
||||
eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@4.9.5))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0)
|
||||
eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@4.9.5))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@4.9.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0)
|
||||
transitivePeerDependencies:
|
||||
- '@typescript-eslint/parser'
|
||||
- eslint-import-resolver-node
|
||||
@@ -5756,7 +5790,7 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@4.9.5))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0):
|
||||
eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@4.9.5))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@4.9.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0):
|
||||
dependencies:
|
||||
array-includes: 3.1.8
|
||||
array.prototype.findlastindex: 1.2.5
|
||||
@@ -5923,6 +5957,8 @@ snapshots:
|
||||
signal-exit: 3.0.7
|
||||
strip-final-newline: 2.0.0
|
||||
|
||||
exenv@1.2.2: {}
|
||||
|
||||
exit-on-epipe@1.0.1: {}
|
||||
|
||||
expand-brackets@2.1.4(supports-color@3.2.3):
|
||||
@@ -7355,15 +7391,37 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- webpack
|
||||
|
||||
react-grid-gallery@1.0.1(react@18.3.1):
|
||||
dependencies:
|
||||
react: 18.3.1
|
||||
|
||||
react-iframe@1.8.5(react@18.3.1):
|
||||
dependencies:
|
||||
object-assign: 4.1.1
|
||||
react: 18.3.1
|
||||
|
||||
react-image-lightbox@5.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
|
||||
dependencies:
|
||||
prop-types: 15.8.1
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
react-modal: 3.16.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
|
||||
react-is@16.13.1: {}
|
||||
|
||||
react-is@18.3.1: {}
|
||||
|
||||
react-lifecycles-compat@3.0.4: {}
|
||||
|
||||
react-modal@3.16.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
|
||||
dependencies:
|
||||
exenv: 1.2.2
|
||||
prop-types: 15.8.1
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
react-lifecycles-compat: 3.0.4
|
||||
warning: 4.0.3
|
||||
|
||||
react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
|
||||
dependencies:
|
||||
'@babel/runtime': 7.25.6
|
||||
@@ -8182,6 +8240,10 @@ snapshots:
|
||||
|
||||
voc@1.0.0: {}
|
||||
|
||||
warning@4.0.3:
|
||||
dependencies:
|
||||
loose-envify: 1.4.0
|
||||
|
||||
watchpack-chokidar2@2.0.1(supports-color@3.2.3):
|
||||
dependencies:
|
||||
chokidar: 2.1.8(supports-color@3.2.3)
|
||||
|
||||
|
After Width: | Height: | Size: 5.1 MiB |
|
After Width: | Height: | Size: 3.6 MiB |
|
After Width: | Height: | Size: 20 MiB |
|
After Width: | Height: | Size: 3.0 MiB |
|
After Width: | Height: | Size: 2.4 MiB |
|
After Width: | Height: | Size: 26 MiB |
|
After Width: | Height: | Size: 2.0 MiB |
|
After Width: | Height: | Size: 3.0 MiB |
|
After Width: | Height: | Size: 1.5 MiB |
|
After Width: | Height: | Size: 2.7 MiB |
|
After Width: | Height: | Size: 24 MiB |
|
After Width: | Height: | Size: 6.1 MiB |
|
After Width: | Height: | Size: 2.6 MiB |
|
After Width: | Height: | Size: 8.4 MiB |
|
After Width: | Height: | Size: 800 KiB |
|
After Width: | Height: | Size: 652 KiB |
|
After Width: | Height: | Size: 509 KiB |
|
After Width: | Height: | Size: 592 KiB |
|
After Width: | Height: | Size: 589 KiB |
|
After Width: | Height: | Size: 703 KiB |
|
After Width: | Height: | Size: 673 KiB |
|
After Width: | Height: | Size: 728 KiB |
|
After Width: | Height: | Size: 651 KiB |
|
After Width: | Height: | Size: 670 KiB |
|
After Width: | Height: | Size: 614 KiB |
|
After Width: | Height: | Size: 459 KiB |
|
After Width: | Height: | Size: 629 KiB |
|
After Width: | Height: | Size: 629 KiB |
|
After Width: | Height: | Size: 808 KiB |
|
After Width: | Height: | Size: 543 KiB |
|
After Width: | Height: | Size: 614 KiB |
|
After Width: | Height: | Size: 897 KiB |
|
After Width: | Height: | Size: 817 KiB |
|
After Width: | Height: | Size: 925 KiB |
|
After Width: | Height: | Size: 890 KiB |
@@ -0,0 +1,8 @@
|
||||
export default function Page(){
|
||||
|
||||
return (
|
||||
<div className="pl-[2%] w-[96%]">
|
||||
<span className="text-[40px] font-bold">About Me</span>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
@@ -84,5 +84,4 @@ function Home() {
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
export default Home;
|
||||
@@ -48,12 +48,21 @@
|
||||
"hasGithub": false,
|
||||
"hasCustomPage": false
|
||||
},
|
||||
"Calculator Programming": {
|
||||
"description": "My first introduction to programming was by way of the Texas Instruments series of calculators. These taught me fundamentals in programming with languages such as TI-BASIC, ICE, and Assembly.",
|
||||
"gitea_user": "npease",
|
||||
"gitea_repo": "ti",
|
||||
"isPublic": false,
|
||||
"hasGitea": false,
|
||||
"hasGithub": "Satellite-Imagery-Uploads",
|
||||
"hasCustomPage": false
|
||||
},
|
||||
"Weather Satellite Imagery": {
|
||||
"description": "The Weather Satellite Imagery project is a project where I constructed and tested various antennas and software to receive and decode weather satellite imagery from NOAA and Meteor satellites. Various results from these transmissions are availiable online at this website!",
|
||||
"isPublic": true,
|
||||
"hasGitea": false,
|
||||
"hasGithub": true,
|
||||
"hasCustomPage": false,
|
||||
"hasCustomPage": "weatherimg",
|
||||
"github_user": "LAX18",
|
||||
"github_repo": "Satellite-Imagery-Uploads"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
"use client"
|
||||
import { Gallery } from "react-grid-gallery";
|
||||
import { useState } from "react";
|
||||
import Lightbox from "react-image-lightbox";
|
||||
import "react-image-lightbox/style.css";
|
||||
|
||||
export default function Page() {
|
||||
var images = [{
|
||||
src: "/images/weather/meteor1.jpg",
|
||||
width: 200,
|
||||
height: 200,
|
||||
}]
|
||||
|
||||
const [index, setIndex] = useState(-1);
|
||||
const currentImage = images[index];
|
||||
const nextIndex = (index + 1) % images.length;
|
||||
const nextImage = images[nextIndex] || currentImage;
|
||||
const prevIndex = (index + images.length - 1) % images.length;
|
||||
const prevImage = images[prevIndex] || currentImage;
|
||||
|
||||
const handleClick = (newIndex) => {setIndex(newIndex);console.log(images[newIndex])};
|
||||
const handleClose = () => setIndex(-1);
|
||||
const handleMovePrev = () => setIndex(prevIndex);
|
||||
const handleMoveNext = () => setIndex(nextIndex);
|
||||
return (
|
||||
<div className="pl-[2%] pr-[2%]">
|
||||
<Gallery images={images} enableImageSelection={false} onClick={handleClick}/>
|
||||
{!!currentImage && (
|
||||
<Lightbox
|
||||
mainSrc={currentImage.original}
|
||||
imageTitle={currentImage.caption}
|
||||
mainSrcThumbnail={currentImage.src}
|
||||
nextSrc={nextImage.original}
|
||||
nextSrcThumbnail={nextImage.src}
|
||||
prevSrc={prevImage.original}
|
||||
prevSrcThumbnail={prevImage.src}
|
||||
onCloseRequest={handleClose}
|
||||
onMovePrevRequest={handleMovePrev}
|
||||
onMoveNextRequest={handleMoveNext}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
import Image from "next/image"
|
||||
import ProjectsListJSON from "../projects.json"
|
||||
|
||||
|
||||
function ProjectHeader() {
|
||||
return (
|
||||
<div className="mt-5 ml-5">
|
||||
@@ -39,7 +40,7 @@ function Project({name, description, imgURL}) {
|
||||
);
|
||||
} else {
|
||||
return (
|
||||
<div className="w-[100%] mt-5">
|
||||
<div className="inline-block w-[33%] mt-5 text-center">
|
||||
<div className="w-[100%] flex justify-center">
|
||||
<div className="w-[100%] self-center ml-5 mr-5">
|
||||
<div className="bg-slate-900 w-[100%] rounded-lg p-5">
|
||||
|
||||