Merge remote-tracking branch 'origin/main' into ray-dev

This commit is contained in:
Raymond Wang 2022-11-11 11:01:48 -08:00
commit 6a236a5a46
16 changed files with 2051 additions and 2050 deletions

View file

@ -1,4 +1,4 @@
name: validate name: validation-testing
on: [push, pull_request] on: [push, pull_request]

View file

@ -12,7 +12,7 @@ Please create a new branch for development (i.e. `[NAME]-dev`). Pushing directly
To build the site, run `npm run build`. To build the site, run `npm run build`.
To view the site on your local network, run `npm build/index.js`. View the site at [localhost:9000](http://localhost:9000). To view the site on your local network, run `npm run serve`. View the site at [localhost:9000](http://localhost:9000).
### Images ### Images

3816
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,5 @@
{ {
"name": "ieee-website", "name": "ieee-uscd-website",
"version": "1.0.0", "version": "1.0.0",
"description": "Website for IEEE of UC San Diego", "description": "Website for IEEE of UC San Diego",
"main": "build/index.js", "main": "build/index.js",
@ -17,8 +17,8 @@
"dependencies": { "dependencies": {
"@types/express": "^4.17.14", "@types/express": "^4.17.14",
"@types/mongoose": "^5.11.97", "@types/mongoose": "^5.11.97",
"@types/node": "^18.11.5", "@types/node": "^18.11.9",
"@types/react-dom": "^18.0.7", "@types/react-dom": "^18.0.8",
"@types/ws": "^8.5.3", "@types/ws": "^8.5.3",
"express": "^4.18.2", "express": "^4.18.2",
"mongoose": "^6.7.0", "mongoose": "^6.7.0",
@ -29,17 +29,17 @@
"@babel/core": "^7.19.6", "@babel/core": "^7.19.6",
"@babel/preset-env": "^7.19.4", "@babel/preset-env": "^7.19.4",
"@babel/preset-react": "^7.14.5", "@babel/preset-react": "^7.14.5",
"@types/react": "^18.0.23", "@types/react": "^18.0.25",
"@typescript-eslint/eslint-plugin": "^5.41.0", "@typescript-eslint/eslint-plugin": "^5.41.0",
"@typescript-eslint/parser": "^5.41.0", "@typescript-eslint/parser": "^5.41.0",
"babel-loader": "^8.2.3", "babel-loader": "^9.1.0",
"copy-webpack-plugin": "^11.0.0", "copy-webpack-plugin": "^11.0.0",
"css-loader": "^6.7.1", "css-loader": "^6.7.1",
"eslint": "^8.26.0", "eslint": "^8.26.0",
"eslint-config-prettier": "^8.5.0", "eslint-config-prettier": "^8.5.0",
"eslint-config-standard-with-typescript": "^23.0.0", "eslint-config-standard-with-typescript": "^23.0.0",
"eslint-plugin-import": "^2.26.0", "eslint-plugin-import": "^2.26.0",
"eslint-plugin-n": "^15.3.0", "eslint-plugin-n": "^15.4.0",
"eslint-plugin-prettier": "^4.2.1", "eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-promise": "^6.1.1", "eslint-plugin-promise": "^6.1.1",
"eslint-plugin-react": "^7.31.10", "eslint-plugin-react": "^7.31.10",

View file

@ -179,7 +179,7 @@ a:hover {
background-color: var(--main); background-color: var(--main);
background-blend-mode: overlay; background-blend-mode: overlay;
background-image: url("../img/backgrounds/ps.webp"); background-image: url("../img/backgrounds/ps.webp");
height: 40em; height: 43em;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
@ -192,17 +192,33 @@ a:hover {
color: var(--accent); color: var(--accent);
} }
.project-space img {
height: 3em;
}
.ps-links {
margin-bottom: 1em;
margin-top: 1em;
display: flex;
column-gap: 4em;
text-align: center;
}
.ps-links span {
display: block;
margin-top: 0.5em;
}
.ps-links img {
fill: color(--accent);
}
.ps-title { .ps-title {
font-size: 3em; font-size: 3em;
color: white; color: white;
margin-bottom: 1em; margin-bottom: 1em;
} }
.visit-us {
font-size: 2em;
margin-bottom: 2em;
}
.ex-link { .ex-link {
color: var(--accent); color: var(--accent);
font-size: 2em; font-size: 2em;
@ -216,7 +232,7 @@ a:hover {
.cards { .cards {
display: flex; display: flex;
justify-content: space-around; justify-content: center;
flex-wrap: wrap; flex-wrap: wrap;
} }
@ -232,16 +248,83 @@ a:hover {
margin: 1em; margin: 1em;
} }
.involve-img {
display: inline-block;
margin: 20px;
overflow: hidden;
border-radius: 0.2em;
}
.involve-card img {
display: block;
transition: transform 0.4s;
width: 20em;
border-radius: 0.2em;
}
.involve-card:hover img {
transform: scale(1.1);
transform-origin: 50% 50%;
}
.involve-title { .involve-title {
font-size: 3em; font-size: 3em;
color: var(--main); color: var(--main);
margin-bottom: 0.5em; margin-bottom: 0.5em;
} }
.involve-card > img { .committees {
width: 20em; border-radius: 50% 50% 0 0 / 4rem;
margin-bottom: 1em; transform: translateY(-4rem);
}
.committee-card {
padding: 1.75em 3em;
border: var(--main) solid 0.37em;
border-radius: 1.5em;
color: var(--secondary);
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
margin: 1em;
background-color: var(--main);
background-blend-mode: multiply;
background-position: center;
background-size: cover;
width: 30em;
}
.committee-img {
display: inline-block;
margin: 20px;
overflow: hidden;
border-radius: 0.2em; border-radius: 0.2em;
width: 10;
}
.committee-card img {
display: block;
transition: transform 0.4s;
width: 20em;
border-radius: 0.2em;
}
.committee-card:hover img {
transform: scale(1.1);
transform-origin: 50% 50%;
}
.committee-title {
font-size: 3em;
color: var(--secondary);
margin-bottom: 0.5em;
text-align: center;
}
.committee-description {
font-size: 1.25em;
font-weight: normal;
} }
.links { .links {

View file

@ -0,0 +1,3 @@
<svg width="75" height="59" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
<path d="M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm116 204c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm128 128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm128 128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40z" fill="#ffcd00"/>
</svg>

After

Width:  |  Height:  |  Size: 1,020 B

View file

@ -0,0 +1,3 @@
<svg width="75" height="59" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
<path d="M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm116 204c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm128 128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm128 128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1,018 B

View file

@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" version="1.0" width="50" height="50" viewBox="0 0 686.000000 980.000000" preserveAspectRatio="xMidYMid meet">
<g transform="translate(0.000000,980.000000) scale(0.100000,-0.100000)" fill="#ffcd00" stroke="none">
<path d="M3165 9789 c-1198 -112 -2212 -925 -2580 -2069 -229 -712 -174 -1510 149 -2185 57 -119 236 -412 830 -1363 416 -666 759 -1218 762 -1227 4 -8 1 -15 -5 -15 -6 0 -77 -9 -159 -21 -666 -93 -1240 -295 -1645 -579 -112 -78 -298 -261 -356 -350 -108 -167 -151 -304 -151 -490 0 -147 24 -252 89 -385 274 -560 1193 -947 2536 -1069 1128 -103 2353 22 3135 321 577 219 923 509 1042 873 39 121 50 309 25 432 -86 412 -466 750 -1109 984 -210 76 -564 172 -579 157 -4 -5 -123 -192 -263 -418 -176 -281 -252 -411 -244 -416 7 -3 54 -14 103 -23 417 -79 911 -259 1108 -404 l61 -45 -41 -36 c-127 -113 -434 -244 -785 -336 -789 -206 -1864 -248 -2783 -109 -563 85 -1081 258 -1306 436 l-53 41 40 35 c158 137 597 304 1054 401 227 48 734 119 765 107 6 -2 148 -227 315 -500 167 -273 306 -496 309 -496 3 0 597 981 1319 2180 838 1391 1337 2229 1378 2314 100 209 186 466 233 701 76 376 74 793 -4 1181 -90 445 -309 908 -602 1273 -106 132 -346 369 -473 467 -445 344 -917 544 -1461 619 -138 19 -516 27 -654 14z m567 -1402 c473 -124 811 -463 935 -935 34 -130 43 -372 19 -509 -94 -539 -517 -962 -1049 -1048 -319 -52 -646 21 -922 204 -93 61 -248 212 -317 308 -276 384 -315 890 -103 1316 121 242 343 459 590 577 192 91 338 121 575 116 148 -3 190 -7 272 -29z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" version="1.0" width="50" height="50" viewBox="0 0 686.000000 980.000000" preserveAspectRatio="xMidYMid meet">
<g transform="translate(0.000000,980.000000) scale(0.100000,-0.100000)" fill="white" stroke="none">
<path d="M3165 9789 c-1198 -112 -2212 -925 -2580 -2069 -229 -712 -174 -1510 149 -2185 57 -119 236 -412 830 -1363 416 -666 759 -1218 762 -1227 4 -8 1 -15 -5 -15 -6 0 -77 -9 -159 -21 -666 -93 -1240 -295 -1645 -579 -112 -78 -298 -261 -356 -350 -108 -167 -151 -304 -151 -490 0 -147 24 -252 89 -385 274 -560 1193 -947 2536 -1069 1128 -103 2353 22 3135 321 577 219 923 509 1042 873 39 121 50 309 25 432 -86 412 -466 750 -1109 984 -210 76 -564 172 -579 157 -4 -5 -123 -192 -263 -418 -176 -281 -252 -411 -244 -416 7 -3 54 -14 103 -23 417 -79 911 -259 1108 -404 l61 -45 -41 -36 c-127 -113 -434 -244 -785 -336 -789 -206 -1864 -248 -2783 -109 -563 85 -1081 258 -1306 436 l-53 41 40 35 c158 137 597 304 1054 401 227 48 734 119 765 107 6 -2 148 -227 315 -500 167 -273 306 -496 309 -496 3 0 597 981 1319 2180 838 1391 1337 2229 1378 2314 100 209 186 466 233 701 76 376 74 793 -4 1181 -90 445 -309 908 -602 1273 -106 132 -346 369 -473 467 -445 344 -917 544 -1461 619 -138 19 -516 27 -654 14z m567 -1402 c473 -124 811 -463 935 -935 34 -130 43 -372 19 -509 -94 -539 -517 -962 -1049 -1048 -319 -52 -646 21 -922 204 -93 61 -248 212 -317 308 -276 384 -315 890 -103 1316 121 242 343 459 590 577 192 91 338 121 575 116 148 -3 190 -7 272 -29z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -4,10 +4,10 @@ import TopBar from "./components/TopBar";
import { ACTIVE_PAGES, SOCIALS, EMAIL, OFFICERS } from "./Config"; import { ACTIVE_PAGES, SOCIALS, EMAIL, OFFICERS } from "./Config";
import Splash from "./components/Splash"; import Splash from "./components/Splash";
import DefaultSection from "./components/DefaultSection"; import DefaultSection from "./components/DefaultSection";
import InvolveBox from "./components/InvolveBox";
import SocialCard from "./components/SocialCard"; import SocialCard from "./components/SocialCard";
import Carousel from "./components/Carousel"; import Carousel from "./components/Carousel";
import Footer from "./components/Footer"; import Footer from "./components/Footer";
import CommitteeBox from "./components/CommitteeBox";
class Main extends React.Component { class Main extends React.Component {
constructor() { constructor() {
@ -27,36 +27,36 @@ class Main extends React.Component {
<DefaultSection <DefaultSection
title="Join us!" title="Join us!"
paragraphs={[ paragraphs={[
"Interested in gaining experience of event planning and development, meeting new friends, and learning more about IEEE? Join one of our committees as an IEEEntern!", "Interested in gaining experience in event planning and development, meeting new friends, and learning more about IEEE? Join one of our committees as an IEEEntern!",
]} ]}
></DefaultSection> ></DefaultSection>
<DefaultSection className={"our-comms"} title="Our Committees"> <DefaultSection className={"committees"} title="Our Committees">
<div className="cards"> <div className="cards">
<InvolveBox <CommitteeBox
boxTitle="" boxTitle="Technical Committee"
image="/assets/img/committees/technical.webp" image="/assets/img/committees/technical.webp"
description="Technical Committee" description="The Technical Committee is responsible for maintaining and improving the organization's technical skills program. Through developing, planning, and executing a minimum of six technical events throughout the year, this chair seeks to improve students technical skills. Events can include PCB, soldering, hardware, and software. You can build anything with students!"
></InvolveBox> ></CommitteeBox>
<InvolveBox <CommitteeBox
boxTitle="" boxTitle="Social Committee"
image="/assets/img/committees/social.webp" image="/assets/img/committees/social.webp"
description="Social Committee" description="The Social Committee is in charge of planning and executing social events that create bonding opportunities for officers and our student members. Interested in arranging a hike at Torrey Pines? Sharing some free food and drinks in Warren Mall? Going out for an escape room challenge? There are tons of ideas waiting for you to implement!"
></InvolveBox> ></CommitteeBox>
<InvolveBox <CommitteeBox
boxTitle="" boxTitle="Professional Committee"
image="/assets/img/committees/professional.webp" image="/assets/img/committees/professional.webp"
description="Professional Committee" description="The Professional Committee is responsible for maintaining and improving the organizations professional development program. Through developing, planning, and executing a minimum of six professional events throughout the year, such as, workshops on developing professional skills, company (sponsor) information sessions, tech talks, tours, and the annual ECE day (partnered with the VC External), this committee seeks to improve students professional skills."
></InvolveBox> ></CommitteeBox>
<InvolveBox <CommitteeBox
boxTitle="" boxTitle="PR Committee"
image="/assets/img/committees/pr.webp" image="/assets/img/committees/pr.webp"
description="PR Committee" description="The PR Comittee is responsible for creating and printing flyers, photographs, and other media. They also aid in managing the Branch's social media presence by distributing the news of the Branch's events, projects, and outreach."
></InvolveBox> ></CommitteeBox>
<InvolveBox <CommitteeBox
boxTitle="" boxTitle="Outreach Committee"
image="/assets/img/committees/outreach.webp" image="/assets/img/committees/outreach.webp"
description="Outreach Committee" description="The Outreach Committee is responsible for hosting outreach events that will benefit K-12 students within the STEM fields including the annual Boy Scout STEM Merit Badge Fair, Girls STEM Fair, and Sumobot Robotics Competition. Up for the challenge to explain Ohm's Law to a 10-year-old?"
></InvolveBox> ></CommitteeBox>
</div> </div>
</DefaultSection> </DefaultSection>

View file

@ -0,0 +1,29 @@
import * as React from "react";
import { Component } from "react";
interface CommitteeBoxProps {
boxTitle: string;
image: string;
description: string;
}
export default class CommitteeBox extends Component<CommitteeBoxProps> {
constructor(props: CommitteeBoxProps) {
super(props);
this.state = {};
}
public render() {
return (
<div className="committee-card"
style = {{ backgroundImage: `url(${this.props.image})` }}>
<div className="committee-title">
{this.props.boxTitle}
</div>
<div className="committee-description">
{this.props.description}
</div>
</div>
);
}
}

View file

@ -15,18 +15,18 @@ export default class InvolveBox extends Component<InvolveBoxProps> {
public render() { public render() {
return ( return (
<div className="involve-card"> <a
<a href={"/" + this.props.boxTitle.toLowerCase()}
className="involve-title" className="involve-card"
href={"/" + this.props.boxTitle.toLowerCase()} >
> <div className="involve-title">{this.props.boxTitle}</div>
{this.props.boxTitle} <div className="involve-img">
</a> <img src={this.props.image}></img>
<img src={this.props.image}></img> </div>
<div className="involve-description"> <div className="involve-description">
{this.props.description} {this.props.description}
</div> </div>
</div> </a>
); );
} }
} }

View file

@ -23,21 +23,24 @@ class Main extends React.Component {
backgrounds={["/assets/img/backgrounds/fa21social.webp"]} backgrounds={["/assets/img/backgrounds/fa21social.webp"]}
></Splash> ></Splash>
<DefaultSection title="Events"> <div id="events-cal">
<iframe <DefaultSection title="Events">
src="https://calendar.google.com/calendar/embed?src=666sh64sku5n29qv2a2f4598jc%40group.calendar.google.com&ctz=America%2FLos_Angeles" <iframe
frameBorder="0" src="https://calendar.google.com/calendar/embed?src=666sh64sku5n29qv2a2f4598jc%40group.calendar.google.com&ctz=America%2FLos_Angeles"
scrolling="no" frameBorder="0"
></iframe> scrolling="no"
</DefaultSection> ></iframe>
</DefaultSection>
<DefaultSection title="Open Access Hours"> </div>
<iframe <div id="oa-cal">
src="https://calendar.google.com/calendar/embed?src=c_gr3iim9ae4dv9784qkf8meb40c%40group.calendar.google.com&ctz=America%2FLos_Angeles" <DefaultSection title="Open Access Hours">
frameBorder="0" <iframe
scrolling="no" src="https://calendar.google.com/calendar/embed?src=c_gr3iim9ae4dv9784qkf8meb40c%40group.calendar.google.com&ctz=America%2FLos_Angeles"
></iframe> frameBorder="0"
</DefaultSection> scrolling="no"
></iframe>
</DefaultSection>
</div>
<div id="contact-us"> <div id="contact-us">
<DefaultSection <DefaultSection

View file

@ -45,14 +45,18 @@ class Main extends React.Component {
is an open-access, collaborative space where students is an open-access, collaborative space where students
can do homework or get access to basic electronic tools can do homework or get access to basic electronic tools
such as soldering stations, breadboard components, and such as soldering stations, breadboard components, and
Arduino and Raspberry PI parts! Arduino and Raspberry PI parts! Come visit at EBU1-4710!
</p> </p>
<a <div className="ps-links">
className="visit-us" <a href="/events#oa-cal">
href="https://www.google.com/maps/@32.8817126,-117.2350998,59m/" <img src="/assets/img/calendar_accent.svg"></img>
> <span>Open Hours</span>
Come visit at EBU1-4710! </a>
</a> <a href="https://www.google.com/maps/@32.8817126,-117.2350998,59m/">
<img src="/assets/img/location_accent.svg"></img>
<span>Directions</span>
</a>
</div>
</div> </div>
<DefaultSection <DefaultSection
className={"involved"} className={"involved"}

View file

@ -5,7 +5,8 @@
"module": "commonjs", "module": "commonjs",
"target": "es6", "target": "es6",
"jsx": "react", "jsx": "react",
"esModuleInterop": true "esModuleInterop": true,
"skipLibCheck": true
}, },
"include": ["./src/util"] "include": ["./src/util"]
} }

View file

@ -1,3 +1,6 @@
/**
* Webpack Configuration File
*/
const path = require("path"); const path = require("path");
const CopyPlugin = require("copy-webpack-plugin"); const CopyPlugin = require("copy-webpack-plugin");
const fs = require("fs"); const fs = require("fs");