Compare commits
1 commit
main
...
dependabot
Author | SHA1 | Date | |
---|---|---|---|
![]() |
be928466c2 |
24
README.md
|
@ -8,17 +8,11 @@ This site is automatically deployed to netlify. Pushing to the `main` branch wil
|
||||||
|
|
||||||
Please create a new branch for development (i.e. `[NAME]-dev`). Pushing directly to main is not advised, as changes will go straight into production. Once you are ready to merge your changes, create a pull request and request a review from a webmaster.
|
Please create a new branch for development (i.e. `[NAME]-dev`). Pushing directly to main is not advised, as changes will go straight into production. Once you are ready to merge your changes, create a pull request and request a review from a webmaster.
|
||||||
|
|
||||||
### Setup
|
|
||||||
|
|
||||||
1. Install [bun](https://bun.sh) if you haven't already
|
|
||||||
2. Clone the repository
|
|
||||||
3. Run `bun install` to install dependencies
|
|
||||||
|
|
||||||
### Testing
|
### Testing
|
||||||
|
|
||||||
To build the site, run `bun run build`.
|
To build the site, run `pnpm build`.
|
||||||
|
|
||||||
To view the site on your local network, run `bun run dev`. View the site at [localhost:4321](http://localhost:4321).
|
To view the site on your local network, run `pnpm dev`. View the site at [localhost:4321](http://localhost:4321).
|
||||||
|
|
||||||
The site will automatically rebuild on changes as long as the development server is running.
|
The site will automatically rebuild on changes as long as the development server is running.
|
||||||
|
|
||||||
|
@ -30,16 +24,4 @@ Create a `.env` file in the root directory of the project. This file should cont
|
||||||
- PUBLIC_DISCORD_WEBHOOK_LINK
|
- PUBLIC_DISCORD_WEBHOOK_LINK
|
||||||
- PUBLIC_SLACK_WEBHOOK_LINK
|
- PUBLIC_SLACK_WEBHOOK_LINK
|
||||||
|
|
||||||
If you do not include these variables in the .env file, the site will give you an error.
|
If you do not include this in the .env file, the site will give you an error.
|
||||||
|
|
||||||
### Project Structure
|
|
||||||
|
|
||||||
```
|
|
||||||
├── src/
|
|
||||||
│ ├── components/ # Reusable components
|
|
||||||
│ ├── data/ # JSON data files
|
|
||||||
│ ├── layouts/ # Page layouts
|
|
||||||
│ └── pages/ # Page components
|
|
||||||
├── public/ # Static assets
|
|
||||||
└── astro.config.mjs # Astro configuration
|
|
||||||
```
|
|
||||||
|
|
|
@ -3,9 +3,6 @@ import tailwind from "@astrojs/tailwind";
|
||||||
import preact from "@astrojs/preact";
|
import preact from "@astrojs/preact";
|
||||||
import mdx from "@astrojs/mdx";
|
import mdx from "@astrojs/mdx";
|
||||||
import react from "@astrojs/react";
|
import react from "@astrojs/react";
|
||||||
import icon from "astro-icon";
|
|
||||||
|
|
||||||
import node from "@astrojs/node";
|
|
||||||
|
|
||||||
// https://astro.build/config
|
// https://astro.build/config
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
|
@ -18,10 +15,5 @@ export default defineConfig({
|
||||||
react({
|
react({
|
||||||
include: ["**/react/*"],
|
include: ["**/react/*"],
|
||||||
}),
|
}),
|
||||||
icon(),
|
|
||||||
],
|
],
|
||||||
output: "server",
|
|
||||||
adapter: node({
|
|
||||||
mode: "standalone",
|
|
||||||
}),
|
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[phases.setup]
|
|
||||||
nixPkgs = ["nodejs_18", "bun"]
|
|
||||||
aptPkgs = ["curl", "wget"]
|
|
||||||
|
|
51
package.json
|
@ -1,43 +1,38 @@
|
||||||
{
|
{
|
||||||
"name": "IEEE_UCSD_WEBSITE",
|
"name": "IEEE_UCSD_WEBSITE",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"version": "1.2.0",
|
"version": "1.0.0",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "astro dev",
|
"dev": "astro dev",
|
||||||
"start": "node dist/server/entry.mjs",
|
"start": "astro dev",
|
||||||
"build": "astro check && astro build",
|
"build": "astro check && astro build",
|
||||||
"preview": "astro preview",
|
"preview": "astro preview",
|
||||||
"astro": "astro"
|
"astro": "astro"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@astrojs/check": "^0.5.10",
|
"@astrojs/check": "^0.5.9",
|
||||||
"@astrojs/mdx": "^2.3.1",
|
"@astrojs/mdx": "^2.2.0",
|
||||||
"@astrojs/node": "^8.3.3",
|
"@astrojs/preact": "^3.1.1",
|
||||||
"@astrojs/preact": "^3.5.3",
|
"@astrojs/react": "^3.1.0",
|
||||||
"@astrojs/react": "^3.6.2",
|
|
||||||
"@astrojs/tailwind": "^5.1.0",
|
"@astrojs/tailwind": "^5.1.0",
|
||||||
"@fontsource-variable/epilogue": "^5.1.0",
|
"@fontsource-variable/epilogue": "^5.0.13",
|
||||||
"@fontsource-variable/josefin-sans": "^5.1.0",
|
"@fontsource-variable/josefin-sans": "^5.0.20",
|
||||||
"@fontsource-variable/lora": "^5.1.0",
|
"@fontsource-variable/lora": "^5.0.17",
|
||||||
"@fontsource/open-sans": "^5.1.0",
|
"@fontsource/open-sans": "^5.0.27",
|
||||||
"@fontsource/vollkorn": "^5.1.0",
|
"@fontsource/vollkorn": "^5.0.19",
|
||||||
"@iconify-json/ic": "^1.2.0",
|
"astro": "^4.5.7",
|
||||||
"@iconify-json/mdi": "^1.2.0",
|
"framer-motion": "^11.0.15",
|
||||||
"astro": "^4.15.6",
|
"iconify-icon": "^2.0.0",
|
||||||
"astro-icon": "^1.1.1",
|
"preact": "^10.20.0",
|
||||||
"framer-motion": "^11.5.4",
|
"react": "^18.2.0",
|
||||||
"preact": "^10.24.0",
|
"react-dom": "^18.2.0",
|
||||||
"react": "^18.3.1",
|
"tailwindcss": "^3.4.1",
|
||||||
"react-dom": "^18.3.1",
|
"typescript": "^5.4.2"
|
||||||
"tailwindcss": "^3.4.11",
|
|
||||||
"typescript": "^5.6.2"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@tailwindcss/forms": "^0.5.9",
|
"@tailwindcss/forms": "^0.5.7",
|
||||||
"@types/jquery": "^3.5.30",
|
"@types/jquery": "^3.5.29",
|
||||||
"@types/node": "^20.16.5",
|
"@types/node": "^20.11.30",
|
||||||
"@types/react": "^18.3.5",
|
"sass": "^1.72.0"
|
||||||
"@types/react-dom": "^18.3.0",
|
|
||||||
"sass": "^1.78.0"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
5192
pnpm-lock.yaml
Normal file
Before Width: | Height: | Size: 13 MiB |
BIN
public/officers/abby.jpg
Normal file
After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 1.3 MiB |
Before Width: | Height: | Size: 1.1 MiB |
Before Width: | Height: | Size: 949 KiB |
Before Width: | Height: | Size: 1.4 MiB |
Before Width: | Height: | Size: 1.5 MiB |
BIN
public/officers/arjun.jpg
Normal file
After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 1.4 MiB |
BIN
public/officers/avatar.jpg
Normal file
After Width: | Height: | Size: 5.3 KiB |
BIN
public/officers/brigette.jpg
Normal file
After Width: | Height: | Size: 78 KiB |
Before Width: | Height: | Size: 699 KiB |
Before Width: | Height: | Size: 1.5 MiB |
BIN
public/officers/daniel.jpg
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
public/officers/darin.jpg
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
public/officers/dennis.jpg
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
public/officers/derek.jpg
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
public/officers/devanshi.jpg
Normal file
After Width: | Height: | Size: 319 KiB |
Before Width: | Height: | Size: 1.8 MiB |
Before Width: | Height: | Size: 1.4 MiB |
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 1.3 MiB |
BIN
public/officers/jason.jpg
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
public/officers/jayendra.jpg
Normal file
After Width: | Height: | Size: 461 KiB |
BIN
public/officers/jiliana.jpg
Normal file
After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 1.2 MiB |
BIN
public/officers/joshua.jpg
Normal file
After Width: | Height: | Size: 484 KiB |
BIN
public/officers/joyce.jpg
Normal file
After Width: | Height: | Size: 532 KiB |
BIN
public/officers/kaitlin.jpg
Normal file
After Width: | Height: | Size: 148 KiB |
BIN
public/officers/kate.jpg
Normal file
After Width: | Height: | Size: 480 KiB |
BIN
public/officers/kevin.jpg
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
public/officers/khai.jpg
Normal file
After Width: | Height: | Size: 63 KiB |
Before Width: | Height: | Size: 1.3 MiB |
Before Width: | Height: | Size: 1.5 MiB |
BIN
public/officers/matthew.jpg
Normal file
After Width: | Height: | Size: 104 KiB |
BIN
public/officers/matthewyik.jpg
Normal file
After Width: | Height: | Size: 578 KiB |
BIN
public/officers/matthewyik.webp
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
public/officers/mohak.jpg
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
public/officers/mustahsin.jpg
Normal file
After Width: | Height: | Size: 531 KiB |
BIN
public/officers/niklas.jpg
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
public/officers/parisa.jpg
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
public/officers/parisa.webp
Normal file
After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 1.5 MiB |
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 1 MiB |
Before Width: | Height: | Size: 2.1 MiB |
BIN
public/officers/sanh.jpg
Normal file
After Width: | Height: | Size: 60 KiB |
BIN
public/officers/sankalp.jpg
Normal file
After Width: | Height: | Size: 55 KiB |
BIN
public/officers/shaun.jpg
Normal file
After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 1.4 MiB |
Before Width: | Height: | Size: 1.4 MiB After Width: | Height: | Size: 524 KiB |
BIN
public/officers/stella.jpeg
Normal file
After Width: | Height: | Size: 496 KiB |
Before Width: | Height: | Size: 235 KiB |
Before Width: | Height: | Size: 82 KiB |
BIN
public/officers/stephanie.jpg
Normal file
After Width: | Height: | Size: 57 KiB |
BIN
public/officers/tasnia.jpeg
Normal file
After Width: | Height: | Size: 122 KiB |
BIN
public/officers/temp.png
Normal file
After Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 1.7 MiB |
BIN
public/officers/tien.jpg
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
public/officers/vuong.jpg
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
public/officers/yash.jpg
Normal file
After Width: | Height: | Size: 2.1 MiB |
BIN
public/officers/yusuf.jpg
Normal file
After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 40 KiB |
|
@ -10,7 +10,7 @@ const EventList = ({ CALENDAR_API_KEY }) => {
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const apiKey = CALENDAR_API_KEY;
|
const apiKey = CALENDAR_API_KEY;
|
||||||
const calendarId =
|
const calendarId =
|
||||||
"c_2bips5sphnrpa8ui4ike6k4b1s@group.calendar.google.com";
|
"666sh64sku5n29qv2a2f4598jc@group.calendar.google.com";
|
||||||
const userTimeZone = "America/Los_Angeles";
|
const userTimeZone = "America/Los_Angeles";
|
||||||
|
|
||||||
const loadGapiAndListEvents = () => {
|
const loadGapiAndListEvents = () => {
|
||||||
|
|
|
@ -7,36 +7,21 @@ const OfficerCard = ({
|
||||||
email,
|
email,
|
||||||
onMustahsinClicked,
|
onMustahsinClicked,
|
||||||
}) => {
|
}) => {
|
||||||
const [imageSrc, setImageSrc] = React.useState(
|
|
||||||
"https://placehold.co/500?text=IEEE%20@%20UCSD"
|
|
||||||
);
|
|
||||||
|
|
||||||
const handleImageClick = () => {
|
const handleImageClick = () => {
|
||||||
if (name === "Mustahsin Zarif") {
|
if (name === "Mustahsin Zarif") {
|
||||||
onMustahsinClicked();
|
onMustahsinClicked();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
React.useEffect(() => {
|
|
||||||
if (picture) {
|
|
||||||
const img = new Image();
|
|
||||||
img.onload = () => {
|
|
||||||
setImageSrc(picture);
|
|
||||||
};
|
|
||||||
img.src = picture;
|
|
||||||
}
|
|
||||||
}, [picture]);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
className={`flex flex-col justify-center content-center mx-12 items-center w-64 rounded-lg`}
|
className={`flex flex-col justify-center content-center mx-12 items-center w-64 rounded-lg`}
|
||||||
>
|
>
|
||||||
<img
|
<img
|
||||||
className="w-26 h-auto sm:h-64 object-cover rounded-3xl cursor-pointer"
|
className="w-26 h-auto sm:h-64 object-cover rounded-3xl cursor-pointer"
|
||||||
src={imageSrc}
|
src={picture}
|
||||||
alt={`Picture of ${name}`}
|
alt={`Picture of ${name}`}
|
||||||
onClick={handleImageClick}
|
onClick={handleImageClick}
|
||||||
loading="eager"
|
|
||||||
/>
|
/>
|
||||||
<div className="p-4">
|
<div className="p-4">
|
||||||
<h3 className="text-lg font-bold text-center">{name}</h3>
|
<h3 className="text-lg font-bold text-center">{name}</h3>
|
||||||
|
|
|
@ -2,11 +2,6 @@ import React, { useState } from "react";
|
||||||
import OfficerCard from "./OfficerCard.jsx";
|
import OfficerCard from "./OfficerCard.jsx";
|
||||||
import { AnimatePresence } from "framer-motion";
|
import { AnimatePresence } from "framer-motion";
|
||||||
|
|
||||||
const getImageWithFallback = (imagePath, useSpecialImage) => {
|
|
||||||
if (useSpecialImage) return "/officers/zarif.jpg";
|
|
||||||
return imagePath;
|
|
||||||
};
|
|
||||||
|
|
||||||
const OfficerTabs = ({ officers }) => {
|
const OfficerTabs = ({ officers }) => {
|
||||||
const [selectedType, setSelectedType] = useState("All");
|
const [selectedType, setSelectedType] = useState("All");
|
||||||
const [mustahsinClickCount, setMustahsinClickCount] = useState(0);
|
const [mustahsinClickCount, setMustahsinClickCount] = useState(0);
|
||||||
|
@ -59,10 +54,11 @@ const OfficerTabs = ({ officers }) => {
|
||||||
<OfficerCard
|
<OfficerCard
|
||||||
key={officer.email}
|
key={officer.email}
|
||||||
{...officer}
|
{...officer}
|
||||||
picture={getImageWithFallback(
|
picture={
|
||||||
officer.picture,
|
|
||||||
useMustahsinImage
|
useMustahsinImage
|
||||||
)}
|
? "/officers/mustahsin.jpg"
|
||||||
|
: officer.picture
|
||||||
|
}
|
||||||
onMustahsinClicked={handleMustahsinClicked}
|
onMustahsinClicked={handleMustahsinClicked}
|
||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
|
|
|
@ -15,10 +15,6 @@
|
||||||
"name": "COMMITTEES",
|
"name": "COMMITTEES",
|
||||||
"url": "/committees"
|
"url": "/committees"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "LINKTREE",
|
|
||||||
"url": "https://linktr.ee/ieeeucsd"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "CONTACT US",
|
"name": "CONTACT US",
|
||||||
"url": "/contact"
|
"url": "/contact"
|
||||||
|
|
|
@ -1,220 +1,239 @@
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"name": "Mustahsin Zarif",
|
"name": "Tasnia Jamal",
|
||||||
"position": "Chair",
|
"position": "President",
|
||||||
"picture": "/officers/zarif.jpg",
|
"picture": "/officers/tasnia.jpeg",
|
||||||
"email": "mmzarif@ucsd.edu",
|
"email": "tjamal@ieee.org",
|
||||||
"type": ["Executives"]
|
"type": ["Executives"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Stephanie Xu",
|
"name": "Brigette Hacia",
|
||||||
"position": "Vice Chair Internal",
|
"position": "Vice Chair Internal",
|
||||||
"picture": "/officers/steph.jpg",
|
"picture": "/officers/brigette.jpg",
|
||||||
"email": "sxxu@ucsd.edu",
|
"email": "bhacia@ucsd.edu",
|
||||||
"type": ["Executives", "Internal"]
|
"type": ["Executives", "Internal"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Charles Nguyen",
|
"name": "Jason Liang",
|
||||||
"position": "Webmaster",
|
|
||||||
"picture": "/officers/charles.jpg",
|
|
||||||
"email": "cmn010@ucsd.edu",
|
|
||||||
"type": ["Internal"]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Shipra Gudekar",
|
|
||||||
"position": "Vice Chair Events",
|
"position": "Vice Chair Events",
|
||||||
"picture": "/officers/shipra.jpg",
|
"picture": "/officers/jason.jpg",
|
||||||
"email": "sgudekar@ucsd.edu",
|
"email": "jsliang@ucsd.edu",
|
||||||
"type": ["Executives", "Events"]
|
"type": ["Executives", "Events"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Rohil Kadekar",
|
"name": "Yash Puneet",
|
||||||
"position": "Vice Chair Projects",
|
"position": "Vice Chair Projects",
|
||||||
"picture": "/officers/rohil.jpg",
|
"picture": "/officers/yash.jpg",
|
||||||
"email": "rkadekar@ucsd.edu",
|
"email": "ypuneet@ucsd.edu",
|
||||||
"type": ["Executives", "Projects"]
|
"type": ["Executives", "Projects"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Lisa Liu",
|
"name": "Matthew Yik",
|
||||||
"position": "Vice Chair Finance",
|
"position": "Vice Chair Finance",
|
||||||
"picture": "/officers/lisa.jpg",
|
"picture": "/officers/matthewyik.jpg",
|
||||||
"email": "lil043@ucsd.edu",
|
"email": "myik@ucsd.edu",
|
||||||
"type": ["Executives"]
|
"type": ["Executives"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Erik Duarte",
|
"name": "Georolyn Ngo",
|
||||||
"position": "Events Coordinator",
|
"position": "Events Coordinator",
|
||||||
"picture": "/officers/erik.jpg",
|
"picture": "/officers/temp.png",
|
||||||
"email": "Erduarte@ucsd.edu",
|
"email": "ngngo@ucsd.edu",
|
||||||
"type": ["Executives", "Events"]
|
"type": ["Executives", "Events"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Sin Yin Yang",
|
"name": "Sukanya Krishna",
|
||||||
"position": "Events Coordinator",
|
"position": "Events Coordinator",
|
||||||
"picture": "/officers/sinyin.jpg",
|
"picture": "/officers/temp.png",
|
||||||
"email": "siy015@ucsd.edu",
|
"email": "sskrishn@ucsd.edu",
|
||||||
"type": ["Executives", "Events"]
|
"type": ["Executives", "Events"]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "Daniel Chen",
|
||||||
|
"position": "Vice Chair External",
|
||||||
|
"picture": "/officers/daniel.jpg",
|
||||||
|
"email": "dychen@ucsd.edu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Thanh Nguyen",
|
||||||
|
"position": "Project Space Chair",
|
||||||
|
"picture": "/officers/derek.jpg",
|
||||||
|
"email": "tdn003@ucsd.edu",
|
||||||
|
"type": ["Projects"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Mustahsin Zarif",
|
||||||
|
"position": "Robocup Soccer Chair",
|
||||||
|
"picture": "/officers/mustahsin.jpg",
|
||||||
|
"email": "mmzarif@ucsd.edu",
|
||||||
|
"type": ["Projects"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Rohil Kadekar",
|
||||||
|
"position": "Robocup Soccer Chair",
|
||||||
|
"picture": "/officers/temp.png",
|
||||||
|
"email": "rkadekar@ucsd.edu",
|
||||||
|
"type": ["Projects"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Francisco Gutierrez",
|
||||||
|
"position": "Supercomputing Chair",
|
||||||
|
"picture": "/officers/temp.png",
|
||||||
|
"email": "ffgutierrez@ucsd.edu",
|
||||||
|
"type": ["Projects"]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "Rana Singh",
|
"name": "Rana Singh",
|
||||||
"position": "Vice Chair External",
|
"position": "Quarterly Projects Chair",
|
||||||
"picture": "/officers/rana.jpg",
|
"picture": "/officers/temp.png",
|
||||||
"email": "ras010@ucsd.edu",
|
"email": "ras010@ucsd.edu",
|
||||||
"type": ["Executives"]
|
"type": ["Projects"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Joshua Lapidario",
|
||||||
|
"position": "Quarterly Projects Chair",
|
||||||
|
"picture": "/officers/temp.png",
|
||||||
|
"email": "jlapidar@ucsd.edu",
|
||||||
|
"type": ["Projects"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Sankalp Kaushik",
|
||||||
|
"position": "Professional Chair",
|
||||||
|
"picture": "/officers/sankalp.jpg",
|
||||||
|
"email": "sskaushi@ucsd.edu",
|
||||||
|
"type": ["Events"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Rafaella Gomes",
|
"name": "Rafaella Gomes",
|
||||||
"position": "Project Space Chair",
|
"position": "Professional Chair",
|
||||||
"picture": "/officers/rafaella.jpg",
|
"picture": "/officers/rafaella.jpg",
|
||||||
"email": "ragomes@ucsd.edu",
|
"email": "ragomes@ucsd.edu",
|
||||||
"type": ["Projects"]
|
"type": ["Events"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Terri Tai",
|
"name": "Girish Krishnan",
|
||||||
"position": "Robocup Soccer Chair",
|
"position": "Technical Chair",
|
||||||
"picture": "/officers/terri.jpg",
|
"picture": "/officers/temp.png",
|
||||||
"email": "y2tai@ucsd.edu",
|
"email": "gikrishnan@ucsd.edu",
|
||||||
"type": ["Projects"]
|
"type": ["Events"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Raymond Rada",
|
"name": "Shaun Garcia",
|
||||||
"position": "Robocup Soccer Chair",
|
"position": "Technical Chair",
|
||||||
"picture": "/officers/raymond.jpg",
|
"picture": "/officers/shaun.jpg",
|
||||||
"email": "rrada@ucsd.edu",
|
"email": "scgarcia@ucsd.edu",
|
||||||
"type": ["Projects"]
|
"type": ["Events"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Philip Pincencia",
|
"name": "Devanshi Jain",
|
||||||
"position": "Signal Processing Chair",
|
"position": "Technical Chair",
|
||||||
"picture": "/officers/philip.jpg",
|
"picture": "/officers/devanshi.jpg",
|
||||||
"email": "ppincencia@ucsd.edu",
|
"email": "djain@ucsd.edu",
|
||||||
"type": ["Projects"]
|
"type": ["Events"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Ritoban Roy-Chowdhury",
|
"name": "Kaitlin Calimbahin",
|
||||||
"position": "Supercomputing Chair",
|
"position": "Technical Chair",
|
||||||
"picture": "/officers/ritoban.jpg",
|
"picture": "/officers/kaitlin.jpg",
|
||||||
"email": "rroychowdhury@ucsd.edu",
|
"email": "kcalimbahin@ucsd.edu",
|
||||||
"type": ["Projects"]
|
"type": ["Events"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Akhil Ram Shankar",
|
"name": "Joshua Choi",
|
||||||
"position": "Quarterly Projects Chair",
|
"position": "Outreach Chair",
|
||||||
"picture": "/officers/akhil.jpg",
|
"picture": "/officers/joshua.jpg",
|
||||||
"email": "aramshankar@ucsd.edu",
|
"email": "jmc008@ucsd.edu",
|
||||||
"type": ["Projects"]
|
"type": ["Events"]
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Jonathan Zhou",
|
|
||||||
"position": "Quarterly Projects Chair",
|
|
||||||
"picture": "/officers/jonathan.jpg",
|
|
||||||
"email": "jtzhou@ucsd.edu",
|
|
||||||
"type": ["Projects"]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Ashlee Young",
|
"name": "Ashlee Young",
|
||||||
"position": "Professional Chair",
|
"position": "Outreach Chair",
|
||||||
"picture": "/officers/ashlee.jpg",
|
"picture": "/officers/temp.png",
|
||||||
"email": "asy001@ucsd.edu",
|
"email": "asy001@ucsd.edu",
|
||||||
"type": ["Events"]
|
"type": ["Events"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Allie Dinh",
|
"name": "Marc Reta",
|
||||||
"position": "Professional Chair",
|
|
||||||
"picture": "/officers/allie.jpg",
|
|
||||||
"email": "ald012@ucsd.edu",
|
|
||||||
"type": ["Events"]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Fahad Alkhazam",
|
|
||||||
"position": "Technical Chair",
|
|
||||||
"picture": "/officers/fahad.jpg",
|
|
||||||
"email": "falkhazam@ucsd.edu",
|
|
||||||
"type": ["Events"]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Pranav Mehta",
|
|
||||||
"position": "Technical Chair",
|
|
||||||
"picture": "/officers/pranav.jpg",
|
|
||||||
"email": "p3mehta@ucsd.edu",
|
|
||||||
"type": ["Events"]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Ridhi Srikanth",
|
|
||||||
"position": "Technical Chair",
|
|
||||||
"picture": "/officers/ridhi.jpg",
|
|
||||||
"email": "rsrikanth@ucsd.edu",
|
|
||||||
"type": ["Events"]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Dihan Lin",
|
|
||||||
"position": "Outreach Chair",
|
|
||||||
"picture": "/officers/dihan.jpg",
|
|
||||||
"email": "dil009@ucsd.edu",
|
|
||||||
"type": ["Events"]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Anika Agarwal",
|
|
||||||
"position": "Outreach Chair",
|
|
||||||
"picture": "/officers/anika.jpg",
|
|
||||||
"email": "ana012@ucsd.edu",
|
|
||||||
"type": ["Events"]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Anupama Nambiar",
|
|
||||||
"position": "Social Chair",
|
"position": "Social Chair",
|
||||||
"picture": "/officers/anu.jpg",
|
"picture": "/officers/temp.png",
|
||||||
"email": "annambiar@ucsd.edu",
|
"email": "mreta@ucsd.edu",
|
||||||
"type": ["Events"]
|
"type": ["Events"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Dhruv Roy Choudhary",
|
"name": "Shipra Gudekar",
|
||||||
"position": "Social Chair",
|
"position": "Social Chair",
|
||||||
"picture": "/officers/dhruv.jpg",
|
"picture": "/officers/shipra.jpg",
|
||||||
"email": "dchoudhary@ucsd.edu",
|
"email": "sgudekar@ucsd.edu",
|
||||||
"type": ["Events"]
|
"type": ["Events"]
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"name": "Andy Smithwick",
|
"name": "Lisa Liu",
|
||||||
"position": "Webmaster",
|
"position": "Social Chair",
|
||||||
"picture": "/officers/andy.jpg",
|
"picture": "/officers/temp.png",
|
||||||
"email": "asmithwick@ucsd.edu",
|
"email": "lil043@ucsd.edu",
|
||||||
|
"type": ["Events"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Stephanie Xu",
|
||||||
|
"position": "Creative Director",
|
||||||
|
"picture": "/officers/stephanie.jpg",
|
||||||
|
"email": "sxxu@ucsd.edu",
|
||||||
"type": ["Internal"]
|
"type": ["Internal"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Shing Hung",
|
"name": "Jayendra Mangal",
|
||||||
"position": "Webmaster",
|
"position": "Webmaster",
|
||||||
"picture": "/officers/shing.jpg",
|
"picture": "/officers/jayendra.jpg",
|
||||||
"email": "s1hung@ucsd.edu",
|
"email": "jmangal@ucsd.edu",
|
||||||
|
"type": ["Internal"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Charles Nguyen",
|
||||||
|
"position": "Webmaster",
|
||||||
|
"picture": "/officers/temp.png",
|
||||||
|
"email": "cmn010@ucsd.edu",
|
||||||
"type": ["Internal"]
|
"type": ["Internal"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Stella Ji",
|
"name": "Stella Ji",
|
||||||
"position": "Marketing Chair",
|
"position": "Webmaster",
|
||||||
"picture": "/officers/stella.jpg",
|
"picture": "/officers/stella.jpeg",
|
||||||
"email": "seji@ucsd.edu",
|
"email": "seji@ucsd.edu",
|
||||||
"type": ["Internal"]
|
"type": ["Internal"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Lauren Vo",
|
"name": "Kevin Chang",
|
||||||
"position": "Marketing Chair",
|
"position": "Marketing Chair",
|
||||||
"picture": "/officers/lauren.jpg",
|
"picture": "/officers/kevin.jpg",
|
||||||
"email": "lavo@ucsd.edu",
|
"email": "kjchang@ucsd.edu",
|
||||||
"type": ["Internal"]
|
"type": ["Internal"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Wan-Rong (Emma) Leung",
|
"name": "Vuong Bui",
|
||||||
"position": "Design Chair",
|
"position": "Marketing Chair",
|
||||||
"picture": "/officers/emma.jpg",
|
"picture": "/officers/vuong.jpg",
|
||||||
"email": "waleung@ucsd.edu",
|
"email": "v2bui@ucsd.edu",
|
||||||
"type": ["Internal"]
|
"type": ["Internal"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Christine Uy",
|
"name": "Joyce Zhou",
|
||||||
"position": "Design Chair",
|
"position": "Design Chair",
|
||||||
"picture": "/officers/christine.jpg",
|
"picture": "/officers/joyce.jpg",
|
||||||
"email": "c1uy@ucsd.edu",
|
"email": "jiz152@ucsd.edu",
|
||||||
"type": ["Internal"]
|
"type": ["Internal"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Kate Zhou",
|
||||||
|
"position": "Design Chair",
|
||||||
|
"picture": "/officers/kate.jpg",
|
||||||
|
"email": "yuz235@ucsd.edu",
|
||||||
|
"type": ["Internal"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Khai Vu",
|
||||||
|
"position": "Supercomputing Chair",
|
||||||
|
"picture": "/officers/khai.jpg",
|
||||||
|
"email": "k6vu@ucsd.edu",
|
||||||
|
"type": ["Projects"]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
@ -3,6 +3,7 @@ import Navbar from "../components/Navbar.astro";
|
||||||
import Footer from "../components/Footer.astro";
|
import Footer from "../components/Footer.astro";
|
||||||
import "../styles/hamburgers.scss";
|
import "../styles/hamburgers.scss";
|
||||||
import "../styles/global.scss";
|
import "../styles/global.scss";
|
||||||
|
import "iconify-icon";
|
||||||
import "@fontsource-variable/epilogue";
|
import "@fontsource-variable/epilogue";
|
||||||
const { title, description, keywords, url, image } = Astro.props;
|
const { title, description, keywords, url, image } = Astro.props;
|
||||||
---
|
---
|
||||||
|
@ -11,7 +12,12 @@ const { title, description, keywords, url, image } = Astro.props;
|
||||||
<head>
|
<head>
|
||||||
<script src="https://identity.netlify.com/v1/netlify-identity-widget.js"
|
<script src="https://identity.netlify.com/v1/netlify-identity-widget.js"
|
||||||
></script>
|
></script>
|
||||||
|
<script
|
||||||
|
src="https://cdn.jsdelivr.net/npm/iconify-icon@2.0.0/dist/iconify-icon.min.js"
|
||||||
|
></script>
|
||||||
|
<script
|
||||||
|
src="https://code.iconify.design/iconify-icon/1.0.8/iconify-icon.min.js"
|
||||||
|
></script>
|
||||||
<script is:inline src="https://apis.google.com/js/api.js"></script>
|
<script is:inline src="https://apis.google.com/js/api.js"></script>
|
||||||
<script
|
<script
|
||||||
is:inline
|
is:inline
|
||||||
|
@ -20,9 +26,6 @@ const { title, description, keywords, url, image } = Astro.props;
|
||||||
is:inline
|
is:inline
|
||||||
src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"
|
src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"
|
||||||
></script>
|
></script>
|
||||||
<script
|
|
||||||
src="https://code.iconify.design/iconify-icon/1.0.8/iconify-icon.min.js"
|
|
||||||
></script>
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="">
|
<body class="">
|
||||||
|
|
|
@ -3,7 +3,7 @@ import Layout from "../layouts/Layout.astro";
|
||||||
import OfficerCard from "../components/react/OfficerCard.jsx";
|
import OfficerCard from "../components/react/OfficerCard.jsx";
|
||||||
import Officers from "../data/officers.json";
|
import Officers from "../data/officers.json";
|
||||||
import OfficerTabs from "../components/react/OfficerTabs.jsx";
|
import OfficerTabs from "../components/react/OfficerTabs.jsx";
|
||||||
import { Icon } from "astro-icon/components";
|
import "iconify-icon";
|
||||||
---
|
---
|
||||||
|
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
|
@ -22,26 +22,26 @@ import { Icon } from "astro-icon/components";
|
||||||
>
|
>
|
||||||
Join the 2nd largest IEEE student branch in the US!
|
Join the 2nd largest IEEE student branch in the US!
|
||||||
</div>
|
</div>
|
||||||
<div class="scale-[600%] mt-10 space-x-2 flex flex-row">
|
<div class="scale-[600%] mt-10 space-x-2">
|
||||||
<a href="https://discord.gg/XxfjqZSjca">
|
<a href="https://discord.gg/XxfjqZSjca">
|
||||||
<Icon
|
<iconify-icon
|
||||||
name="ic:baseline-discord"
|
icon="ic:baseline-discord"
|
||||||
class="duration-500 transition hover:scale-125 scale-100 text-white hover:text-[#5562ea]"
|
class="duration-500 transition hover:scale-125 scale-100 text-white hover:text-[#5562ea]"
|
||||||
/>
|
></iconify-icon>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a href="https://www.facebook.com/ieeeucsd">
|
<a href="https://www.facebook.com/ieeeucsd">
|
||||||
<Icon
|
<iconify-icon
|
||||||
name="ic:baseline-facebook"
|
icon="ic:baseline-facebook"
|
||||||
class="duration-500 transition hover:scale-125 scale-100 text-white hover:text-[#0863f7]"
|
class="duration-500 transition hover:scale-125 scale-100 text-white hover:text-[#0863f7]"
|
||||||
/>
|
></iconify-icon>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a href="https://www.instagram.com/ieee.ucsd">
|
<a href="https://www.instagram.com/ieee.ucsd">
|
||||||
<Icon
|
<iconify-icon
|
||||||
name="mdi:instagram"
|
icon="mdi:instagram"
|
||||||
class="duration-500 transition hover:scale-125 scale-100 text-white hover:text-[#ff68cd]"
|
class="duration-500 transition hover:scale-125 scale-100 text-white hover:text-[#ff68cd]"
|
||||||
/>
|
></iconify-icon>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -65,48 +65,6 @@ import { Icon } from "astro-icon/components";
|
||||||
ways to get involved!
|
ways to get involved!
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
|
||||||
class="bg-ieee h-[35em] my-auto rounded-t-[10%] rounded-b-[10%] flex flex-col items-center justify-center bg-blend-overlay bg-no-repeat bg-cover align-center bg-center"
|
|
||||||
style="background-image: url('/backgrounds/robocup.jpg');"
|
|
||||||
>
|
|
||||||
<!-- BLUE BG -->
|
|
||||||
<div
|
|
||||||
class="flex flex-col items-center justify-center text-center"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
class="text-[3.2em] text-white font-bold mb-4 w-[11em]"
|
|
||||||
>
|
|
||||||
Watch our trailer(s)!
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- <div class="scale-[400%] mt-10 space-x-2">
|
|
||||||
<a href="https://www.instagram.com/ieee.ucsd">
|
|
||||||
<iconify-icon
|
|
||||||
icon="mdi:calendar"
|
|
||||||
class="duration-500 transition hover:scale-125 scale-100 text-white hover:text-gray-500"
|
|
||||||
></iconify-icon>
|
|
||||||
</a>
|
|
||||||
</div> -->
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
class="bg-white h-[60em] lg:h-[60em] flex justify-center items-center"
|
|
||||||
>
|
|
||||||
<div class="flex flex-wrap justify-center space-y-20">
|
|
||||||
<div
|
|
||||||
class="flex flex-col justify-center items-center w-full px-4 lg:px-8"
|
|
||||||
>
|
|
||||||
<div class="text-[3.2em] text-ieee font-bold mb-4">
|
|
||||||
QP Trailer
|
|
||||||
</div>
|
|
||||||
<iframe
|
|
||||||
src="https://drive.google.com/file/d/1OmIFFEqRWpzVRQr5I5teUYRlA66noqFB/preview"
|
|
||||||
width="860"
|
|
||||||
height="620"
|
|
||||||
allow="autoplay"></iframe>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- BLUE BG -->
|
<!-- BLUE BG -->
|
||||||
<div
|
<div
|
||||||
class="bg-ieee h-[35em] my-auto rounded-t-[10%] rounded-b-[10%] flex flex-col items-center justify-center bg-blend-overlay bg-no-repeat bg-cover align-center bg-center"
|
class="bg-ieee h-[35em] my-auto rounded-t-[10%] rounded-b-[10%] flex flex-col items-center justify-center bg-blend-overlay bg-no-repeat bg-cover align-center bg-center"
|
||||||
|
@ -156,13 +114,13 @@ import { Icon } from "astro-icon/components";
|
||||||
class="flex flex-col items-center justify-center w-full lg:w-1/2 p-4"
|
class="flex flex-col items-center justify-center w-full lg:w-1/2 p-4"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="text-center text-ieee text-[1.8em] font-bold"
|
class="text-center text-ieee mb-12 text-[1.8em] font-bold"
|
||||||
>
|
>
|
||||||
Each officer has their own OAH, which can be
|
Each officer has their own OAH, which can be
|
||||||
seen here:
|
seen here:
|
||||||
</div>
|
</div>
|
||||||
<iframe
|
<iframe
|
||||||
src="https://calendar.google.com/calendar/embed?showTitle=0&showPrint=0&showTabs=0&showCalendars=0&mode=MONTH&height=600&wkst=1&bgcolor=%23FFFFFF&src=c_62493071bab19c7c60d103460604dc7b3b569ffc1e58a42617978f626dff02ac%40group.calendar.google.com&color=%232952A3&ctz=America%2FLos_Angeles"
|
src="https://calendar.google.com/calendar/embed?src=c_5c08a366ecd44f440431cb647cf9b390a2f62473b4d19c8c355b32a411225067%40group.calendar.google.com&ctz=America%2FLos_Angeles"
|
||||||
style="border: 0"
|
style="border: 0"
|
||||||
class="w-full h-[450px] max-w-4xl"
|
class="w-full h-[450px] max-w-4xl"
|
||||||
loading="lazy"></iframe>
|
loading="lazy"></iframe>
|
||||||
|
|