Update content to data.ts

This commit is contained in:
2024-10-31 00:28:43 -04:00
parent cede237c1c
commit 0b64c4384b
9 changed files with 240 additions and 225 deletions

184
pnpm-lock.yaml generated
View File

@@ -110,7 +110,7 @@ importers:
version: 9.6.1
'@types/node':
specifier: ^22.8.2
version: 22.8.2
version: 22.8.4
'@types/react':
specifier: ^18.3.12
version: 18.3.12
@@ -119,16 +119,16 @@ importers:
version: 18.3.1
'@typescript-eslint/eslint-plugin':
specifier: ^8.12.1
version: 8.12.1(@typescript-eslint/parser@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
version: 8.12.2(@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
'@typescript-eslint/parser':
specifier: ^8.12.1
version: 8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
version: 8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
eslint:
specifier: ^9.13.0
version: 9.13.0(jiti@1.21.6)
eslint-config-next:
specifier: ^15.0.1
version: 15.0.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
version: 15.0.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
postcss:
specifier: ^8.4.47
version: 8.4.47
@@ -195,8 +195,8 @@ packages:
'@floating-ui/core@1.6.8':
resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==}
'@floating-ui/dom@1.6.11':
resolution: {integrity: sha512-qkMCxSR24v2vGkhYDo/UzxfJN3D4syqSjyuTFz6C7XcpU1pASPRieNI0Kj5VP3/503mOfYiGY891ugBX1GlABQ==}
'@floating-ui/dom@1.6.12':
resolution: {integrity: sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==}
'@floating-ui/react-dom@2.1.2':
resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==}
@@ -353,8 +353,8 @@ packages:
'@next/env@15.0.2':
resolution: {integrity: sha512-c0Zr0ModK5OX7D4ZV8Jt/wqoXtitLNPwUfG9zElCZztdaZyNVnN40rDXVZ/+FGuR4CcNV5AEfM6N8f+Ener7Dg==}
'@next/eslint-plugin-next@15.0.1':
resolution: {integrity: sha512-bKWsMaGPbiFAaGqrDJvbE8b4Z0uKicGVcgOI77YM2ui3UfjHMr4emFPrZTLeZVchi7fT1mooG2LxREfUUClIKw==}
'@next/eslint-plugin-next@15.0.2':
resolution: {integrity: sha512-R9Jc7T6Ge0txjmqpPwqD8vx6onQjynO9JT73ArCYiYPvSrwYXepH/UY/WdKDY8JPWJl72sAE4iGMHPeQ5xdEWg==}
'@next/swc-darwin-arm64@15.0.2':
resolution: {integrity: sha512-GK+8w88z+AFlmt+ondytZo2xpwlfAR8U6CRwXancHImh6EdGfHMIrTSCcx5sOSBei00GyLVL0ioo1JLKTfprgg==}
@@ -1138,8 +1138,8 @@ packages:
'@types/json5@0.0.29':
resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
'@types/node@22.8.2':
resolution: {integrity: sha512-NzaRNFV+FZkvK/KLCsNdTvID0SThyrs5SHB6tsD/lajr22FGC73N2QeDPM2wHtVde8mgcXuSsHQkH5cX1pbPLw==}
'@types/node@22.8.4':
resolution: {integrity: sha512-SpNNxkftTJOPk0oN+y2bIqurEXHTA2AOZ3EJDDKeJ5VzkvvORSvmQXGQarcOzWV1ac7DCaPBEdMDxBsM+d8jWw==}
'@types/prop-types@15.7.13':
resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==}
@@ -1150,8 +1150,8 @@ packages:
'@types/react@18.3.12':
resolution: {integrity: sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==}
'@typescript-eslint/eslint-plugin@8.12.1':
resolution: {integrity: sha512-gNg/inLRcPoBsKKIe4Vv38SVSOhk4BKWNO0T56sVff33gRqtTpOsrhHtiOKD1lmIOmCtZMPaW2x/h2FlM+sCEg==}
'@typescript-eslint/eslint-plugin@8.12.2':
resolution: {integrity: sha512-gQxbxM8mcxBwaEmWdtLCIGLfixBMHhQjBqR8sVWNTPpcj45WlYL2IObS/DNMLH1DBP0n8qz+aiiLTGfopPEebw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
'@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
@@ -1161,8 +1161,8 @@ packages:
typescript:
optional: true
'@typescript-eslint/parser@8.12.1':
resolution: {integrity: sha512-I/I9Bg7qFa8rOgBnUUHIWTgzbB5wVkSLX+04xGUzTcJUtdq/I2uHWR9mbW6qUYJG/UmkuDcTax5JHvoEWOAHOQ==}
'@typescript-eslint/parser@8.12.2':
resolution: {integrity: sha512-MrvlXNfGPLH3Z+r7Tk+Z5moZAc0dzdVjTgUgwsdGweH7lydysQsnSww3nAmsq8blFuRD5VRlAr9YdEFw3e6PBw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
@@ -1171,12 +1171,12 @@ packages:
typescript:
optional: true
'@typescript-eslint/scope-manager@8.12.1':
resolution: {integrity: sha512-bma6sD1iViTt+y9MAwDlBdPTMCqoH/BNdcQk4rKhIZWv3eM0xHmzeSrPJA663PAqFqfpOmtdugycpr0E1mZDVA==}
'@typescript-eslint/scope-manager@8.12.2':
resolution: {integrity: sha512-gPLpLtrj9aMHOvxJkSbDBmbRuYdtiEbnvO25bCMza3DhMjTQw0u7Y1M+YR5JPbMsXXnSPuCf5hfq0nEkQDL/JQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/type-utils@8.12.1':
resolution: {integrity: sha512-zJzrvbDVjIzVKV2TGHcjembEhws8RWXJhmqfO9hS2gRXBN0gDwGhRPEdJ6AZglzfJ+YA1q09EWpSLSXjBJpIMQ==}
'@typescript-eslint/type-utils@8.12.2':
resolution: {integrity: sha512-bwuU4TAogPI+1q/IJSKuD4shBLc/d2vGcRT588q+jzayQyjVK2X6v/fbR4InY2U2sgf8MEvVCqEWUzYzgBNcGQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '*'
@@ -1184,12 +1184,12 @@ packages:
typescript:
optional: true
'@typescript-eslint/types@8.12.1':
resolution: {integrity: sha512-anMS4es5lxBe4UVcDXOkcDb3csnm5BvaNIbOFfvy/pJEohorsggdVB8MFbl5EZiEuBnZZ0ei1z7W5b6FdFiV1Q==}
'@typescript-eslint/types@8.12.2':
resolution: {integrity: sha512-VwDwMF1SZ7wPBUZwmMdnDJ6sIFk4K4s+ALKLP6aIQsISkPv8jhiw65sAK6SuWODN/ix+m+HgbYDkH+zLjrzvOA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/typescript-estree@8.12.1':
resolution: {integrity: sha512-k/o9khHOckPeDXilFTIPsP9iAYhhdMh3OsOL3i2072PNpFqhqzRHx472/0DeC8H/WZee3bZG0z2ddGRSPgeOKw==}
'@typescript-eslint/typescript-estree@8.12.2':
resolution: {integrity: sha512-mME5MDwGe30Pq9zKPvyduyU86PH7aixwqYR2grTglAdB+AN8xXQ1vFGpYaUSJ5o5P/5znsSBeNcs5g5/2aQwow==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '*'
@@ -1197,14 +1197,14 @@ packages:
typescript:
optional: true
'@typescript-eslint/utils@8.12.1':
resolution: {integrity: sha512-sDv9yFHrhKe1WN8EYuzfhKCh/sFRupe9P+m/lZ5YgVvPoCUGHNN50IO4llSu7JAbftUM/QcCh+GeCortXPrBYQ==}
'@typescript-eslint/utils@8.12.2':
resolution: {integrity: sha512-UTTuDIX3fkfAz6iSVa5rTuSfWIYZ6ATtEocQ/umkRSyC9O919lbZ8dcH7mysshrCdrAM03skJOEYaBugxN+M6A==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
'@typescript-eslint/visitor-keys@8.12.1':
resolution: {integrity: sha512-2RwdwnNGuOQKdGjuhujQHUqBZhEuodg2sLVPvOfWktvA9sOXOVqARjOyHSyhN2LiJGKxV6c8oOcmOtRcAnEeFw==}
'@typescript-eslint/visitor-keys@8.12.2':
resolution: {integrity: sha512-PChz8UaKQAVNHghsHcPyx1OMHoFRUEA7rJSK/mDhdq85bk+PLsUHUBqTQTFt18VJZbmxBovM65fezlheQRsSDA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@vercel/analytics@1.3.2':
@@ -1405,8 +1405,8 @@ packages:
resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
engines: {node: '>= 6'}
caniuse-lite@1.0.30001674:
resolution: {integrity: sha512-jOsKlZVRnzfhLojb+Ykb+gyUSp9Xb57So+fAiFlLzzTKpqg8xxSav0e40c8/4F/v9N8QSvrRRaLeVzQbLqomYw==}
caniuse-lite@1.0.30001675:
resolution: {integrity: sha512-/wV1bQwPrkLiQMjaJF5yUMVM/VdRPOCU8QZ+PmG6uW6DvYSrNY1bpwHI/3mOcUosLaJCzYDi5o91IQB51ft6cg==}
chalk@4.1.2:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
@@ -1611,8 +1611,8 @@ packages:
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
engines: {node: '>=10'}
eslint-config-next@15.0.1:
resolution: {integrity: sha512-3cYCrgbH6GS/ufApza7XCKz92vtq4dAdYhx++rMFNlH2cAV+/GsAKkrr4+bohYOACmzG2nAOR+uWprKC1Uld6A==}
eslint-config-next@15.0.2:
resolution: {integrity: sha512-N8o6cyUXzlMmQbdc2Kc83g1qomFi3ITqrAZfubipVKET2uR2mCStyGRcx/r8WiAIVMul2KfwRiCHBkTpBvGBmA==}
peerDependencies:
eslint: ^7.23.0 || ^8.0.0 || ^9.0.0
typescript: '>=3.3.1'
@@ -1685,16 +1685,16 @@ packages:
peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
eslint-scope@8.1.0:
resolution: {integrity: sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==}
eslint-scope@8.2.0:
resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
eslint-visitor-keys@3.4.3:
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
eslint-visitor-keys@4.1.0:
resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==}
eslint-visitor-keys@4.2.0:
resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
eslint@9.13.0:
@@ -1707,8 +1707,8 @@ packages:
jiti:
optional: true
espree@10.2.0:
resolution: {integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==}
espree@10.3.0:
resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
esquery@1.6.0:
@@ -2922,7 +2922,7 @@ snapshots:
dependencies:
ajv: 6.12.6
debug: 4.3.7
espree: 10.2.0
espree: 10.3.0
globals: 14.0.0
ignore: 5.3.2
import-fresh: 3.3.0
@@ -2944,14 +2944,14 @@ snapshots:
dependencies:
'@floating-ui/utils': 0.2.8
'@floating-ui/dom@1.6.11':
'@floating-ui/dom@1.6.12':
dependencies:
'@floating-ui/core': 1.6.8
'@floating-ui/utils': 0.2.8
'@floating-ui/react-dom@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@floating-ui/dom': 1.6.11
'@floating-ui/dom': 1.6.12
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
@@ -3071,7 +3071,7 @@ snapshots:
'@next/env@15.0.2': {}
'@next/eslint-plugin-next@15.0.1':
'@next/eslint-plugin-next@15.0.2':
dependencies:
fast-glob: 3.3.1
@@ -3930,7 +3930,7 @@ snapshots:
'@types/json5@0.0.29': {}
'@types/node@22.8.2':
'@types/node@22.8.4':
dependencies:
undici-types: 6.19.8
@@ -3945,14 +3945,14 @@ snapshots:
'@types/prop-types': 15.7.13
csstype: 3.1.3
'@typescript-eslint/eslint-plugin@8.12.1(@typescript-eslint/parser@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)':
'@typescript-eslint/eslint-plugin@8.12.2(@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)':
dependencies:
'@eslint-community/regexpp': 4.12.1
'@typescript-eslint/parser': 8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
'@typescript-eslint/scope-manager': 8.12.1
'@typescript-eslint/type-utils': 8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
'@typescript-eslint/utils': 8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
'@typescript-eslint/visitor-keys': 8.12.1
'@typescript-eslint/parser': 8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
'@typescript-eslint/scope-manager': 8.12.2
'@typescript-eslint/type-utils': 8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
'@typescript-eslint/utils': 8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
'@typescript-eslint/visitor-keys': 8.12.2
eslint: 9.13.0(jiti@1.21.6)
graphemer: 1.4.0
ignore: 5.3.2
@@ -3963,12 +3963,12 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/parser@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)':
'@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)':
dependencies:
'@typescript-eslint/scope-manager': 8.12.1
'@typescript-eslint/types': 8.12.1
'@typescript-eslint/typescript-estree': 8.12.1(typescript@5.6.3)
'@typescript-eslint/visitor-keys': 8.12.1
'@typescript-eslint/scope-manager': 8.12.2
'@typescript-eslint/types': 8.12.2
'@typescript-eslint/typescript-estree': 8.12.2(typescript@5.6.3)
'@typescript-eslint/visitor-keys': 8.12.2
debug: 4.3.7
eslint: 9.13.0(jiti@1.21.6)
optionalDependencies:
@@ -3976,15 +3976,15 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/scope-manager@8.12.1':
'@typescript-eslint/scope-manager@8.12.2':
dependencies:
'@typescript-eslint/types': 8.12.1
'@typescript-eslint/visitor-keys': 8.12.1
'@typescript-eslint/types': 8.12.2
'@typescript-eslint/visitor-keys': 8.12.2
'@typescript-eslint/type-utils@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)':
'@typescript-eslint/type-utils@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)':
dependencies:
'@typescript-eslint/typescript-estree': 8.12.1(typescript@5.6.3)
'@typescript-eslint/utils': 8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
'@typescript-eslint/typescript-estree': 8.12.2(typescript@5.6.3)
'@typescript-eslint/utils': 8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
debug: 4.3.7
ts-api-utils: 1.3.0(typescript@5.6.3)
optionalDependencies:
@@ -3993,12 +3993,12 @@ snapshots:
- eslint
- supports-color
'@typescript-eslint/types@8.12.1': {}
'@typescript-eslint/types@8.12.2': {}
'@typescript-eslint/typescript-estree@8.12.1(typescript@5.6.3)':
'@typescript-eslint/typescript-estree@8.12.2(typescript@5.6.3)':
dependencies:
'@typescript-eslint/types': 8.12.1
'@typescript-eslint/visitor-keys': 8.12.1
'@typescript-eslint/types': 8.12.2
'@typescript-eslint/visitor-keys': 8.12.2
debug: 4.3.7
fast-glob: 3.3.2
is-glob: 4.0.3
@@ -4010,20 +4010,20 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/utils@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)':
'@typescript-eslint/utils@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)':
dependencies:
'@eslint-community/eslint-utils': 4.4.1(eslint@9.13.0(jiti@1.21.6))
'@typescript-eslint/scope-manager': 8.12.1
'@typescript-eslint/types': 8.12.1
'@typescript-eslint/typescript-estree': 8.12.1(typescript@5.6.3)
'@typescript-eslint/scope-manager': 8.12.2
'@typescript-eslint/types': 8.12.2
'@typescript-eslint/typescript-estree': 8.12.2(typescript@5.6.3)
eslint: 9.13.0(jiti@1.21.6)
transitivePeerDependencies:
- supports-color
- typescript
'@typescript-eslint/visitor-keys@8.12.1':
'@typescript-eslint/visitor-keys@8.12.2':
dependencies:
'@typescript-eslint/types': 8.12.1
'@typescript-eslint/types': 8.12.2
eslint-visitor-keys: 3.4.3
'@vercel/analytics@1.3.2(next@15.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)':
@@ -4214,7 +4214,7 @@ snapshots:
camelcase-css@2.0.1: {}
caniuse-lite@1.0.30001674: {}
caniuse-lite@1.0.30001675: {}
chalk@4.1.2:
dependencies:
@@ -4465,16 +4465,16 @@ snapshots:
escape-string-regexp@4.0.0: {}
eslint-config-next@15.0.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3):
eslint-config-next@15.0.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3):
dependencies:
'@next/eslint-plugin-next': 15.0.1
'@next/eslint-plugin-next': 15.0.2
'@rushstack/eslint-patch': 1.10.4
'@typescript-eslint/eslint-plugin': 8.12.1(@typescript-eslint/parser@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
'@typescript-eslint/parser': 8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
'@typescript-eslint/eslint-plugin': 8.12.2(@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
'@typescript-eslint/parser': 8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
eslint: 9.13.0(jiti@1.21.6)
eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@1.21.6))
eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@1.21.6))
eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@1.21.6))
eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@1.21.6))
eslint-plugin-jsx-a11y: 6.10.2(eslint@9.13.0(jiti@1.21.6))
eslint-plugin-react: 7.37.2(eslint@9.13.0(jiti@1.21.6))
eslint-plugin-react-hooks: 5.0.0(eslint@9.13.0(jiti@1.21.6))
@@ -4493,37 +4493,37 @@ snapshots:
transitivePeerDependencies:
- supports-color
eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@1.21.6)):
eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@1.21.6)):
dependencies:
'@nolyfill/is-core-module': 1.0.39
debug: 4.3.7
enhanced-resolve: 5.17.1
eslint: 9.13.0(jiti@1.21.6)
eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@1.21.6))
eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@1.21.6))
fast-glob: 3.3.2
get-tsconfig: 4.8.1
is-bun-module: 1.2.1
is-glob: 4.0.3
optionalDependencies:
eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@1.21.6))
eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@1.21.6))
transitivePeerDependencies:
- '@typescript-eslint/parser'
- eslint-import-resolver-node
- eslint-import-resolver-webpack
- supports-color
eslint-module-utils@2.12.0(@typescript-eslint/parser@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@1.21.6)):
eslint-module-utils@2.12.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@1.21.6)):
dependencies:
debug: 3.2.7
optionalDependencies:
'@typescript-eslint/parser': 8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
'@typescript-eslint/parser': 8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
eslint: 9.13.0(jiti@1.21.6)
eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@1.21.6))
eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@1.21.6))
transitivePeerDependencies:
- supports-color
eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@1.21.6)):
eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@1.21.6)):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.1.8
@@ -4534,7 +4534,7 @@ snapshots:
doctrine: 2.1.0
eslint: 9.13.0(jiti@1.21.6)
eslint-import-resolver-node: 0.3.9
eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@1.21.6))
eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@1.21.6))
hasown: 2.0.2
is-core-module: 2.15.1
is-glob: 4.0.3
@@ -4546,7 +4546,7 @@ snapshots:
string.prototype.trimend: 1.0.8
tsconfig-paths: 3.15.0
optionalDependencies:
'@typescript-eslint/parser': 8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
'@typescript-eslint/parser': 8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
@@ -4597,14 +4597,14 @@ snapshots:
string.prototype.matchall: 4.0.11
string.prototype.repeat: 1.0.0
eslint-scope@8.1.0:
eslint-scope@8.2.0:
dependencies:
esrecurse: 4.3.0
estraverse: 5.3.0
eslint-visitor-keys@3.4.3: {}
eslint-visitor-keys@4.1.0: {}
eslint-visitor-keys@4.2.0: {}
eslint@9.13.0(jiti@1.21.6):
dependencies:
@@ -4625,9 +4625,9 @@ snapshots:
cross-spawn: 7.0.3
debug: 4.3.7
escape-string-regexp: 4.0.0
eslint-scope: 8.1.0
eslint-visitor-keys: 4.1.0
espree: 10.2.0
eslint-scope: 8.2.0
eslint-visitor-keys: 4.2.0
espree: 10.3.0
esquery: 1.6.0
esutils: 2.0.3
fast-deep-equal: 3.1.3
@@ -4648,11 +4648,11 @@ snapshots:
transitivePeerDependencies:
- supports-color
espree@10.2.0:
espree@10.3.0:
dependencies:
acorn: 8.14.0
acorn-jsx: 5.3.2(acorn@8.14.0)
eslint-visitor-keys: 4.1.0
eslint-visitor-keys: 4.2.0
esquery@1.6.0:
dependencies:
@@ -5117,7 +5117,7 @@ snapshots:
'@swc/counter': 0.1.3
'@swc/helpers': 0.5.13
busboy: 1.6.0
caniuse-lite: 1.0.30001674
caniuse-lite: 1.0.30001675
postcss: 8.4.31
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)

View File

@@ -5,31 +5,7 @@ import Link from "next/link";
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "~/components/ui/card";
import { CardSkeleton } from "~/components/ui/skeletons";
import { useState, useEffect } from 'react';
const articles = [
{
title: "Positively Innovative: Robotics for Good",
link: "https://magazine.bucknell.edu/issue/fall-2024/robotics-for-good/",
author: "Kate Willard",
description: "Sean OConnor 26 is using his interest in robotics to fuel forward-thinking research and lead important conversations about the impact robots can have on society.",
source: "Bucknell Magazine (Fall 2024)"
},
{
title: "Student Story: Sean O'Connor '26, Computer Science and Engineering",
link: "https://www.bucknell.edu/meet-bucknell/bucknell-stories/student-stories/sean-oconnor-26-computer-science-engineering",
author: "Sarah Downey",
description: "At Bucknell, Sean O'Connor '26 is conducting research to improve the ways robots assist, collaborate and coexist with humans.",
source: "Bucknell Student Stories"
},
{
title: "Shaping the Future: Exploring the Social Impact of Robots",
link: "https://magazine.bucknell.edu/college-of-engineering/2024-college-report/",
author: "Bucknell Publications",
description: "RoboLab provides an environment for scholarly and creative conversations.",
source: "the Bucknell College of Engineering Report 2024"
}
// Add more articles as needed
];
import { articles } from '~/lib/data';
export default function ArticlesPage() {
const [loading, setLoading] = useState(true);

View File

@@ -5,22 +5,24 @@ import { Footer } from "~/components/Footer"
import { Navigation } from "~/components/Navigation"
import { Sidebar } from "~/components/Sidebar"
import { inter } from "~/lib/fonts"
import { description, name } from "~/lib/data";
import "~/styles/globals.css"
export const metadata = {
title: "Sean O'Connor",
description: "Personal website and portfolio",
title: `${name[0]?.first} ${name[0]?.last}`,
description: description,
icons: [{ rel: "icon", url: "/favicon.ico" }],
}
export default function RootLayout({ children }: React.PropsWithChildren) {
return (
<html lang="en" className={inter.className}>
<body className="font-sans bg-background text-foreground min-h-screen flex flex-col">
<html lang="en" suppressHydrationWarning className={inter.className}>
<body className="font-sans bg-background text-foreground min-h-screen flex flex-col" suppressHydrationWarning>
<ThemeProvider
attribute="data-theme"
defaultTheme="system"
enableSystem
disableTransitionOnChange
>
<Analytics />
<SpeedInsights />

View File

@@ -1,7 +1,7 @@
import { ArrowUpRight, Code, FlaskConical, Users } from 'lucide-react';
import Link from "next/link";
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "~/components/ui/card";
import { projects } from "~/lib/data";
import { projects, name } from "~/lib/data";
export default function HomePage() {
return (
@@ -9,7 +9,7 @@ export default function HomePage() {
{/* About Section */}
<section className="space-y-6">
<div>
<h1 className="text-2xl font-bold">Hi! I'm Sean. 👋</h1>
<h1 className="text-2xl font-bold">Hi! I'm {name[0]?.first}. 👋</h1>
<p className="text-lg text-muted-foreground mt-2">
I am a Computer Science and Engineering student at Bucknell University, passionate about robotics,
software development, and human-computer interaction. With a strong foundation in both academic

View File

@@ -60,7 +60,7 @@ export default function PublicationsPage() {
return (
<div className="space-y-6">
<section className="prose prose-zinc dark:prose-invert max-w-none">
<h1 className="text-2xl font-bold">Publications 📚</h1>
<h1 className="text-2xl font-bold">Peer-Reviewed Publications 📚</h1>
<p className="text-lg text-muted-foreground mt-2">
My research publications in human-robot interaction and robotics.
</p>

View File

@@ -5,46 +5,7 @@ import { Card, CardHeader, CardTitle, CardContent, CardDescription } from "~/com
import { CardSkeleton } from "~/components/ui/skeletons";
import Image from "next/image";
import { Badge } from "~/components/ui/badge";
const tripsData = [
{
title: "AIChE Annual Student Conference 2024",
description: "With the funding of Bucknell's chemical engineering department, and an amazing team, I was able to attend the 2024 AIChE Annual Student Conference and compete in the national Chem-E-Car competition.",
images: ["/trips/asc2024/IMG_2641.png", "/trips/asc2024/IMG_2631.png", "/trips/asc2024/IMG_7987.png"],
tags: ["Chem-E-Car", "AIChE", "Conference", "Competition"]
},
{
title: "IEEE RO-MAN 2024",
description: "I got to attend the IEEE RO-MAN 2024 conference in Pasadena, California. It was a great opportunity to present my work on my project HRIStudio, and to network with other researchers and industry professionals.",
images: ["/trips/roman2024/IMG_3951.png", "/trips/roman2024/IMG_3978.png", "/trips/roman2024/IMG_3946.png"],
tags: ["RO-MAN", "IEEE", "Conference", "Presentation"]
},
{
title: "ENGR 290: Following da Vinci's Footsteps",
description: "During the summer of 2024, I went on a study abroad program with about thirty of my peers. We explored Italy and France, following the footsteps of Leonardo da Vinci- evaluating the world through his lenses.",
images: ["/trips/engr290/insta290.jpg", "/trips/engr290/P1013747.png"],
tags: ["Italy", "France", "Study Abroad", "Engineering"]
},
{
title: "SCA Specialty Coffee Expo 2024",
description: "As a member of the executive board of the Bucknell Coffee Society, I was able to attend the Specialty Coffee Association's Specialty Coffee Expo in early 2024, traveling to Chicago, IL.",
images: ["/trips/sca2024/group.jpeg", "/trips/sca2024/bean.png", "/trips/sca2024/plane.png"],
tags: ["Coffee Society", "Chicago", "SCA", "Coffee"]
},
{
title: "Formula 1 Gran Premio dell'Emilia Romagna 2024",
description: "While studying abroad with Bucknell Engineering, we were lucky enough to be within a few hours of the Imola Grand Prix! A group of students went to see the race, and it was an amazing experience.",
images: ["/trips/imola2024/IMG_2093.png", "/trips/imola2024/IMG_2050.png", "/trips/imola2024/IMG_2066.png"],
tags: ["Racing", "Formula One", "Italy"]
},
{
title: "Formula 1 British Grand Prix 2024",
description: "As a semi-recent Formula One fan, I was very excited to have the opportunity to attend the British Grand Prix weekend in 2024. I was able to see every event- marking one of my favorite weekends, probably ever.",
images: ["/trips/silverstone/_1035852.png", "/trips/silverstone/P1025274.png", "/trips/silverstone/_1035764.png"],
tags: ["Racing", "Formula One", "Great Britain", "Silverstone"]
}
];
import { travel } from "~/lib/data";
export default function TripsPage() {
const [loading, setLoading] = useState(true);
@@ -75,7 +36,7 @@ export default function TripsPage() {
<CardSkeleton />
</>
) : (
tripsData.map((trip, index) => (
travel.map((trip, index) => (
<Card key={index} className="rounded-lg overflow-hidden">
<CardHeader className="p-0">
<div className="flex flex-col">

View File

@@ -1,11 +1,12 @@
import React from 'react';
import { name } from '~/lib/data';
export function Footer() {
return (
<footer className="lg:hidden bg-background text-foreground pb-4">
<div className="max-w-screen-xl mx-auto px-4 sm:px-6 lg:px-8">
<p className="text-sm text-muted-foreground">
&copy; 2024 Sean O'Connor. All rights reserved.
&copy; {new Date().getFullYear()} {name[0]?.first}&nbsp;{name[0]?.last}. All rights reserved.
</p>
</div>
</footer>

View File

@@ -1,55 +1,8 @@
'use client';
import { Github, Globe, GraduationCap, Linkedin, Mail, Phone, School } from 'lucide-react';
import Image from 'next/image';
import { usePathname } from 'next/navigation';
const schoolInfo = [
{
icon: School,
label: 'Bucknell University',
href: 'https://bucknell.edu'
},
{
label: 'Computer Science and Engineering',
}
]
const contactInfo = [
{
icon: Mail,
label: 'Personal Email',
href: 'mailto:sean@soconnor.dev'
},
{
icon: Mail,
label: 'University Email',
href: 'mailto:sso005@bucknell.edu'
},
{
icon: Phone,
label: 'Phone',
href: 'tel:+16316016555'
},
{
icon: Globe,
label: 'Website',
href: 'https://soconnor.dev',
external: true
},
{
icon: Linkedin,
label: 'LinkedIn',
href: 'https://linkedin.com/in/bu-soconnor',
external: true
},
{
icon: Github,
label: 'GitHub',
href: 'https://github.com/soconnor0919',
external: true
}
];
import { name, contact, location } from '~/lib/data';
export function Sidebar() {
const pathname = usePathname();
@@ -64,7 +17,7 @@ export function Sidebar() {
<div className="w-24 h-24 relative overflow-hidden rounded-lg">
<Image
src="/headshot.png"
alt="Sean O'Connor"
alt={`${name[0]?.first}&nbsp;${name[0]?.last}`}
width={240}
height={240}
className="object-cover rounded-xl"
@@ -72,8 +25,8 @@ export function Sidebar() {
/>
</div>
<div className="flex flex-col space-y-1">
<h2 className="font-bold text-xl hover:text-primary transition-colors">Sean O'Connor</h2>
{schoolInfo.map((item) => (
<h2 className="font-bold text-xl hover:text-primary transition-colors">{name[0]?.first}&nbsp;{name[0]?.last}</h2>
{location.map((item) => (
<a
key={item.label}
href={item.href}
@@ -89,11 +42,11 @@ export function Sidebar() {
))}
</div>
</div>
<div className="space-y-3">
<h3 className="text-xs uppercase text-muted-foreground font-medium">Contact</h3>
<div className="grid grid-cols-2 gap-2">
{contactInfo.map((item) => (
{contact.map((item) => (
<a
key={item.href}
href={item.href}
@@ -119,7 +72,7 @@ export function Sidebar() {
<div className="aspect-square relative overflow-hidden rounded-xl w-full">
<Image
src="/headshot.png"
alt="Sean O'Connor"
alt={`${name[0]?.first}&nbsp;${name[0]?.last}`}
width={240}
height={240}
className="object-cover rounded-xl"
@@ -129,10 +82,10 @@ export function Sidebar() {
/>
</div>
</div>
<div className="text-center lg:text-left space-y-2">
<h2 className="font-bold text-xl hover:text-primary transition-colors">Sean O'Connor</h2>
{schoolInfo.map((item) => (
<h2 className="font-bold text-xl hover:text-primary transition-colors">{name[0]?.first}&nbsp;{name[0]?.last}</h2>
{location.map((item) => (
<a
key={item.label}
href={item.href}
@@ -152,7 +105,7 @@ export function Sidebar() {
<div>
<h3 className="text-xs uppercase text-muted-foreground font-medium mb-2 text-center lg:text-left">Contact</h3>
<div className="space-y-2">
{contactInfo.map((item) => (
{contact.map((item) => (
<a
key={item.href}
href={item.href}
@@ -173,7 +126,7 @@ export function Sidebar() {
<div className="mt-6">
<p className="text-sm text-muted-foreground text-center lg:text-left">
&copy; 2024&nbsp;Sean&nbsp;O'Connor. All&nbsp;rights&nbsp;reserved.
&copy;&nbsp;{new Date().getFullYear()}&nbsp;{name[0]?.first}&nbsp;{name[0]?.last}. All&nbsp;rights&nbsp;reserved.
</p>
</div>
</div>

View File

@@ -1,3 +1,86 @@
import { Globe, Mail, Phone, Linkedin, Github, School } from "lucide-react";
export const name = [
{
first: "Sean",
last: "O'Connor"
}
]
export const description = "Personal website and portfolio";
export const location = [
{
icon: School,
label: 'Bucknell University',
href: 'https://bucknell.edu'
},
{
label: 'Computer Science and Engineering',
}
]
export const contact = [
{
icon: Mail,
label: 'Personal Email',
href: 'mailto:sean@soconnor.dev'
},
{
icon: Mail,
label: 'University Email',
href: 'mailto:sso005@bucknell.edu'
},
{
icon: Phone,
label: 'Phone',
href: 'tel:+16316016555'
},
{
icon: Globe,
label: 'Website',
href: 'https://soconnor.dev',
external: true
},
{
icon: Linkedin,
label: 'LinkedIn',
href: 'https://linkedin.com/in/bu-soconnor',
external: true
},
{
icon: Github,
label: 'GitHub',
href: 'https://github.com/soconnor0919',
external: true
}
];
export const articles = [
{
title: "Positively Innovative: Robotics for Good",
link: "https://magazine.bucknell.edu/issue/fall-2024/robotics-for-good/",
author: "Kate Willard",
description: "Sean OConnor 26 is using his interest in robotics to fuel forward-thinking research and lead important conversations about the impact robots can have on society.",
source: "Bucknell Magazine (Fall 2024)"
},
{
title: "Student Story: Sean O'Connor '26, Computer Science and Engineering",
link: "https://www.bucknell.edu/meet-bucknell/bucknell-stories/student-stories/sean-oconnor-26-computer-science-engineering",
author: "Sarah Downey",
description: "At Bucknell, Sean O'Connor '26 is conducting research to improve the ways robots assist, collaborate and coexist with humans.",
source: "Bucknell Student Stories"
},
{
title: "Shaping the Future: Exploring the Social Impact of Robots",
link: "https://magazine.bucknell.edu/college-of-engineering/2024-college-report/",
author: "Bucknell Publications",
description: "RoboLab provides an environment for scholarly and creative conversations.",
source: "the Bucknell College of Engineering Report 2024"
}
// Add more articles as needed
];
export const projects = [
{
title: "HRIStudio",
@@ -35,3 +118,42 @@ export const projects = [
},
];
export const travel = [
{
title: "AIChE Annual Student Conference 2024",
description: "With the funding of Bucknell's chemical engineering department, and an amazing team, I was able to attend the 2024 AIChE Annual Student Conference and compete in the national Chem-E-Car competition.",
images: ["/trips/asc2024/IMG_2641.png", "/trips/asc2024/IMG_2631.png", "/trips/asc2024/IMG_7987.png"],
tags: ["Chem-E-Car", "AIChE", "Conference", "Competition"]
},
{
title: "IEEE RO-MAN 2024",
description: "I got to attend the IEEE RO-MAN 2024 conference in Pasadena, California. It was a great opportunity to present my work on my project HRIStudio, and to network with other researchers and industry professionals.",
images: ["/trips/roman2024/IMG_3951.png", "/trips/roman2024/IMG_3978.png", "/trips/roman2024/IMG_3946.png"],
tags: ["RO-MAN", "IEEE", "Conference", "Presentation"]
},
{
title: "ENGR 290: Following da Vinci's Footsteps",
description: "During the summer of 2024, I went on a study abroad program with about thirty of my peers. We explored Italy and France, following the footsteps of Leonardo da Vinci- evaluating the world through his lenses.",
images: ["/trips/engr290/insta290.jpg", "/trips/engr290/P1013747.png", "/trips/engr290/_1024461.png"],
tags: ["Italy", "France", "Study Abroad", "Engineering"]
},
{
title: "SCA Specialty Coffee Expo 2024",
description: "As a member of the executive board of the Bucknell Coffee Society, I was able to attend the Specialty Coffee Association's Specialty Coffee Expo in early 2024, traveling to Chicago, IL.",
images: ["/trips/sca2024/group.jpeg", "/trips/sca2024/bean.png", "/trips/sca2024/plane.png"],
tags: ["Coffee Society", "Chicago", "SCA", "Coffee"]
},
{
title: "Formula 1 Gran Premio dell'Emilia Romagna 2024",
description: "While studying abroad with Bucknell Engineering, we were lucky enough to be within a few hours of the Imola Grand Prix! A group of students went to see the race, and it was an amazing experience.",
images: ["/trips/imola2024/IMG_2093.png", "/trips/imola2024/IMG_2050.png", "/trips/imola2024/IMG_2066.png"],
tags: ["Racing", "Formula One", "Italy"]
},
{
title: "Formula 1 British Grand Prix 2024",
description: "As a semi-recent Formula One fan, I was very excited to have the opportunity to attend the British Grand Prix weekend in 2024. I was able to see every event- marking one of my favorite weekends, probably ever.",
images: ["/trips/silverstone/_1035852.png", "/trips/silverstone/P1025274.png", "/trips/silverstone/_1035764.png"],
tags: ["Racing", "Formula One", "Great Britain", "Silverstone"]
}
];