diff --git a/package-lock.json b/package-lock.json index bf75c34..ce88264 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "0.1.0", "dependencies": { "@fortawesome/fontawesome-svg-core": "^6.7.2", + "@fortawesome/free-brands-svg-icons": "^7.1.0", "@fortawesome/free-solid-svg-icons": "^6.7.2", "@fortawesome/react-fontawesome": "^0.2.2", "@react-three/drei": "^9.79.1", @@ -2507,6 +2508,25 @@ "node": ">=6" } }, + "node_modules/@fortawesome/free-brands-svg-icons": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-7.1.0.tgz", + "integrity": "sha512-9byUd9bgNfthsZAjBl6GxOu1VPHgBuRUP9juI7ZoM98h8xNPTCTagfwUFyYscdZq4Hr7gD1azMfM9s5tIWKZZA==", + "dependencies": { + "@fortawesome/fontawesome-common-types": "7.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-brands-svg-icons/node_modules/@fortawesome/fontawesome-common-types": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-7.1.0.tgz", + "integrity": "sha512-l/BQM7fYntsCI//du+6sEnHOP6a74UixFyOYUyz2DLMXKx+6DEhfR3F2NYGE45XH1JJuIamacb4IZs9S0ZOWLA==", + "engines": { + "node": ">=6" + } + }, "node_modules/@fortawesome/free-solid-svg-icons": { "version": "6.7.2", "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.7.2.tgz", diff --git a/package.json b/package.json index f2e01c4..259670c 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "homepage": "https://www.subbots.ca", "dependencies": { "@fortawesome/fontawesome-svg-core": "^6.7.2", + "@fortawesome/free-brands-svg-icons": "^7.1.0", "@fortawesome/free-solid-svg-icons": "^6.7.2", "@fortawesome/react-fontawesome": "^0.2.2", "@react-three/drei": "^9.79.1", diff --git a/public/data/2025/members.json b/public/data/2025/members.json new file mode 100644 index 0000000..e253e1b --- /dev/null +++ b/public/data/2025/members.json @@ -0,0 +1,709 @@ +[ + { + "team": "actuators", + "firstName": "Josh", + "lastName": "Han", + "role": "lead", + "image": "josh_han.jpg", + "media": { + "linkedIn": "www.linkedin.com/in/joshua-c-han", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "actuators", + "firstName": "Emma", + "lastName": "Greville", + "role": "lead", + "image": "emma_greville.jpg", + "media": { + "linkedIn": "https://ca.linkedin.com/in/emma-greville", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "actuators", + "firstName": "Ryan Edric", + "lastName": "Nashota", + "role": "lead", + "image": "", + "media": { + "linkedIn": "", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "actuators", + "firstName": "Lyndon", + "lastName": "Lam", + "role": "member", + "image": "", + "media": { + "linkedIn": "", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "actuators", + "firstName": "Artur", + "lastName": "Graefenstein", + "role": "member", + "image": "artur_graefenstein.jpg", + "media": { + "linkedIn": "linkedin.com/in/artur-graefenstein-b3a6a4301", + "instagram": "", + "github": "", + "email": "arturkag6002@gmail.com" + } + }, + { + "team": "actuators", + "firstName": "Cynthia", + "lastName": "Ikpah", + "role": "member", + "image": "", + "media": { + "linkedIn": "", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "actuators", + "firstName": "Lucky", + "lastName": "Bhatti", + "role": "member", + "image": "", + "media": { + "linkedIn": "", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "actuators", + "firstName": "Yasin", + "lastName": "Kurji", + "role": "member", + "image": "yasin_kurji.jpg", + "media": { + "linkedIn": "https://www.linkedin.com/in/yasinkurji", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "actuators", + "firstName": "Aldiyar", + "lastName": "Mukatay", + "role": "member", + "image": "aldiyar_mukatay.jpg", + "media": { + "linkedIn": "https://www.linkedin.com/in/aldiyar-mukatay/", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "actuators", + "firstName": "Vincent", + "lastName": "Vong", + "role": "member", + "image": "vincent_vong.jpg", + "media": { + "linkedIn": "www.linkedin.com/in/vincentvong39", + "instagram": "", + "github": "", + "email": "" + } + }, + + + + { + "team": "admin", + "firstName": "Leland", + "lastName": "Graves", + "role": "member", + "image": "leland_graves.jpg", + "media": { + "linkedIn": "https://www.linkedin.com/in/leland-graves-5913532ab/", + "instagram": "", + "github": "", + "email": "lelandgraves0@gmail.com" + } + }, + { + "team": "admin", + "firstName": "Talia", + "lastName": "Chan", + "role": "member", + "image": "", + "media": { + "linkedIn": "", + "instagram": "", + "github": "", + "email": "" + } + }, + + + + { + "team": "electrical", + "firstName": "Karl", + "lastName": "Santos", + "role": "lead", + "image": "", + "media": { + "linkedIn": "", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "electrical", + "firstName": "Abhishek", + "lastName": "Raghuwanshi", + "role": "lead", + "image": "abhishek_raghuwanshi.jpeg", + "media": { + "linkedIn": "", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "electrical", + "firstName": "Taran", + "lastName": "Gill", + "role": "lead", + "image": "taran_gill.png", + "media": { + "linkedIn": "https://www.linkedin.com/in/taran-gill-5128442b8/", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "Electrical", + "firstName": "Samuel", + "lastName": "Wu", + "role": "member", + "image": "samuel_wu.jpg", + "media": { + "linkedIn": "", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "electrical", + "firstName": "Malak", + "lastName": "Ali", + "role": "member", + "image": "", + "media": { + "linkedIn": "", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "electrical", + "firstName": "David", + "lastName": "Li Lam", + "role": "member", + "image": "", + "media": { + "linkedIn": "", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "electrical", + "firstName": "Oliver", + "lastName": "Hua", + "role": "member", + "image": "", + "media": { + "linkedIn": "", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "electrical", + "firstName": "Jennifer", + "lastName": "Tran", + "role": "member", + "image": "jennifer_tran.jpeg", + "media": { + "linkedIn": "www.linkedin.com/in/jennifertran6", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "electrical", + "firstName": "Emma", + "lastName": "Zhu", + "role": "member", + "image": "emma_zhu.jpg", + "media": { + "linkedIn": "", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "electrical", + "firstName": "Mark", + "lastName": "Tan", + "role": "member", + "image": "", + "media": { + "linkedIn": "", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "electrical", + "firstName": "Vivian", + "lastName": "Huang", + "role": "member", + "image": "", + "media": { + "linkedIn": "", + "instagram": "", + "github": "", + "email": "" + } + }, + + + + { + "team": "mechanical", + "firstName": "Jonathan", + "lastName": "Kim", + "role": "member", + "image": "", + "media": { + "linkedIn": "", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "mechanical", + "firstName": "Clark", + "lastName": "Jeffrey", + "role": "member", + "image": "", + "media": { + "linkedIn": "", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "mechanical", + "firstName": "Sydney", + "lastName": "Christiansen", + "role": "member", + "image": "", + "media": { + "linkedIn": "", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "mechanical", + "firstName": "Hiona", + "lastName": "Hebert", + "role": "member", + "image": "hiona_hebert.jpg", + "media": { + "linkedIn": "https://www.linkedin.com/in/hiona-hebert-0065a9336/", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "mechanical", + "firstName": "Mira", + "lastName": "Jusman", + "role": "member", + "image": "", + "media": { + "linkedIn": "", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "mechanical", + "firstName": "Chompoonake", + "lastName": "Pochanasomburana", + "role": "member", + "image": "", + "media": { + "linkedIn": "", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "mechanical", + "firstName": "Vince Christian", + "lastName": "Osorio", + "role": "member", + "image": "", + "media": { + "linkedIn": "", + "instagram": "", + "github": "", + "email": "" + } + }, + + + + { + "team": "software", + "firstName": "Dorson", + "lastName": "Tang", + "role": "lead", + "image": "dorson_tang.jpg", + "media": { + "linkedIn": "https://www.linkedin.com/in/dorson-tang/", + "instagram": "", + "github": "https://github.com/doruphin", + "email": "" + } + }, + { + "team": "software", + "firstName": "Hashaam", + "lastName": "Zafar", + "role": "lead", + "image": "hashaam_zafar.jpeg", + "media": { + "linkedIn": "", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "software", + "firstName": "Joel", + "lastName": "Hempel", + "role": "lead", + "image": "joel_hempel.jpg", + "media": { + "linkedIn": "https://www.linkedin.com/in/joelhempel", + "instagram": "", + "github": "", + "email": "joelhempel35@gmail.com" + } + }, + { + "team": "software", + "firstName": "Fei", + "lastName": "Kuan", + "role": "lead", + "image": "fei_kuan.jpg", + "media": { + "linkedIn": "https://www.linkedin.com/in/feikuan/", + "instagram": "", + "github": "https://github.com/fei0316/", + "email": "" + } + }, + { + "team": "software", + "firstName": "Triston", + "lastName": "Tsui", + "role": "member", + "image": "triston_tsui.jpg", + "media": { + "linkedIn": "", + "instagram": "https://www.instagram.com/tristont08/", + "github": "", + "email": "" + } + }, + { + "team": "software", + "firstName": "Joseph", + "lastName": "Deng", + "role": "member", + "image": "joseph_deng.jpg", + "media": { + "linkedIn": "https://www.linkedin.com/in/josephdeng05", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "software", + "firstName": "Kevin", + "lastName": "Zhai", + "role": "member", + "image": "kevin_zhai.jpg", + "media": { + "linkedIn": "", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "software", + "firstName": "Ethan", + "lastName": "Soon", + "role": "member", + "image": "ethan_soon.jpg", + "media": { + "linkedIn": "www.linkedin.com/in/ethan-soon", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "software", + "firstName": "Yerassyl", + "lastName": "Abilkassym", + "role": "member", + "image": "", + "media": { + "linkedIn": "", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "software", + "firstName": "Warren", + "lastName": "Dmello", + "role": "member", + "image": "warren_dmello.jpg", + "media": { + "linkedIn": "https://www.linkedin.com/in/warrenlukedmello/", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "software", + "firstName": "Griffin", + "lastName": "Ng", + "role": "member", + "image": "", + "media": { + "linkedIn": "", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "software", + "firstName": "Marius", + "lastName": "Shepherd", + "role": "member", + "image": "", + "media": { + "linkedIn": "", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "software", + "firstName": "Hank", + "lastName": "Wu", + "role": "member", + "image": "hank_wu.jpg", + "media": { + "linkedIn": "https://www.linkedin.com/in/hank-wu-bb1606251/", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "software", + "firstName": "Krishna", + "lastName": "Garcha", + "role": "member", + "image": "krishna_garcha.jpg", + "media": { + "linkedIn": "https://www.linkedin.com/in/krishna-garcha/", + "instagram": "", + "github": "", + "email": "garchakri@gmail.com" + } + }, + + + + { + "team": "sound_localization", + "firstName": "Faraz", + "lastName": "Fasihzadeh", + "role": "lead", + "image": "", + "media": { + "linkedIn": "", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "sound_localization", + "firstName": "Bella", + "lastName": "Wang", + "role": "member", + "image": "bella_wang.jpg", + "media": { + "linkedIn": "https://www.linkedin.com/in/wbella/", + "instagram": "", + "github": "https://github.com/bella7898", + "email": "" + } + }, + { + "team": "sound_localization", + "firstName": "Daniel", + "lastName": "Kim", + "role": "member", + "image": "daniel_kim.png", + "media": { + "linkedIn": "https://www.linkedin.com/in/danielkim2374/", + "instagram": "", + "github": "https://github.com/ecedaniel", + "email": "" + } + }, + { + "team": "sound_localization", + "firstName": "Mehreen Mohammed", + "lastName": "Arif", + "role": "member", + "image": "mehreen_arif.jpg", + "media": { + "linkedIn": "https://www.linkedin.com/in/mehreen-m-arif-345bb92b9/", + "instagram": "", + "github": "https://github.com/mehreen0903", + "email": "" + } + }, + { + "team": "sound_localization", + "firstName": "Prajna", + "lastName": "Kumar", + "role": "member", + "image": "", + "media": { + "linkedIn": "", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "sound_localization", + "firstName": "Elizabeth", + "lastName": "Lim", + "role": "member", + "image": "elizabeth_lim.jpg", + "media": { + "linkedIn": "http://linkedin.com/in/elizabethlim09", + "instagram": "https://www.instagram.com/elizabethj_lim/", + "github": "", + "email": "" + } + }, + { + "team": "sound_localization", + "firstName": "Chloe", + "lastName": "Sun", + "role": "member", + "image": "chloe_sun.jpg", + "media": { + "linkedIn": "", + "instagram": "https://www.instagram.com/seele.qwq/?utm_source=ig_web_button_share_sheet", + "github": "", + "email": "" + } + }, + + + + { + "team": "captain", + "firstName": "Brenna", + "lastName": "Sullivan", + "role": "member", + "image": "brenna_sullivan.jpg", + "media": { + "linkedIn": "www.linkedin.com/in/brenna-sullivan", + "instagram": "", + "github": "", + "email": "" + } + }, + { + "team": "captain", + "firstName": "Viktor", + "lastName": "Moreno", + "role": "member", + "image": "viktor_moreno.jpeg", + "media": { + "linkedIn": "", + "instagram": "", + "github": "", + "email": "" + } + } +] \ No newline at end of file diff --git a/public/data/members.json b/public/data/archive/members_old.json similarity index 100% rename from public/data/members.json rename to public/data/archive/members_old.json diff --git a/public/images/members/Abhishek.jpeg b/public/images/members/2025/abhishek_raghuwanshi.jpeg similarity index 100% rename from public/images/members/Abhishek.jpeg rename to public/images/members/2025/abhishek_raghuwanshi.jpeg diff --git a/public/images/members/2025/aldiyar_mukatay.jpg b/public/images/members/2025/aldiyar_mukatay.jpg new file mode 100644 index 0000000..34c640f Binary files /dev/null and b/public/images/members/2025/aldiyar_mukatay.jpg differ diff --git a/public/images/members/2025/artur_graefenstein.jpg b/public/images/members/2025/artur_graefenstein.jpg new file mode 100644 index 0000000..6519bcc Binary files /dev/null and b/public/images/members/2025/artur_graefenstein.jpg differ diff --git a/public/images/members/2025/bella_wang.jpg b/public/images/members/2025/bella_wang.jpg new file mode 100644 index 0000000..79c4daa Binary files /dev/null and b/public/images/members/2025/bella_wang.jpg differ diff --git a/public/images/members/2025/brenna_sullivan.jpg b/public/images/members/2025/brenna_sullivan.jpg new file mode 100644 index 0000000..857edad Binary files /dev/null and b/public/images/members/2025/brenna_sullivan.jpg differ diff --git a/public/images/members/2025/chloe_sun.jpg b/public/images/members/2025/chloe_sun.jpg new file mode 100644 index 0000000..99610c8 Binary files /dev/null and b/public/images/members/2025/chloe_sun.jpg differ diff --git a/public/images/members/2025/daniel_kim.png b/public/images/members/2025/daniel_kim.png new file mode 100644 index 0000000..360a74f Binary files /dev/null and b/public/images/members/2025/daniel_kim.png differ diff --git a/public/images/members/2025/dorson_tang.jpg b/public/images/members/2025/dorson_tang.jpg new file mode 100644 index 0000000..e31b4ef Binary files /dev/null and b/public/images/members/2025/dorson_tang.jpg differ diff --git a/public/images/members/2025/elizabeth_lim.jpg b/public/images/members/2025/elizabeth_lim.jpg new file mode 100644 index 0000000..e8e9910 Binary files /dev/null and b/public/images/members/2025/elizabeth_lim.jpg differ diff --git a/public/images/members/2025/emma_greville.jpg b/public/images/members/2025/emma_greville.jpg new file mode 100644 index 0000000..22a5d9e Binary files /dev/null and b/public/images/members/2025/emma_greville.jpg differ diff --git a/public/images/members/2025/emma_zhu.jpg b/public/images/members/2025/emma_zhu.jpg new file mode 100644 index 0000000..6742c84 Binary files /dev/null and b/public/images/members/2025/emma_zhu.jpg differ diff --git a/public/images/members/2025/ethan_soon.jpg b/public/images/members/2025/ethan_soon.jpg new file mode 100644 index 0000000..37ec0b0 Binary files /dev/null and b/public/images/members/2025/ethan_soon.jpg differ diff --git a/public/images/members/2025/fei_kuan.jpg b/public/images/members/2025/fei_kuan.jpg new file mode 100644 index 0000000..32cf2c5 Binary files /dev/null and b/public/images/members/2025/fei_kuan.jpg differ diff --git a/public/images/members/2025/hank_wu.jpg b/public/images/members/2025/hank_wu.jpg new file mode 100644 index 0000000..3a117ee Binary files /dev/null and b/public/images/members/2025/hank_wu.jpg differ diff --git a/public/images/members/Hashaam_Zafar.jpeg b/public/images/members/2025/hashaam_zafar.jpeg similarity index 100% rename from public/images/members/Hashaam_Zafar.jpeg rename to public/images/members/2025/hashaam_zafar.jpeg diff --git a/public/images/members/2025/hiona_hebert.jpg b/public/images/members/2025/hiona_hebert.jpg new file mode 100644 index 0000000..af269b6 Binary files /dev/null and b/public/images/members/2025/hiona_hebert.jpg differ diff --git a/public/images/members/2025/jennifer_tran.jpeg b/public/images/members/2025/jennifer_tran.jpeg new file mode 100644 index 0000000..2979c11 Binary files /dev/null and b/public/images/members/2025/jennifer_tran.jpeg differ diff --git a/public/images/members/2025/joel_hempel.jpg b/public/images/members/2025/joel_hempel.jpg new file mode 100644 index 0000000..9f7bf58 Binary files /dev/null and b/public/images/members/2025/joel_hempel.jpg differ diff --git a/public/images/members/2025/joseph_deng.jpg b/public/images/members/2025/joseph_deng.jpg new file mode 100644 index 0000000..b217339 Binary files /dev/null and b/public/images/members/2025/joseph_deng.jpg differ diff --git a/public/images/members/2025/josh_han.jpg b/public/images/members/2025/josh_han.jpg new file mode 100644 index 0000000..3961472 Binary files /dev/null and b/public/images/members/2025/josh_han.jpg differ diff --git a/public/images/members/2025/kevin_zhai.jpg b/public/images/members/2025/kevin_zhai.jpg new file mode 100644 index 0000000..2d801e9 Binary files /dev/null and b/public/images/members/2025/kevin_zhai.jpg differ diff --git a/public/images/members/2025/krishna_garcha.jpg b/public/images/members/2025/krishna_garcha.jpg new file mode 100644 index 0000000..9280e01 Binary files /dev/null and b/public/images/members/2025/krishna_garcha.jpg differ diff --git a/public/images/members/2025/leland_graves.jpg b/public/images/members/2025/leland_graves.jpg new file mode 100644 index 0000000..0104e98 Binary files /dev/null and b/public/images/members/2025/leland_graves.jpg differ diff --git a/public/images/members/2025/mehreen_arif.jpg b/public/images/members/2025/mehreen_arif.jpg new file mode 100644 index 0000000..9c2e3ef Binary files /dev/null and b/public/images/members/2025/mehreen_arif.jpg differ diff --git a/public/images/members/Samuel_Wu.jpg b/public/images/members/2025/samuel_wu.jpg similarity index 100% rename from public/images/members/Samuel_Wu.jpg rename to public/images/members/2025/samuel_wu.jpg diff --git a/public/images/members/taran_gill.png b/public/images/members/2025/taran_gill.png similarity index 100% rename from public/images/members/taran_gill.png rename to public/images/members/2025/taran_gill.png diff --git a/public/images/members/2025/triston_tsui.jpg b/public/images/members/2025/triston_tsui.jpg new file mode 100644 index 0000000..68aa8f1 Binary files /dev/null and b/public/images/members/2025/triston_tsui.jpg differ diff --git a/public/images/members/Viktor.jpeg b/public/images/members/2025/viktor_moreno.jpeg similarity index 100% rename from public/images/members/Viktor.jpeg rename to public/images/members/2025/viktor_moreno.jpeg diff --git a/public/images/members/2025/vincent_vong.jpg b/public/images/members/2025/vincent_vong.jpg new file mode 100644 index 0000000..71e7de9 Binary files /dev/null and b/public/images/members/2025/vincent_vong.jpg differ diff --git a/public/images/members/2025/warren_dmello.jpg b/public/images/members/2025/warren_dmello.jpg new file mode 100644 index 0000000..c8c6043 Binary files /dev/null and b/public/images/members/2025/warren_dmello.jpg differ diff --git a/public/images/members/2025/yasin_kurji.jpg b/public/images/members/2025/yasin_kurji.jpg new file mode 100644 index 0000000..48cf050 Binary files /dev/null and b/public/images/members/2025/yasin_kurji.jpg differ diff --git a/public/images/members/Aldiyar_Mukatay.jpeg b/public/images/members/Archive/Aldiyar_Mukatay.jpeg similarity index 100% rename from public/images/members/Aldiyar_Mukatay.jpeg rename to public/images/members/Archive/Aldiyar_Mukatay.jpeg diff --git a/public/images/members/Brenna.jpeg b/public/images/members/Archive/Brenna.jpeg similarity index 100% rename from public/images/members/Brenna.jpeg rename to public/images/members/Archive/Brenna.jpeg diff --git a/public/images/members/Dorson.jpg b/public/images/members/Archive/Dorson.jpg similarity index 100% rename from public/images/members/Dorson.jpg rename to public/images/members/Archive/Dorson.jpg diff --git a/public/images/members/Krishna_Garcha.jpeg b/public/images/members/Archive/Krishna_Garcha.jpeg similarity index 100% rename from public/images/members/Krishna_Garcha.jpeg rename to public/images/members/Archive/Krishna_Garcha.jpeg diff --git a/public/images/members/Ruhani_Mittal.jpg b/public/images/members/Archive/Ruhani_Mittal.jpg similarity index 100% rename from public/images/members/Ruhani_Mittal.jpg rename to public/images/members/Archive/Ruhani_Mittal.jpg diff --git a/public/images/members/Archive/Samuel_Wu.jpg b/public/images/members/Archive/Samuel_Wu.jpg new file mode 100644 index 0000000..424ded1 Binary files /dev/null and b/public/images/members/Archive/Samuel_Wu.jpg differ diff --git a/public/images/members/Yasin_Kurji.jpeg b/public/images/members/Archive/Yasin_Kurji.jpeg similarity index 100% rename from public/images/members/Yasin_Kurji.jpeg rename to public/images/members/Archive/Yasin_Kurji.jpeg diff --git a/public/images/members/Archive/ajay_sharma.jpg b/public/images/members/Archive/ajay_sharma.jpg new file mode 100644 index 0000000..d5eb62e Binary files /dev/null and b/public/images/members/Archive/ajay_sharma.jpg differ diff --git a/public/images/members/fei.jpeg b/public/images/members/Archive/fei.jpeg similarity index 100% rename from public/images/members/fei.jpeg rename to public/images/members/Archive/fei.jpeg diff --git a/public/images/members/Joel_Hempel.png b/public/images/members/Archive/joel_hempel.png similarity index 100% rename from public/images/members/Joel_Hempel.png rename to public/images/members/Archive/joel_hempel.png diff --git a/src/assets/electrical_logo.png b/src/assets/logos/electrical_logo.png similarity index 100% rename from src/assets/electrical_logo.png rename to src/assets/logos/electrical_logo.png diff --git a/src/assets/mail.png b/src/assets/logos/email/mail.png similarity index 100% rename from src/assets/mail.png rename to src/assets/logos/email/mail.png diff --git a/src/assets/mail2.png b/src/assets/logos/email/mail2.png similarity index 100% rename from src/assets/mail2.png rename to src/assets/logos/email/mail2.png diff --git a/src/assets/facebook.png b/src/assets/logos/facebook/facebook.png similarity index 100% rename from src/assets/facebook.png rename to src/assets/logos/facebook/facebook.png diff --git a/src/assets/facebook2.png b/src/assets/logos/facebook/facebook2.png similarity index 100% rename from src/assets/facebook2.png rename to src/assets/logos/facebook/facebook2.png diff --git a/src/assets/facebook3.png b/src/assets/logos/facebook/facebook3.png similarity index 100% rename from src/assets/facebook3.png rename to src/assets/logos/facebook/facebook3.png diff --git a/src/assets/git.png b/src/assets/logos/git.png similarity index 100% rename from src/assets/git.png rename to src/assets/logos/git.png diff --git a/src/assets/github2.png b/src/assets/logos/github/github2.png similarity index 100% rename from src/assets/github2.png rename to src/assets/logos/github/github2.png diff --git a/src/assets/github3.png b/src/assets/logos/github/github3.png similarity index 100% rename from src/assets/github3.png rename to src/assets/logos/github/github3.png diff --git a/src/assets/github4.png b/src/assets/logos/github/github4.png similarity index 100% rename from src/assets/github4.png rename to src/assets/logos/github/github4.png diff --git a/src/assets/insta.png b/src/assets/logos/instagram/insta.png similarity index 100% rename from src/assets/insta.png rename to src/assets/logos/instagram/insta.png diff --git a/src/assets/insta2.png b/src/assets/logos/instagram/insta2.png similarity index 100% rename from src/assets/insta2.png rename to src/assets/logos/instagram/insta2.png diff --git a/src/assets/insta4.png b/src/assets/logos/instagram/insta4.png similarity index 100% rename from src/assets/insta4.png rename to src/assets/logos/instagram/insta4.png diff --git a/src/assets/linkedin.png b/src/assets/logos/linkedin/linkedin.png similarity index 100% rename from src/assets/linkedin.png rename to src/assets/logos/linkedin/linkedin.png diff --git a/src/assets/linkedin2.png b/src/assets/logos/linkedin/linkedin2.png similarity index 100% rename from src/assets/linkedin2.png rename to src/assets/logos/linkedin/linkedin2.png diff --git a/src/assets/linkedin3.png b/src/assets/logos/linkedin/linkedin3.png similarity index 100% rename from src/assets/linkedin3.png rename to src/assets/logos/linkedin/linkedin3.png diff --git a/src/assets/logo.png b/src/assets/logos/logo.png similarity index 100% rename from src/assets/logo.png rename to src/assets/logos/logo.png diff --git a/src/assets/matlab.png b/src/assets/logos/matlab.png similarity index 100% rename from src/assets/matlab.png rename to src/assets/logos/matlab.png diff --git a/src/components/Footer/footer.css b/src/components/Footer/footer.css index b146f10..da56d67 100644 --- a/src/components/Footer/footer.css +++ b/src/components/Footer/footer.css @@ -28,32 +28,25 @@ body { .footer-links { display: flex; align-items: center; - gap: 0.5rem; + gap: 1rem; } .copywrite { font-size: 1rem; } -.instagram2, -.facebook2 { - margin: 0 0.5rem; - width: 3rem; - height: auto; - transition: transform 0.2s ease; +.footer-icon { + height: 2.5rem; + color: white; + transition: 0.3s ease; } -.linkedin2 { - margin: 0 0.5rem; - width: 3.5rem; - height: auto; - transition: transform 0.2s ease; +.footer-icon.square { + height: 2.8rem; } /* Add hover effect for social icons */ -.instagram2:hover, -.facebook2:hover, -.linkedin2:hover { +.footer-icon:hover { transform: scale(1.1); } @@ -64,15 +57,12 @@ body { padding: 0 1.5rem; } - .instagram2, - .facebook2 { - width: 2.5rem; - margin: 0 0.4rem; + .footer-icon { + height: 2.2rem; } - .linkedin2 { - width: 3rem; - margin: 0 0.4rem; + .footer-icon.square { + height: 2.5rem; } .copywrite { @@ -91,18 +81,15 @@ body { } .footer-links { - gap: 0.25rem; + gap: 0.5rem; } - .instagram2, - .facebook2 { - width: 2rem; - margin: 0 0.3rem; + .footer-icon { + height: 1.75rem; } - .linkedin2 { - width: 2.5rem; - margin: 0 0.3rem; + .footer-icon.square { + height: 2rem; } .copywrite { diff --git a/src/components/Footer/footer.js b/src/components/Footer/footer.jsx similarity index 57% rename from src/components/Footer/footer.js rename to src/components/Footer/footer.jsx index ba77cff..d800783 100644 --- a/src/components/Footer/footer.js +++ b/src/components/Footer/footer.jsx @@ -1,9 +1,12 @@ import React from 'react'; import '../Footer/footer.css'; -import Linkedin from '../../assets/linkedin2.png'; -import Instagram from '../../assets/insta2.png'; -import Facebook from '../../assets/facebook2.png'; -import Github from '../../assets/github4.png'; +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; +import { + faGithub, + faInstagram, + faLinkedin, + faFacebook +} from '@fortawesome/free-brands-svg-icons'; export default function () { return ( @@ -12,22 +15,22 @@ export default function () {
{/* Linkedin */} - linkedin + {/* Instagram */} - instagram + {/* Facebook */} - facebook + {/* Github */} - github +
diff --git a/src/components/JoinUs/joinUs.js b/src/components/JoinUs/joinUs.jsx similarity index 87% rename from src/components/JoinUs/joinUs.js rename to src/components/JoinUs/joinUs.jsx index 66bde3d..a639306 100644 --- a/src/components/JoinUs/joinUs.js +++ b/src/components/JoinUs/joinUs.jsx @@ -1,10 +1,10 @@ import React from 'react'; import './joinUs.css'; -import Linkedin from '../../assets/linkedin3.png'; -import Instagram from '../../assets/insta4.png'; -import Github from '../../assets/github3.png'; -import Facebook from '../../assets/facebook3.png'; -import Mail from '../../assets/mail.png'; +import Linkedin from '../../assets/logos/linkedin/linkedin3.png'; +import Instagram from '../../assets/logos/instagram/insta4.png'; +import Github from '../../assets/logos/github/github3.png'; +import Facebook from '../../assets/logos/facebook/facebook3.png'; +import Mail from '../../assets/logos/email/mail.png'; export default function joinUs() { return ( diff --git a/src/components/Members/member.css b/src/components/Members/member.css index d3977b6..9f5cc38 100644 --- a/src/components/Members/member.css +++ b/src/components/Members/member.css @@ -16,33 +16,26 @@ overflow: hidden; } -.member-card .image-overlay { +.image-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border-radius: 50%; - background-color: rgba(0, 0, 0, 0); - transition: background-color 0.3s ease; + background-color: rgba(0, 0, 0, 0.5); + transition: 0.3s ease; display: flex; justify-content: center; align-items: center; + gap: 0.5rem; opacity: 0; } -.member-card .image-container:hover .image-overlay { - background-color: rgba(0, 0, 0, 0.5); +.image-container:hover .image-overlay { opacity: 1; } -.member-content { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - .member-info { display: flex; flex-direction: column; @@ -65,7 +58,7 @@ font-size: 1rem; } -.link-image { +.image-link { width: 100%; height: 100%; object-fit: cover; @@ -75,52 +68,24 @@ aspect-ratio: 1 / 1; /* Ensures the image is always square */ } -.link-image { - width: 100%; - height: 100%; - object-fit: cover; - border-radius: 50%; - display: block; -} - -.image-overlay { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - border-radius: 50%; - background-color: rgba(0, 0, 0, 0); - transition: background-color 0.3s ease; - display: flex; - justify-content: center; - align-items: center; - opacity: 0; - /* Initially hidden */ -} - -.image-container:hover .image-overlay { - background-color: rgba(0, 0, 0, 0.5); - opacity: 1; -} - -/* LinkedIn icon styling */ -.linkedin-icon img { +/* Icon styling */ +.media-icon img { width: 2.5rem; height: 2.5rem; transition: transform 0.3s ease; } -.mail-icon img { +.media-icon img:hover { + transform: scale(1.1); +} + +.media-icon .fa-github { width: 2.5rem; height: 2.5rem; transition: transform 0.3s ease; + color: white; } -.linkedin-icon img:hover { +.media-icon .fa-github:hover { transform: scale(1.1); } - -.mail-icon img:hover { - transform: scale(1.15); -} diff --git a/src/components/Members/member.jsx b/src/components/Members/member.jsx index 8864be7..da9e491 100644 --- a/src/components/Members/member.jsx +++ b/src/components/Members/member.jsx @@ -1,44 +1,75 @@ import './member.css'; -import Linkedin from '../../assets/linkedin3.png'; -import Mail from '../../assets/mail.png'; +import Linkedin from '../../assets/logos/linkedin/linkedin3.png'; +import Mail from '../../assets/logos/email/mail.png'; +import Instagram from '../../assets/logos/instagram/insta4.png'; +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; +import { + faGithub +} from '@fortawesome/free-brands-svg-icons'; import { LazyLoadImage } from 'react-lazy-load-image-component'; export default function member(props) { return (
-
-
- -
- {props.linkedin && ( - - LinkedIn - - )} - {props.mail && ( - - Mail - - )} -
-
-
- {props.name} - {props.role} + +
+ + +
+ + {props.media.linkedIn && ( + + LinkedIn + + )} + + {props.media.email && ( + + Mail + + )} + + {props.media.instagram && ( + + Instagram + + )} + + {props.media.github && ( + + + + )} +
+ +
+ {props.firstName} {props.lastName} + {props.role == "lead" ? "Lead": ""} +
+
); } diff --git a/src/components/Members/members.css b/src/components/Members/members.css index 881f382..c3f29f3 100644 --- a/src/components/Members/members.css +++ b/src/components/Members/members.css @@ -8,7 +8,7 @@ margin-top: 6rem; } -.members-title { +.members-header { display: flex; flex-direction: column; justify-content: center; @@ -17,14 +17,14 @@ margin-bottom: 3rem; } -.group { +.member-header-photo { width: 100%; /* -webkit-mask- image: linear-gradient(to bottom, black 70%, transparent 100%); mask-image: linear-gradient(to bottom, black 70%, transparent 100%); */ } -.member-title1 { +.member-header-title { /* color: rgb(9, 7, 69); */ color: var(--primary-color); font-size: 3rem; @@ -32,7 +32,7 @@ padding-top: 1rem; } -.member-title2 { +.member-header-content { font-size: 1.2rem; max-width: 80%; font-weight: 400; @@ -48,63 +48,44 @@ margin-top: 2rem; } -.align { +.subteam { display: flex; - flex-direction: row; - flex-wrap: wrap; + flex-direction: column; + align-items: center; justify-content: center; - max-width: 75vw; } -.CoCaptains, -.admin, -.mechanical, -.electrical, -.actuator, -.software, -.sound-localization, -.frames-enclosures, -.co-captains { +.subteam-header { + margin: 1rem 0; + display: flex; - flex-direction: column; - align-items: center; + flex-direction: row; + flex-wrap: nowrap; justify-content: center; + align-items: center; } -.CoCaptains-title, -.admin-title, -.software-title, -.mechanical-title, -.actuator-title, -.electrical-title, -.sound-localization-title, -.frames-enclosures-title, -.co-captains-title { +.subteam-header > span { letter-spacing: 1.5px; - margin-top: 1rem; font-size: 2rem; font-weight: 700; - height: 2.5rem; color: var(--primary-color); line-height: 1; } -.align1 { - margin: 1rem 0; - +.subteam-members { display: flex; flex-direction: row; - flex-wrap: nowrap; + flex-wrap: wrap; justify-content: center; - align-items: center; + max-width: 75vw; } .icon-common { - font-size: 2rem; + height: 2rem; color: var(--primary-color); display: flex; align-items: center; - line-height: 1; margin-left: 0.5rem; } @@ -122,14 +103,7 @@ font-size: 2rem; } - .admin-title, - .software-title, - .mechanical-title, - .actuator-title, - .electrical-title, - .sound-localization-title, - .frames-enclosures-title, - .co-captains-title { + .subteam-title { font-size: 1.5rem; } diff --git a/src/components/Members/members.jsx b/src/components/Members/members.jsx index 501cccc..2f7e0a9 100644 --- a/src/components/Members/members.jsx +++ b/src/components/Members/members.jsx @@ -2,7 +2,7 @@ import React, { useState, useEffect } from 'react'; import { faCode, faTools, - faCarBattery, + faBolt, faBriefcase, faMicrophone, faCrown, @@ -14,20 +14,20 @@ import Member from './member'; import { LazyLoadImage } from 'react-lazy-load-image-component'; const TEAM_META = { - CoCaptains: { title: 'CO-CAPTAINS', icon: faCrown }, - Admin: { title: 'ADMIN + BUSINESS', icon: faBriefcase }, - Actuator: { title: 'ACTUATOR', icon: faTools }, - Electrical: { title: 'ELECTRICAL', icon: faCarBattery }, - Software: { title: 'SOFTWARE', icon: faCode }, - 'Sound Localization': { title: 'SOUND LOCALIZATION', icon: faMicrophone }, - 'Frames-Enclosures': { title: 'FRAMES & ENCLOSURES', icon: faToolbox }, + captain: { title: 'CO-CAPTAINS', icon: faCrown }, + admin: { title: 'ADMIN + BUSINESS', icon: faBriefcase }, + actuators: { title: 'ACTUATORS', icon: faTools }, + electrical: { title: 'ELECTRICAL', icon: faBolt }, + software: { title: 'SOFTWARE', icon: faCode }, + sound_localization: { title: 'SOUND LOCALIZATION', icon: faMicrophone }, + mechanical: { title: 'FRAMES & ENCLOSURES', icon: faToolbox }, }; export default function Members() { const [members, setMembers] = useState([]); useEffect(() => { - fetch(`${process.env.PUBLIC_URL}/data/members.json`) + fetch(`${process.env.PUBLIC_URL}/data/2025/members.json`) .then((res) => res.json()) .then(setMembers) .catch(console.error); @@ -35,11 +35,7 @@ export default function Members() { // Helper function to determine if someone is a lead const isLead = (role) => { - return ( - role.toLowerCase().includes('lead') || - role.toLowerCase().includes('captain') || - role.toLowerCase().includes('director') - ); + return role.toLowerCase().includes('lead'); }; // Helper function to sort members within a team @@ -65,33 +61,36 @@ export default function Members() { return (
{/* ----- hero / heading ----- */} -
+
- MEET THE TEAM - + +
MEET THE TEAM
+
United by curiosity and driven by purpose, our {members.length}+ team members bring unique skills and shared passion to every step of the journey! - +
+ + {Object.entries(TEAM_META).map(([teamKey, meta]) => { let teamMembers; - if (teamKey === 'CoCaptains') { + if (teamKey === 'captain') { // Special handling for Co-Captains teamMembers = members.filter((m) => - m.role.toLowerCase().includes('co-captain') + m.team.toLowerCase().includes('captain') ); + } else { // Regular team filtering teamMembers = members.filter( - (m) => - m.team === teamKey && !m.role.toLowerCase().includes('co-captain') + (m) => m.team === teamKey && !m.team.toLowerCase().includes('captain') ); } @@ -105,39 +104,37 @@ export default function Members() { return (
-
- - {meta.title} - + +
+ {meta.title}
-
- {sortedTeamMembers.map((m, i) => ( + +
+ {sortedTeamMembers.map((meta, key) => ( ))}
+
); })} + + +
); } diff --git a/src/components/Navbar/navbar.css b/src/components/Navbar/navbar.css index 98eb045..e9030ab 100644 --- a/src/components/Navbar/navbar.css +++ b/src/components/Navbar/navbar.css @@ -94,8 +94,15 @@ /* Add this */ } +.logo-link { + display: flex; + align-items: center; + justify-content: center; +} + .logo { - filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.1)); + width: 4.5rem; + height: auto; } .nav-content { @@ -107,16 +114,11 @@ justify-content: space-between; } -.logo { - width: 5.5rem; - height: auto; -} - .nav-title { font-size: 3rem; font-weight: 600; color: var(--light-blue-color); - text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1); + /* text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1); I think this is a little old */ position: absolute; left: 50%; transform: translateX(-50%); @@ -231,27 +233,14 @@ justify-content: center; } -.linkedin, -.instagram, -.facebook { - transition: transform 0.2s ease-in-out; -} - -.linkedin:hover, -.instagram:hover, -.facebook:hover { - transform: scale(1.2); -} - -.instagram, -.facebook { - width: 3rem; - height: auto; +.navbar-icon { + height: 2.5rem; + color: white; + transition: 0.3s ease; } -.linkedin { - width: 3.5rem; - height: auto; +.navbar-icon:hover { + transform: scale(1.1); } @media (max-width: 1183px) { @@ -274,7 +263,7 @@ /* Logo icon */ .logo { - width: 3.5rem; + width: 3.2rem; } /* was 5.5rem */ diff --git a/src/components/Navbar/navbar.jsx b/src/components/Navbar/navbar.jsx index bdb854b..e3704ef 100644 --- a/src/components/Navbar/navbar.jsx +++ b/src/components/Navbar/navbar.jsx @@ -1,16 +1,18 @@ import { useState, useEffect } from 'react'; import { NavLink, useLocation } from 'react-router-dom'; -import Logo from '../../assets/logo.png'; +import Logo from '../../assets/logos/logo.png'; import './navbar.css'; import { faBarsStaggered, faTimes, - faChevronDown, + faChevronDown } from '@fortawesome/free-solid-svg-icons'; +import { + faGithub, + faInstagram, + faLinkedin +} from '@fortawesome/free-brands-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import Linkedin from '../../assets/linkedin2.png'; -import Instagram from '../../assets/insta2.png'; -import Github from '../../assets/github4.png'; const Navbar = () => { const location = useLocation(); @@ -173,13 +175,13 @@ const Navbar = () => {
- linkedin + - instagram + - github +