diff --git a/package-lock.json b/package-lock.json index abe8ec5..290a5b9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,10 @@ "version": "1.0.0", "license": "ISC", "dependencies": { + "@fortawesome/fontawesome-svg-core": "^6.6.0", + "@fortawesome/free-brands-svg-icons": "^6.6.0", + "@fortawesome/free-solid-svg-icons": "^6.6.0", + "@fortawesome/react-fontawesome": "^0.2.2", "react": "^18.3.1", "react-dom": "^18.3.1" }, @@ -1967,6 +1971,64 @@ "node": ">=10.0.0" } }, + "node_modules/@fortawesome/fontawesome-common-types": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.6.0.tgz", + "integrity": "sha512-xyX0X9mc0kyz9plIyryrRbl7ngsA9jz77mCZJsUkLl+ZKs0KWObgaEBoSgQiYWAsSmjz/yjl0F++Got0Mdp4Rw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/fontawesome-svg-core": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.6.0.tgz", + "integrity": "sha512-KHwPkCk6oRT4HADE7smhfsKudt9N/9lm6EJ5BVg0tD1yPA5hht837fB87F8pn15D8JfTqQOjhKTktwmLMiD7Kg==", + "license": "MIT", + "dependencies": { + "@fortawesome/fontawesome-common-types": "6.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-brands-svg-icons": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.6.0.tgz", + "integrity": "sha512-1MPD8lMNW/earme4OQi1IFHtmHUwAKgghXlNwWi9GO7QkTfD+IIaYpIai4m2YJEzqfEji3jFHX1DZI5pbY/biQ==", + "license": "(CC-BY-4.0 AND MIT)", + "dependencies": { + "@fortawesome/fontawesome-common-types": "6.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-solid-svg-icons": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.6.0.tgz", + "integrity": "sha512-IYv/2skhEDFc2WGUcqvFJkeK39Q+HyPf5GHUrT/l2pKbtgEIv1al1TKd6qStR5OIwQdN1GZP54ci3y4mroJWjA==", + "license": "(CC-BY-4.0 AND MIT)", + "dependencies": { + "@fortawesome/fontawesome-common-types": "6.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/react-fontawesome": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.2.tgz", + "integrity": "sha512-EnkrprPNqI6SXJl//m29hpaNzOp1bruISWaOiRtkMi/xSvHJlzc2j2JAYS7egxt/EbjSNV/k6Xy0AQI6vB2+1g==", + "license": "MIT", + "dependencies": { + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "@fortawesome/fontawesome-svg-core": "~1 || ~6", + "react": ">=16.3" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", @@ -5977,6 +6039,15 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/object-inspect": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", @@ -6259,6 +6330,17 @@ "dev": true, "license": "MIT" }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -6380,6 +6462,12 @@ "react": "^18.3.1" } }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, "node_modules/react-router": { "version": "6.26.2", "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.26.2.tgz", diff --git a/package.json b/package.json index 2d2d9de..7b22d34 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,10 @@ "author": "", "license": "ISC", "dependencies": { + "@fortawesome/fontawesome-svg-core": "^6.6.0", + "@fortawesome/free-brands-svg-icons": "^6.6.0", + "@fortawesome/free-solid-svg-icons": "^6.6.0", + "@fortawesome/react-fontawesome": "^0.2.2", "react": "^18.3.1", "react-dom": "^18.3.1" }, diff --git a/src/components/MemberCard.js b/src/components/MemberCard.js index 415a573..d7065f4 100644 --- a/src/components/MemberCard.js +++ b/src/components/MemberCard.js @@ -1,6 +1,9 @@ import React from 'react'; +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; +import { faLinkedin } from '@fortawesome/free-brands-svg-icons'; +import { faGlobe } from '@fortawesome/free-solid-svg-icons'; -function MemberCard({ name, role, image, degree, graduationYear }) { +function MemberCard({ name, role, image, degree, graduationYear, linkedIn, website }) { return (
@@ -11,6 +14,18 @@ function MemberCard({ name, role, image, degree, graduationYear }) {

{role}

{degree}

{graduationYear}

+
+ {linkedIn && ( + + + + )} + {website && ( + + + + )} +
); diff --git a/src/pages/Team.js b/src/pages/Team.js index a7978ec..99d919c 100644 --- a/src/pages/Team.js +++ b/src/pages/Team.js @@ -8,16 +8,83 @@ import advisorImages from "../assets/advisors"; const Leadership = () => { const members = [ - { image: memberImages["cameron.jpeg"], name: 'Cameron Brown', role: 'Team Lead', degree: 'BS, Computer Science', graduationYear: 'Spring 2025'}, - { image: memberImages["lorant.png"], name: 'Lorant Domokos', role: 'Mechanical Lead', degree: 'BS, Mechanical Engineering', graduationYear: 'Spring 2025'}, - { image: memberImages["daniel.jpeg"], name: 'Daniel Parra', role: 'Software Lead', degree: 'BS, Computer Science', graduationYear: 'Spring 2026'}, - { image: memberImages["adrian.png"], name: 'Adrian Fernandez', role: 'Electrical Lead', degree: 'BS, Electrical Engineering', graduationYear: 'Fall 2024'}, - { image: memberImages["adam_h.png"], name: 'Adam Hamdan', role: 'Mechanical Lead, Operations', degree: 'BS, Mechanical Engineering', graduationYear: 'Spring 2026'}, - { image: memberImages["keith.jpeg"], name: 'Keith Khadar', role: 'Software Lead', degree: 'BS, Computer Engineering', graduationYear: 'Spring 2025' }, - { image: memberImages["kayleigh.jpg"], name: 'Kayleigh Beron', role: 'Electrical Lead, Operations', degree: 'BS, Computer Engineering', graduationYear: 'Fall 2024'}, - { image: memberImages["adam_m.jpeg"], name: 'Adam McAleer', role: 'Mechanical Lead, Mechanisms', degree: 'BS, Mechanical Engineering', graduationYear: 'Fall 2024'}, - { image: memberImages["andrew.png"], name: 'Andrew Knee', role: 'Software Lead', degree: 'MS, Computer Science', graduationYear: 'Fall 2024'}, - { image: memberImages["lester.jpg"], name: 'Lester Bonilla', role: 'Drone Lead', degree: 'BS, Computer Engineering', graduationYear: 'Spring 2025'}, + { + image: memberImages["cameron.jpeg"], + name: "Cameron Brown", + role: "Team Lead", + degree: "BS, Computer Science", + graduationYear: "Spring 2025", + linkedIn: "cameron-brown37", + website: "https://cbrxyz.com", + }, + { + image: memberImages["lorant.png"], + name: "Lorant Domokos", + role: "Mechanical Lead", + degree: "BS, Mechanical Engineering", + graduationYear: "Spring 2025", + linkedIn: "lorant-domokos-849094244", + }, + { image: memberImages["daniel.jpeg"], name: "Daniel Parra", + role: "Software Lead", + degree: "BS, Computer Science", + graduationYear: "Spring 2026", + linkedIn: "daniparr", + }, + { + image: memberImages["adrian.png"], + name: "Adrian Fernandez", + role: "Electrical Lead", + degree: "BS, Electrical Engineering", + graduationYear: "Fall 2024", + linkedIn: "adrianfernandez23", + }, + { + image: memberImages["adam_h.png"], + name: "Adam Hamdan", + role: "Mechanical Lead, Operations", + degree: "BS, Mechanical Engineering", + graduationYear: "Spring 2026", + }, + { + image: memberImages["keith.jpeg"], + name: "Keith Khadar", + role: "Software Lead", + degree: "BS, Computer Engineering", + graduationYear: "Spring 2025", + linkedIn: "keith-khadar" + }, + { + image: memberImages["kayleigh.jpg"], + name: "Kayleigh Beron", + role: "Electrical Lead, Operations", + degree: "BS, Computer Engineering", + graduationYear: "Fall 2024", + linkedIn: "kayleigh-beron" + }, + { + image: memberImages["adam_m.jpeg"], + name: "Adam McAleer", + role: "Mechanical Lead, Mechanisms", + degree: "BS, Mechanical Engineering", + graduationYear: "Fall 2024", + linkedIn: "adam-mcaleer", + }, + { + image: memberImages["andrew.png"], + name: "Andrew Knee", + role: "Software Lead", + degree: "MS, Computer Science", + graduationYear: "Fall 2024", + linkedIn: "andrew-knee-j", + }, + { + image: memberImages["lester.jpg"], + name: "Lester Bonilla", + role: "Drone Lead", + degree: "BS, Computer Engineering", + graduationYear: "Spring 2025", + }, ]; return ( @@ -34,6 +101,8 @@ const Leadership = () => { role={member.role} degree={member.degree} graduationYear={member.graduationYear} + linkedIn={member.linkedIn} + website={member.website} /> ))} @@ -43,9 +112,25 @@ const Leadership = () => { const Advisors = () => { const advisors = [ - { image: advisorImages["schwartz.jpg"], name: 'Dr. Eric Schwartz', role: 'MIL Director' }, - { image: advisorImages["crane.jpg"], name: 'Dr. Carl Crane', role: 'Professor, MAE' }, - { image: advisorImages["andres.png"], name: 'Andres Pulido', role: 'PhD Candidate, MAE' }, + { + image: advisorImages["schwartz.jpg"], + name: "Dr. Eric Schwartz", + role: "MIL Director", + linkedIn: "eric-schwartz-4231924", + }, + { + image: advisorImages["crane.jpg"], + name: "Dr. Carl Crane", + role: "Professor, MAE", + linkedIn: "carl-crane-47839574" + }, + { + image: advisorImages["andres.png"], + name: "Andres Pulido", + role: "PhD Candidate, MAE", + linkedIn: "andres-a-pulido", + website: "https://andrespulido8.github.io" + }, ]; return ( @@ -55,7 +140,14 @@ const Advisors = () => {
{advisors.map((member, index) => ( - + ))}
@@ -66,7 +158,7 @@ const TeamPage = () => { return (
-
+