Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
935 changes: 475 additions & 460 deletions package-lock.json

Large diffs are not rendered by default.

5 changes: 5 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,5 +40,10 @@
"prettier-plugin-organize-imports": "^4.3.0",
"typescript": "^5.9.3",
"typescript-eslint": "^8.58.2"
},
"overrides": {
"deepmerge-ts": "8.0.2",
"sharp": "0.35.4",
"svgo": "4.1.0"
}
}
4 changes: 2 additions & 2 deletions src/assets/images/committees/events/fas-formal.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 0 additions & 3 deletions src/assets/images/events/fall-hacks.jpg

This file was deleted.

3 changes: 0 additions & 3 deletions src/assets/images/events/fall-hacks.png

This file was deleted.

3 changes: 3 additions & 0 deletions src/assets/images/home/events.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
51 changes: 39 additions & 12 deletions src/components/About.astro
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import { Image } from 'astro:assets';
import services from '@assets/images/services.png';
import concernedStudent from '@assets/images/concerned-student.png';
import fallHacks from '@assets/images/events/fall-hacks.png';
import events from '@assets/images/home/events.jpg';
import committees from '@assets/images/home/committees.jpg';
import commonRoom from '@assets/images/home/common-room.png';
import officers from '@assets/images/home/officers.jpg';
Expand All @@ -14,7 +14,7 @@ import type { CardItem } from 'src/types';
const navCards: CardItem[] = [
{
label: 'Events',
img: fallHacks,
img: events,
href: '/events'
},
{
Expand All @@ -41,12 +41,13 @@ const navCards: CardItem[] = [
<span class="heading__top">THE</span>
<span class="heading__bottom">CSSS</span>
</h2>
<section>
<section class="welcome">
<h3>Welcome!</h3>
<p>
The CSSS represents thousands of students at Simon Fraser University. We are a student-run
organization, providing a variety of services and hosting events to enhance the student
experience.
Established in the 1970s, the Computing Science Student Society (CSSS) represents over 3,000
undergraduate students at Simon Fraser University. We are a student-led organization, with
the mission of fostering community, supporting academic growth, and providing assistance
with professional development.
</p>
</section>
</section>
Expand Down Expand Up @@ -86,12 +87,20 @@ const navCards: CardItem[] = [
/>
<div class="services__text">
<h3>Representing you!</h3>
<p>
The Computer Science Student Society is YOUR community to find people who can be your
academic support system. We offer past exams from our Exam Bank, class channels in our
Discord Server, and a network of alumni to help beyond your degree. Join our Discord server
to access our services today!
</p>
<p>As a student society, we offer various avenues of support to the student body.</p>
<ul class="service__list">
<li>
We offer scholarships and help fund trips to events like hackathons and conferences.
</li>
<li>
We regularly host study cafes, maintain a Discord server with channels dedicated to
classes, and offer an Exam Bank full of tests from previous years.
</li>
<li>
We have a large network of CSSS alumni and company contacts which we use to hold
networking events, resume reviews, and company tours.
</li>
</ul>
</div>
</section>
<section class="breakout">
Expand All @@ -111,6 +120,12 @@ const navCards: CardItem[] = [
line-height: var(--line-height-relaxed);
}

.welcome {
p + p {
margin-top: var(--sp-4);
}
}

.heading {
color: var(--clr-accent-red);
font-weight: var(--font-weight-normal);
Expand All @@ -128,6 +143,18 @@ const navCards: CardItem[] = [
}
}

.service__list {
margin-top: var(--sp-2);
display: flex;
flex-direction: column;
gap: var(--sp-2);

li {
list-style: disc;
margin-left: var(--sp-5);
}
}

.membership {
display: grid;
row-gap: var(--content-gap);
Expand Down
29 changes: 21 additions & 8 deletions src/components/committees/CommitteeSection.astro
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,14 @@ interface Props {
img: ImageMetadata;
title: string;
alt: string;
content: string[];
isImgRight?: boolean;
}

const { id, img, title, alt, isImgRight = false } = Astro.props;
const { id, img, title, alt, content, isImgRight = false } = Astro.props;
---

<section id={id} class:list={{ 'section--right': isImgRight }}>
<section class="section" id={id} class:list={{ 'section--right': isImgRight }}>
<Image
class="section__img image-reveal photo"
src={img}
Expand All @@ -24,14 +25,16 @@ const { id, img, title, alt, isImgRight = false } = Astro.props;
/>
<section class="section__content">
<h2>{title}</h2>
<p><slot /></p>
<div class="content">
{content.map(c => <p>{c}</p>)}
</div>
<slot name="footer" />
</section>
</section>

<style>
h2 {
margin-block: var(--sp-4);
.section {
display: grid;
}

.section__title {
Expand All @@ -43,8 +46,13 @@ const { id, img, title, alt, isImgRight = false } = Astro.props;
}

.section__content {
grid-area: content;
padding-inline: var(--sp-4);
display: grid;
grid-template-rows: auto 1fr auto;
row-gap: 1rem;
}

p + p {
margin-top: var(--content-gap);
}

@media (min-width: 900px) {
Expand All @@ -58,10 +66,15 @@ const { id, img, title, alt, isImgRight = false } = Astro.props;
top: 0;
min-width: 10rem;
object-fit: cover;
align-self: center;
}

.section__content {
padding-inline: var(--sp-4);
}

.section__title {
margin: 0 auto var(--sp-4);
padding: 0 auto var(--sp-4);
}

section[id] {
Expand Down
16 changes: 3 additions & 13 deletions src/components/officers/CurrentExecutives.astro
Original file line number Diff line number Diff line change
Expand Up @@ -13,20 +13,10 @@ import treasurer from '@assets/images/execs/treasurer.jpg';
import vp from '@assets/images/execs/vp.jpg';
import { type ImageMetadata } from 'astro';
import { Image } from 'astro:assets';
import type { ExecutiveRole } from 'src/officers';

interface Exec {
role:
| 'president'
| 'vp'
| 'treasurer'
| 'secretary'
| 'doe'
| 'doee'
| 'adoe'
| 'doc'
| 'dor'
| 'sfssrep'
| 'eal';
role: ExecutiveRole;
name: string;
label: string;
img: ImageMetadata;
Expand Down Expand Up @@ -73,7 +63,7 @@ const execs: Exec[] = [
img: adoe
},
{
role: 'sfssrep',
role: 'councilrep',
name: 'Melody Oh',
label: 'SFSS Council Representative',
img: sfssrep
Expand Down
113 changes: 113 additions & 0 deletions src/officers.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
export type ExecutiveRole =
| 'president'
| 'vp'
| 'treasurer'
| 'secretary'
| 'doe'
| 'doee'
| 'adoe'
| 'doc'
| 'dor'
| 'councilrep'
| 'eal'
| 'fyr';

export type NonExecutiveRole = 'sysadmin' | 'webmaster' | 'frosh' | 'techfair';

export type OfficerRole = ExecutiveRole | NonExecutiveRole;

export interface OfficerInfo {
label: string;
shortLabel: string;
email?: string;
}

export const EXEC_INFO: Record<ExecutiveRole, OfficerInfo> = {
president: {
email: 'csss-president-current@sfu.ca',
shortLabel: 'President',
label: 'President'
},
vp: {
email: 'csss-vp-current@sfu.ca',
shortLabel: 'VP',
label: 'Vice-President'
},
treasurer: {
email: 'csss-treasurer-current@sfu.ca',
shortLabel: 'Treasurer',
label: 'Treasurer'
},
dor: {
email: 'csss-dor-current@sfu.ca',
shortLabel: 'DoR',
label: 'Director of Resources'
},
doe: {
email: 'csss-doe-current@sfu.ca',
shortLabel: 'DoE',
label: 'Director of Events'
},
doee: {
email: 'csss-doee-current@sfu.ca',
shortLabel: 'DoEE',
label: 'Director of Educational Events'
},
adoe: {
email: 'csss-adoe-current@sfu.ca',
shortLabel: 'ADoE',
label: 'Assistant Director of Events'
},
doc: {
email: 'csss-doc-current@sfu.ca',
shortLabel: 'DoC',
label: 'Director of Communications'
},
secretary: {
email: 'csss-doa-current@sfu.ca',
shortLabel: 'Secretary',
label: 'Secretary'
},
councilrep: {
email: 'csss-councilrep@sfu.ca',
shortLabel: 'Council Rep',
label: 'Council Representative'
},
eal: {
email: 'csss-eal-current@sfu.ca',
shortLabel: 'E@L',
label: 'Executive at Large'
},
fyr: {
shortLabel: 'FYR',
label: 'First Year Representative'
}
};

export const NON_EXEC_INFO: Record<NonExecutiveRole, OfficerInfo> = {
sysadmin: {
email: 'csss-sysadmin@sfu.ca',
shortLabel: 'Sys Admin',
label: 'System Administrator'
},
webmaster: {
email: 'csss-webmaster@sfu.ca',
shortLabel: 'Webmaster',
label: 'Webmaster'
},
frosh: {
email: 'csss-froshchair@sfu.ca',
shortLabel: 'Frosh',
label: 'Frosh Chair'
},
techfair: {
email: 'csss-techfair@sfu.ca',
shortLabel: 'Tech Fair',
label: 'Tech Fair Chair'
}
};

export const OFFICER_INFO: Record<OfficerRole, OfficerInfo> = {
...EXEC_INFO,
...NON_EXEC_INFO
};
Loading