diff --git a/components/EventCard.module.css b/components/EventCard.module.css index 3f126c9b..00d28492 100644 --- a/components/EventCard.module.css +++ b/components/EventCard.module.css @@ -31,6 +31,10 @@ margin-bottom: 0; } +.content > h1 a { + color: var(--primary-heading); +} + .content, .content > h2 { font-weight: 400; diff --git a/components/EventCard.tsx b/components/EventCard.tsx index 40120970..deda868b 100644 --- a/components/EventCard.tsx +++ b/components/EventCard.tsx @@ -18,6 +18,10 @@ interface EventCardProps { permaLink: string; showDescription?: boolean; children: ReactNode; + year: string; + term: string; + slug: string; + titleLinked: boolean; } export function EventCard({ @@ -30,6 +34,10 @@ export function EventCard({ registerLink, children, showDescription = false, + year, + term, + slug, + titleLinked, }: EventCardProps) { return (
@@ -54,7 +62,13 @@ export function EventCard({ showDescription ? styles.mobileShowDescriptionContent : "", ].join(" ")} > -

{name}

+

+ {titleLinked ? ( + {name} + ) : ( + name + )} +

diff --git a/components/MiniEventCard.module.css b/components/MiniEventCard.module.css index 482620e1..4ffcbd99 100644 --- a/components/MiniEventCard.module.css +++ b/components/MiniEventCard.module.css @@ -14,6 +14,10 @@ margin: 0; } +.name a { + color: var(--primary-heading); +} + .nameSpacer { width: calc(140rem / 16); } diff --git a/components/MiniEventCard.tsx b/components/MiniEventCard.tsx index be2c7928..fc73c3b1 100644 --- a/components/MiniEventCard.tsx +++ b/components/MiniEventCard.tsx @@ -1,32 +1,39 @@ import React, { ReactNode } from "react"; import { EventSetting } from "./EventSetting"; +import { Link } from "./Link"; import styles from "./MiniEventCard.module.css"; -interface Props { +interface MiniEventCardProps { name: string; description: ReactNode; short: string; online: boolean; location: string; date: Date; + year: string; + term: string; + slug: string; } -export const MiniEventCard: React.FC = ({ +export const MiniEventCard: React.FC = ({ name, short, description, location, date, online, + year, + term, + slug, }) => { return (
event.preventDefault()}>

-
{name}
+ {name}

diff --git a/components/TeamMemberCard.module.css b/components/TeamMemberCard.module.css index b8c80a5d..3b274ad4 100644 --- a/components/TeamMemberCard.module.css +++ b/components/TeamMemberCard.module.css @@ -24,6 +24,9 @@ .image { width: calc(126rem / 16); height: calc(126rem / 16); + + clip-path: circle(); + object-fit: cover; } .name { diff --git a/content/events/2022/spring/BOT.md b/content/events/2022/spring/BOT.md new file mode 100644 index 00000000..c5d89a07 --- /dev/null +++ b/content/events/2022/spring/BOT.md @@ -0,0 +1,19 @@ +--- +name: 'BOT: In-person Speed-Friending + CSC Circles Intro' +short: 'Kick off the spring term with CSCโ€™s BOT event and meet others in the CS community!' +date: 'May 12 2022 19:00' +online: false +location: 'DC 1350' +poster: 'images/events/2022/spring/BOT.png' +registerLink: https://bit.ly/s22-bot-signup +--- + +๐Ÿ“ข Kick off the spring term with CSCโ€™s BOT event! Are you interested in attending upcoming CSC events? Want to meet others in the CS community now that school is finally in-person? Come to our FIRST event of this term: In-person Speed-Friending event and the CSC circles kickoff! + +๐Ÿ“Œ You will be able to meet others in groups of 3 or 4, with around 10 minutes to talk. ๐ŸŽค An optional prompt will act as an icebreaker, but feel free to discuss anything you want! Before the speed-friending event, the details of CSC Circles will be discussed along with our quick intro, so if youโ€™re interested in participating or learning more about CSC, be sure to attend! Even if you donโ€™t want to be part of CSC Circles, you should join us for the speed-friending event ๐Ÿฅฐ + +๐Ÿ‘€ Just like last term, CSC Circles will consist of groups of 4-6 participants who will be matched to create recurring social circles based on your interests. CSC Circles will help you build meaningful connections over the course of a semester and beyond ๐Ÿš€ + +๐Ÿ“† When? May 12th 2022 at 7-9pm EST, in DC 1350 + +๐Ÿ‘‰ Register at https://bit.ly/s22-bot-signup. Alternatively, you can also email us at exec@csclub.uwaterloo.ca to sign up. diff --git a/content/events/2022/spring/Bootcamp-Mock-Interviews.md b/content/events/2022/spring/Bootcamp-Mock-Interviews.md new file mode 100644 index 00000000..efebcb0b --- /dev/null +++ b/content/events/2022/spring/Bootcamp-Mock-Interviews.md @@ -0,0 +1,21 @@ +--- +name: 'Bootcamp: Mock Interviews' +short: 'Come to practice your interview skills with experienced mentors!' +date: 'May 21 2022 18:00' +online: true +location: 'Discord' +poster: 'images/events/2022/spring/Bootcamp-Mentee-Applications.png' +registerLink: https://bit.ly/s22-bootcamp-mentee-signup! +--- + +๐Ÿ“ข Applications for Bootcamp are now OPEN! ๐Ÿ“ข CSC is bringing back Bootcamp to gear you up for your next recruiting season, partnered with @uwaterloodsc, @uwblueprint, @uwaterloowics, @uwaterloopm, @uw_ux, and @techplusuw! ๐Ÿ’ป Mock interviews take place May 21st 6:00 - 10:00 PM EST. + +๐Ÿ’โ€โ™€๏ธ Sign up as a mentee, and join our experienced mentors in Resume Reviews and Mock Interviews (virtual 1:1 sessions) to receive feedback from various tech backgrounds ๐Ÿ“ƒ You will be paired with a mentor who is knowledgeable in the same or a similar career path to yours to ensure relevant feedback! ๐Ÿ‘Œ + +A mentor will be paired with you based on your career interests to provide insightful feedback and advice to rock your job search - donโ€™t miss out! If youโ€™re interested, please sign up! We would love to help you feel ready and confident for the upcoming job hunt. After signing up, youโ€™ll soon receive a link to the Discord server in which this event takes place. Our collaborating clubs are excited to bring you this opportunity to sharpen your job hunting skills ๐Ÿง  If youโ€™re interested, please apply! + +๐Ÿ‘‰ Apply using this link https://bit.ly/s22-bootcamp-mentee-signup! + +Alternatively, you can email us at exec@csclub.uwaterloo.ca with the year and program youโ€™re in, along with interested job paths. + +๐Ÿ“… Deadline to Apply: May 12th 2022, 11:59 PM EST diff --git a/content/events/2022/spring/Bootcamp-Resume-Reviews.md b/content/events/2022/spring/Bootcamp-Resume-Reviews.md new file mode 100644 index 00000000..5e4ae3d7 --- /dev/null +++ b/content/events/2022/spring/Bootcamp-Resume-Reviews.md @@ -0,0 +1,21 @@ +--- +name: 'Bootcamp: Resume Reviews' +short: 'Come to receive insightful feedback and advice on your resume to rock your job search!' +date: 'May 14 2022 18:00' +online: true +location: 'Discord' +poster: 'images/events/2022/spring/Bootcamp-Mentee-Applications.png' +registerLink: https://bit.ly/s22-bootcamp-mentee-signup +--- + +๐Ÿ“ข Applications for Bootcamp are now OPEN! ๐Ÿ“ข CSC is bringing back Bootcamp to gear you up for your next recruiting season, partnered with @uwaterloodsc, @uwblueprint, @uwaterloowics, @uwaterloopm, @uw_ux, and @techplusuw! ๐Ÿ’ป The drop-in resume review event takes place May 14th 6:00 - 10:00 PM EST. + +๐Ÿ’โ€โ™€๏ธ Sign up as a mentee, and join our experienced mentors in Resume Reviews and Mock Interviews (virtual 1:1 sessions) to receive feedback from various tech backgrounds ๐Ÿ“ƒ You will be paired with a mentor who is knowledgeable in the same or a similar career path to yours to ensure relevant feedback! ๐Ÿ‘Œ + +A mentor will be paired with you based on your career interests to provide insightful feedback and advice to rock your job search - donโ€™t miss out! If youโ€™re interested, please sign up! We would love to help you feel ready and confident for the upcoming job hunt. After signing up, youโ€™ll soon receive a link to the Discord server in which this event takes place. Our collaborating clubs are excited to bring you this opportunity to sharpen your job hunting skills ๐Ÿง  If youโ€™re interested, please apply! + +๐Ÿ‘‰ Apply using this link https://bit.ly/s22-bootcamp-mentee-signup! + +Alternatively, you can email us at exec@csclub.uwaterloo.ca with the year and program youโ€™re in, along with interested job paths. + +๐Ÿ“… Deadline to Apply: May 12th 2022, 11:59 PM EST diff --git a/content/events/2022/spring/CxC-Summit-ML-Edition.md b/content/events/2022/spring/CxC-Summit-ML-Edition.md new file mode 100644 index 00000000..892c7ab1 --- /dev/null +++ b/content/events/2022/spring/CxC-Summit-ML-Edition.md @@ -0,0 +1,21 @@ +--- +name: 'CxC Summit - ML Edition' +short: 'Join CSCโ€™s first Clubs x Companies Summit to learn about Machine Learning and network with some UW tech clubs and prestigious companies!' +date: 'May 19 2022 18:00' +online: true +location: 'Online' +poster: 'images/events/2022/spring/CxC-Summit.png' +registerLink: https://bit.ly/3KMDftE +--- + +๐Ÿ“ฃ CxC Summit - ML Edition ๐Ÿ“ฃ + +๐Ÿคฉ Interested in learning about Machine Learning? Want to gain more experience by deploying NLP or image processing projects? Join CSC's first Clubs x Companies Summit to learn and network with some UW tech clubs and prestigious companies! + +๐Ÿ’ป This weeklong online learnathon will include beginner-friendly workshops and networking events. Participants can tackle different ML challenges created by the clubs and companies, ranging from binary classification to sequential image prediction. There are prizes too! + +๐Ÿ“… Event Date: Thursday, May 19th - Sunday, May 29th + +๐Ÿ‘‰ Register using this link: https://bit.ly/3KMDftE! + +Hope to see you there! diff --git a/content/events/2022/spring/Spring-2022-Elections.md b/content/events/2022/spring/Spring-2022-Elections.md new file mode 100644 index 00000000..9ca1ec09 --- /dev/null +++ b/content/events/2022/spring/Spring-2022-Elections.md @@ -0,0 +1,14 @@ +--- +name: 'Spring 2022 Elections' +short: 'CS Club will be holding elections for the Spring 2022 term on Thursday, May 5th at 5:30 pm in DC 1351.' +date: 'May 5 2022 17:30' +online: false +location: 'DC 1351' +poster: 'images/events/2022/spring/Spring-2022-Elections.png' +--- + +CS Club will be holding elections for the Spring 2022 term on Thursday, May 5th at 5:30 pm in DC 1351. +Come to learn more about CSC, sign up for membership, and vote on our new execs! +The president, vice-president, treasurer, and assistant vice-president will be elected, and the sysadmin will be appointed. + +If you have any questions about elections, please email cro@csclub.uwaterloo.ca. diff --git a/content/events/2022/winter/Code-Party.md b/content/events/2022/winter/Code-Party.md new file mode 100644 index 00000000..eb0252a3 --- /dev/null +++ b/content/events/2022/winter/Code-Party.md @@ -0,0 +1,17 @@ +--- +name: "Code Party" +short: "CS Club is hosting our first Code Party since the pandemic started. Come code and chill (in-person!) with us!" +date: "March 25 2022 18:00" +online: false +location: "STC 0060" +poster: "images/events/2022/winter/Code-Party.png" +registerLink: "https://forms.gle/M4YzJeHpt2RiY1HHA" +--- + +CS Club is hosting our first Code Party since the pandemic started, from 6 pm until 9 pm in STC 0060, on Friday, March 25. Come code and chill (in-person!) with us! + +Personal projects you want to work on? Homework assignments you need to finish? Or want some time to explore new technology and meet new people in a casual, minimal-stress environment? You can do all this and more at our Code Party! All experience levels are welcome. + +Come any time after 6 pm. Food will be provided. + +Registration is not required, but it is highly recommended. Register at https://forms.gle/M4YzJeHpt2RiY1HHA. Alternatively, you can also email us at exec@csclub.uwaterloo.ca to let us know you're interested. diff --git a/content/events/2022/winter/EOT.md b/content/events/2022/winter/EOT.md new file mode 100644 index 00000000..0e71b9cf --- /dev/null +++ b/content/events/2022/winter/EOT.md @@ -0,0 +1,25 @@ +--- +name: 'CSC EOT Social Night' +short: 'CSC is hosting a fun night of activities to celebrate the end of the term, with scavenger hunts, trivia, paint night sessions, board games, charades and more! ' +date: 'April 03 2022 18:00' +online: false +location: 'DC 1351' +poster: 'images/events/2022/winter/EOT.png' +registerLink: https://bit.ly/w22-eot-signup +--- + + ๐Ÿ“ข Phew, what a term! CSC is hosting a fun night of activities to celebrate the end of the term, with scavenger hunts, trivia, paint night sessions, board games, charades and more! + +๐ŸŽ‰ Come join us on Sunday April 3rd, from 6-7PM for the Scavenger Hunt, and 7-9PM for our night of activities! + +โœจSome reminders before attending our event: +1. Registration is required to attend our in-person event - register at https://bit.ly/w22-eot-signup! +2. Please remember to keep face coverings on at all times when youโ€™re indoors. +3. There are limited quantities for paint supplies! First come, first serve ๐ŸŽจ +4. Make sure to bring your WATcard in order to win prizes! Only those that have paid MathSoc fees in their tuition will be able to receive the prizes for activities. + +๐Ÿฅณ This event is limited to those with a CSC membership. If youโ€™d like to sign up for one, visit https://csclub.uwaterloo.ca/get-involved/ or come with your watcard on the day of to sign up for FREE! + +๐Ÿ“† Event Date: April 3rd at 6-9PM ET at DC 1351 + +๐Ÿ‘‰ Register at https://bit.ly/w22-eot-signup. Alternatively, you can email us at exec@csclub.uwaterloo.ca to sign up. \ No newline at end of file diff --git a/content/events/2022/winter/Unix-101-2.md b/content/events/2022/winter/Unix-101-2.md new file mode 100644 index 00000000..9a26fbb6 --- /dev/null +++ b/content/events/2022/winter/Unix-101-2.md @@ -0,0 +1,19 @@ +--- +name: "Unix 101: FS/Perms & vim" +short: "Join CSC's Systems Committee (syscom) for the second session of an introductory series on GNU/Linux!" +date: "March 26 2022 14:00" +online: true +location: "Twitch" +poster: 'images/events/2022/winter/Unix-101-2.png' +--- + +Do you want to start editing with vim? Looking to learn about the Unix file system? Youโ€™ve come to the right place! โœ CSCโ€™s Systems Committee (syscom) is back with a workshop on File Systems, Permissions, and a tutorial on vim for our 2nd session of Unix 101! ๐Ÿ’ป + +๐Ÿ™†โ€โ™‚๏ธ Unix 101 is a 4-part, beginner-friendly series on the Unix operating system. Attendance in previous sessions is not required to understand the proceeding ones, but is strongly encouraged to make sure you get the most out of our workshops! โœจ + +๐Ÿ‘† We additionally recommend joining CSC to access our machines for more hands-on activity. Learn more about how you can do so at https://csclub.uwaterloo.ca/get-involved/! + +๐Ÿง  Head over to our Twitch on March 26th from 2-3PM ET for our second session of Unix 101! + +๐Ÿ“… Event Date: Saturday March 26th @ 2-3PM ET on Twitch +๐Ÿ”— Twitch: https://www.twitch.tv/uwcsclub diff --git a/content/get-involved.mdx b/content/get-involved.mdx index 61c2aa50..ed9b27d9 100644 --- a/content/get-involved.mdx +++ b/content/get-involved.mdx @@ -8,12 +8,12 @@ a bunch of ways you can join and help out. ### General Membership -
- In-person Term +
+ In-person 1. Drop by our office in **MC 3036/3037** with - - your WatCard, and - - $2 membership fee for the term that you would like to pay for + - your WatCard, and + - $2 membership fee for the term that you would like to pay for 2. Sign our [Machine Usage Agreement](/resources/machine-usage-agreement) That's all! After your account has been created, you'll have access to all the @@ -22,12 +22,13 @@ That's all! After your account has been created, you'll have access to all the #### Membership Renewal Just drop by the office with $2 for each term which you wish to renew. -You do not need to bring your WatCard or sign the usage agreement again. +You do not need to bring your WatCard or sign the machine usage agreement +again.
-
- Online Term +
+ Online Email the CSC Systems Committee at [syscom@csclub.uwaterloo.ca](mailto:syscom@csclub.uwaterloo.ca)ย from your @@ -36,28 +37,17 @@ University of Waterloo email address with the following: 1. a scan or photograph copy of your **WatCard**, 2. your **WatIAM userid**, and 3. your acknowledgement of having read, understood, and agreeing with our -[Machine Usage Agreement](/resources/machine-usage-agreement). + [Machine Usage Agreement](/resources/machine-usage-agreement). - - -MathSoc has waived membership fees for the Winter 2022 term, so just send syscom -an email and we'll be happy to register your CSC account for free this term. +**Note: we no longer use Paypal to process memberships.** +We are currently working on an alternative solution for processing membership +fees online. Please check back later! #### Membership Renewal -**Membership renewals for the Winter 2022 term are free.** - **Note: we no longer use Paypal to process memberships.** - -For all other terms... - - +We are currently working on an alternative solution for processing membership +fees online. Please check back later! Contact syscom to renew your membership for as many terms as you wish. You do not need to send us your WatCard or sign the usage @@ -65,11 +55,11 @@ agreement again.
-### Executive Committees +### Organizing Committees -Are you interested in using your skills to get involved with CSC? We have -committees covering everything from design to development, so no matter your -interests, weโ€™ve got a place for you. +Are you interested in using your skills to get involved with CSC and help make +an impact on our community? We have committees covering everything from design +to development, so no matter your interests, weโ€™ve got a place for you. **CSC hires at the end of every term\***, so make sure to stay connected through social media to keep up to date on when applications open! @@ -89,13 +79,16 @@ social media to keep up to date on when applications open! #### Systems Committee - Maintaining all services that CSC provides which includes file share, DNS, -mail, configuration for IRC, Mattermost, Git hosting. + mail, configuration for IRC, Mattermost, Git hosting. - Managing mirrors used by large public organizations and thousands of people -internationally. + internationally. -Syscom is always looking for new members! If you'd like to join, just send an email to syscom@csclub.uwaterloo.ca containing a brief introduction about yourself and any experience you have with GNU/Linux. +Syscom is always looking for new members! If you'd like to join, just send an +email to syscom@csclub.uwaterloo.ca containing a brief introduction about +yourself and any experience you have with GNU/Linux. ### Elected Roles + Each term, the CSC holds elections to determine the executive council: - President diff --git a/content/news/2022/spring/2022-04-28-a258wang.md b/content/news/2022/spring/2022-04-28-a258wang.md new file mode 100644 index 00000000..0ab918f3 --- /dev/null +++ b/content/news/2022/spring/2022-04-28-a258wang.md @@ -0,0 +1,19 @@ +--- +author: 'a258wang' +date: 'April 28 2022 00:00' +--- +๐Ÿ“ฃ The Spring 2022 Bootcamp Event is looking for mentors to take on resume critiques, host mock interviews, and help prepare students for their co-op search! This is an awesome opportunity for anyone to give back to the Waterloo community and make an impact on a studentโ€™s co-op search. + +๐Ÿ“… There is a resume review event happening on May 14th from 6:00pm-10:00 PM EST and a mock interview event on May 21st from 6:00pm-10:00 PM EST. + +โ„น๏ธ You can choose to participate at either event for a select number of hours! + +โ—๏ธAll sessions will take place virtually on our Bootcamp Discord Server! Students will have a chance to meet with you 1 on 1 to discuss their resumes/conduct their interviews. + +๐Ÿ‘‰ Sign up at https://bit.ly/s22-bootcamp-mentor-signup + +Alternatively, you can email us at exec@csclub.uwaterloo.ca with the year and program youโ€™re in, along with interested job paths. + +๐Ÿ“… Deadline to Apply for Resume Reviews: May 11th, 2022, 11:59PM EST + +๐Ÿ“… Deadline to Apply for Mock Interviews: May 18th, 2022, 11:59PM EST diff --git a/content/news/2022/spring/2022-05-02-a258wang.md b/content/news/2022/spring/2022-05-02-a258wang.md new file mode 100644 index 00000000..ff721204 --- /dev/null +++ b/content/news/2022/spring/2022-05-02-a258wang.md @@ -0,0 +1,19 @@ +--- +author: 'a258wang' +date: 'May 02 2022 00:00' +--- +CSC Cloud has been released! + +Ever wanted a virtual private server (VPS) like GCP or AWS, but balked at the price? +Now you can get FREE cloud computing, included with your CSC membership! + +Specs: +- 8 CPU cores +- 8 GB RAM +- 40 GB disk space + +Split between up to 8 different VMs, all yours! + +Read the documentation at https://docs.cloud.csclub.uwaterloo.ca/ to get started today! + +Note: If you need additional resources, email syscom@csclub.uwaterloo.ca with your reasoning and we will do our best to accommodate you. diff --git a/content/news/2022/spring/2022-05-05-a258wang.md b/content/news/2022/spring/2022-05-05-a258wang.md new file mode 100644 index 00000000..d289554c --- /dev/null +++ b/content/news/2022/spring/2022-05-05-a258wang.md @@ -0,0 +1,26 @@ +--- +author: 'a258wang' +date: 'May 5 2022 00:00' +--- + +Spring 2022 elections have concluded. Here are your executives for the term: + +- President: Eden Chan (e223chan) +- Vice President: Bonnie Peng (b38peng) +- Assistant Vice President: Haley Song (h79song) +- Treasurer: Sat Arora (s97arora) +- Sysadmin: Raymond Li (r389li) + + + +Additionally, the following postions were appointed: + +- Head Community Coordinator: Sat Arora (s97arora) +- Heads of Discord: Mark Chen (m375chen) and Alex Zhang (xc22zhan) +- Head of Design: Aaryan Shroff (a2shroff) +- Heads of Events: Bonnie Peng (b38peng) and Catherine Wan (c29wan) +- Head of External Affairs: Eric Liu (e59liu) +- Head of Marketing: Haley Song (h79song) +- Office Manager: Sat Arora (s97arora) + + diff --git a/content/news/2022/winter/2022-03-27-b72zhou.md b/content/news/2022/winter/2022-03-27-b72zhou.md new file mode 100644 index 00000000..e2bbbfea --- /dev/null +++ b/content/news/2022/winter/2022-03-27-b72zhou.md @@ -0,0 +1,15 @@ +--- +author: 'b72zhou' +date: 'March 27 2022 00:00' +--- +๐Ÿ“ฃ CS Clubโ€™s Internal Committee is hiring for Spring 2022! ๐Ÿ“ฃ + +Are you interested in organizing program-wide events, reaching out to industry professionals, or being a member of an impactful community? Are you passionate about making a difference in the UW CS and surrounding communities? + +Apply for a role on CS Club's Internal Committee for Spring 2022! We are looking for people like you to join our Programme Committee and/or Systems Committee! ๐Ÿ™Œ + +๐Ÿ‘€ Role descriptions can be found at https://bit.ly/uwcsclub-s22-roles. + +โฒ๏ธ The form will close on Monday April 11, at 11:59PM EST, so apply ASAP! We'll reach out through email after this date for interview slots/questions. + +๐Ÿ‘‰ Apply at https://bit.ly/csc-s22-apply! Alternatively, you can email us at exec@csclub.uwaterloo.ca from your UW email with an introduction of yourself, which positions you're interested in and any questions you might have! diff --git a/content/news/2022/winter/2022-03-30-a258wang.md b/content/news/2022/winter/2022-03-30-a258wang.md new file mode 100644 index 00000000..64108212 --- /dev/null +++ b/content/news/2022/winter/2022-03-30-a258wang.md @@ -0,0 +1,20 @@ +--- +author: 'a258wang' +date: 'March 30 2022 00:00' +--- +Are you graduating this year and looking back on your time at UW? ๐Ÿ’ญ Do you want to share your experiences, learn about othersโ€™ experiences and create something youโ€™ll be able to look back on years from now? Well CSC is launching its first ever Class Profile for the CS Class of 2022! ๐ŸŽ‰ + +๐Ÿค” What is a Class Profile? +๐Ÿ‘‰ Itโ€™s a voluntary and confidential survey that asks questions about YOUR experience as a CS/CFM/CS-BBA student at the University of Waterloo. After the data collection, we will release a summary of the responses in the form of a website so you can learn more about your graduating class. + +๐Ÿ“Œ Why should I fill it out? +๐Ÿ‘‰ To share your experience as a CS Student at UW. +๐Ÿ‘‰ To create a web page that will not only be entertaining for you to view with your friends but also serve as a guide for current and future CS students to get a glimpse into being a CS student. +๐Ÿ‘‰ To be entered in a draw to win 1 of 3 gift cards valued at $25, $25, $50! + +๐Ÿ‘€ How do I fill it out? +๐Ÿ‘‰ Fill the form out at https://bit.ly/uw-cs22-class-profile! + +๐Ÿ“… The form must be submitted by April 29, 2022 at 11:59pm EST for your response to be recorded and to be eligible for the giveaway. Make sure to get your fellow CS โ€˜22 friends to fill it out as well! + +Please note that while this survey is confidential, in order to fulfill the giveaway we need to collect your email; however this will be stored separately from the form. If you have any questions or concerns, feel free to contact us through our Discord or email us at exec@csclub.uwaterloo.ca! ๐Ÿ’™ diff --git a/content/resources/tech-talks/Unix-101-Winter-2022-Session-1.md b/content/resources/tech-talks/Unix-101-Winter-2022-Session-1.md new file mode 100644 index 00000000..f7e71f25 --- /dev/null +++ b/content/resources/tech-talks/Unix-101-Winter-2022-Session-1.md @@ -0,0 +1,11 @@ +--- +index: 63 +title: 'Unix 101 Winter 2022 Session 1' +presentors: + - CSC Systems Committee +thumbnails: + small: 'https://mirror.csclub.uwaterloo.ca/csclub/Unix-101-Winter-2022-Session-1.jpg' +links: + - file: 'https://mirror.csclub.uwaterloo.ca/csclub/Unix-101-Winter-2022-Session-1.mp4' + type: 'Talk (mp4)' +--- diff --git a/content/team/execs/01-juthika-hoque.md b/content/team/execs/01-juthika-hoque.md deleted file mode 100644 index 5aafc53c..00000000 --- a/content/team/execs/01-juthika-hoque.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -name: Juthika Hoque -role: President ---- - -Hi!! Iโ€™m Juthika, a 2B CS student. I joined CSC in Spring 2021, and instantly found the community that I felt had been missing in CS due to an online first year. The visions and the goals of CSC have resonated with me since I joined, and quickly developed into a passion for me. I hope that as President, I can lead CSC while keeping our mission in mind to make the computing community a better place for everyone. diff --git a/content/team/execs/02-eric-huang.md b/content/team/execs/02-eric-huang.md deleted file mode 100644 index 782e4715..00000000 --- a/content/team/execs/02-eric-huang.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -name: Eric Huang -role: Vice President ---- - -Hi! I'm Eric, a 2B CS student. As VP, I help lead our passionate events team that bring lots of wonderful opportunities to the CSC public! The CSC community has helped me grow in lots of ways, and I hope to provide the same experience for anyone interested in Computer Science. Besides doing the non-stop school grind, you can usually find me playing volleyball or watching anime. Don't be afraid to reach out to me on Discord for a chat, or say hi to me in any way! ๐Ÿ˜ diff --git a/content/team/execs/03-dina-orucevic.md b/content/team/execs/03-dina-orucevic.md deleted file mode 100644 index 54c21ba1..00000000 --- a/content/team/execs/03-dina-orucevic.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -name: Dina Orucevic -role: Assistant Vice President ---- - -Hi everyone, Iโ€™m Dina, a rising 1B student in Systems Design Engineering! Iโ€™m so glad I get the chance to lead a group of interested students to make the CS community even more inclusive, diverse, and engaging! In my free time I love snapping film photos, going to dog parks (even though I donโ€™t own a dog) and reading a good novel. \ No newline at end of file diff --git a/content/team/execs/04-eden-chan.md b/content/team/execs/04-eden-chan.md deleted file mode 100644 index 35c6697d..00000000 --- a/content/team/execs/04-eden-chan.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -name: Eden Chan -role: Treasurer ---- - -๐Ÿ‘‹ Hello! Iโ€™m Eden and Iโ€™m a second year CS student. -As treasurer, I make sure that CSC has the funds to run all the ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ initiatives and events throughout the term. -I also help lead our amazing events team plan socials and community-focused events. ๐Ÿš€๐Ÿš€ ๐Ÿš€ -Joining in Winter 2021, I warmed up to the vision that Kallen, Gordon, and Jason, our former Presidents, had for CSC. -Like them, I saw CSC as a chance to fill the cohort gap that Engineering had and that Computer Science lacked. -Other than grinding the Waterloo CS cycle, you can find me shamelessly plugging my anime piano covers and blog this term :3 diff --git a/content/team/execs/06-codey.md b/content/team/execs/06-codey.md deleted file mode 100644 index be7a6f51..00000000 --- a/content/team/execs/06-codey.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -name: Codey -role: Mascot ---- - -The one, the only, Codey! Codey is ecstatic to be your mascot for this term. Codey loves programming and playing on their laptop. You can often find Codey posing for event promo graphics, or chilling in the CSC discord. diff --git a/content/team/execs/bonnie-peng.md b/content/team/execs/bonnie-peng.md new file mode 100644 index 00000000..a7071bdc --- /dev/null +++ b/content/team/execs/bonnie-peng.md @@ -0,0 +1,6 @@ +--- +name: Bonnie Peng +role: Vice-President +--- + +Hi there! I'm Bonnie, a 2B CS student from Nova Scotia! ๐ŸŸ CSC has given me so many opportunities to grow and flourish in the community, so I hope to give you the same kind of support, and as much as you need, as this term's VP! In my free time, I love bouncing around town with my camera and taking long walks at the mall ๐Ÿ˜‹ diff --git a/content/team/execs/codey.md b/content/team/execs/codey.md new file mode 100644 index 00000000..a5bc977c --- /dev/null +++ b/content/team/execs/codey.md @@ -0,0 +1,6 @@ +--- +name: Codey +role: Mascot +--- + +The one, the only, Codey! Codey is a friendly and welcoming Shiba who uses they/them pronouns. Codey loves programming and playing on their laptop. You can often find Codey posing for event promo graphics, or chilling in the CSC discord. diff --git a/content/team/execs/05-raymond-li.md b/content/team/execs/raymond-li.md similarity index 100% rename from content/team/execs/05-raymond-li.md rename to content/team/execs/raymond-li.md diff --git a/content/team/execs/sat-arora.md b/content/team/execs/sat-arora.md new file mode 100644 index 00000000..4204fe9e --- /dev/null +++ b/content/team/execs/sat-arora.md @@ -0,0 +1,6 @@ +--- +name: Sat Arora +role: Treasurer +--- + +Hi, I'm Sat! As a young member of the internal team who loves being around a community, I hope to help facilitate events and initiatives CSC is running this term. You can find me in the CSC Office @ MC3036 on most days, but other than that I love a good bike ride and taking in the fresh air. Come say hi sometime! ๐Ÿ˜„ diff --git a/content/team/web-committee.json b/content/team/web-committee.json index be755307..ae579b56 100644 --- a/content/team/web-committee.json +++ b/content/team/web-committee.json @@ -22,5 +22,9 @@ { "name": "Shahan NedaDahandeh", "role": "Developer" + }, + { + "name": "Aditya Thakral", + "role": "Alumni" } ] diff --git a/images/codey-404.svg b/images/codey-404.svg new file mode 100644 index 00000000..d4f64699 --- /dev/null +++ b/images/codey-404.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/events/2022/spring/BOT.png b/images/events/2022/spring/BOT.png new file mode 100644 index 00000000..76ea1d27 Binary files /dev/null and b/images/events/2022/spring/BOT.png differ diff --git a/images/events/2022/spring/Bootcamp-Mentee-Applications.png b/images/events/2022/spring/Bootcamp-Mentee-Applications.png new file mode 100644 index 00000000..bf26e361 Binary files /dev/null and b/images/events/2022/spring/Bootcamp-Mentee-Applications.png differ diff --git a/images/events/2022/spring/CxC-Summit.png b/images/events/2022/spring/CxC-Summit.png new file mode 100644 index 00000000..1c08f399 Binary files /dev/null and b/images/events/2022/spring/CxC-Summit.png differ diff --git a/images/events/2022/spring/Spring-2022-Elections.png b/images/events/2022/spring/Spring-2022-Elections.png new file mode 100644 index 00000000..449a31b0 Binary files /dev/null and b/images/events/2022/spring/Spring-2022-Elections.png differ diff --git a/images/events/2022/winter/Code-Party.png b/images/events/2022/winter/Code-Party.png new file mode 100644 index 00000000..79bcaa5d Binary files /dev/null and b/images/events/2022/winter/Code-Party.png differ diff --git a/images/events/2022/winter/EOT.png b/images/events/2022/winter/EOT.png new file mode 100644 index 00000000..d983f3ee Binary files /dev/null and b/images/events/2022/winter/EOT.png differ diff --git a/images/events/2022/winter/Unix-101-2.png b/images/events/2022/winter/Unix-101-2.png new file mode 100644 index 00000000..43803309 Binary files /dev/null and b/images/events/2022/winter/Unix-101-2.png differ diff --git a/lib/events.ts b/lib/events.ts index 76432930..32df20fc 100644 --- a/lib/events.ts +++ b/lib/events.ts @@ -53,6 +53,9 @@ interface Metadata { location: string; permaLink: string; registerLink?: string; + year: string; + term: string; + slug: string; } export interface Event { @@ -82,6 +85,9 @@ export async function getEventBySlug( ).toString(), // permaLink is based on the directory structure in /pages permaLink: `/events/${year}/${term}/${slug}`, + year: year, + term: term, + slug: slug, } as Metadata, }; } diff --git a/lib/team.ts b/lib/team.ts index 0afe94f7..e2fe9f2d 100644 --- a/lib/team.ts +++ b/lib/team.ts @@ -1,11 +1,32 @@ -import { readFile, readdir, access } from "fs/promises"; +import { readFile, access } from "fs/promises"; import path from "path"; import matter from "gray-matter"; +import { Client } from "ldapts"; import { serialize } from "next-mdx-remote/serialize"; +import { getCurrentTerm } from "@/lib/events"; +import { capitalize } from "@/utils"; + const EXECS_PATH = path.join("content", "team", "execs"); -const fileType = ".md"; +const FILETYPE = ".md"; +const { year, term } = getCurrentTerm(); + +const execPositions: { [position: string]: string } = { + president: "President", + "vice-president": "Vice-President", + secretary: "Assistant Vice-President", + treasurer: "Treasurer", + sysadmin: "Systems Administrator", +}; + +const orderedExecPositions: string[] = [ + "president", + "vice-president", + "secretary", + "treasurer", + "sysadmin", +]; export interface Metadata { name: string; @@ -13,23 +34,93 @@ export interface Metadata { image: string; } -export async function getExecNames() { - return (await readdir(EXECS_PATH)) - .filter((name) => name.endsWith(fileType)) - .map((name) => name.slice(0, -1 * fileType.length)); +export async function getExecNamePosPairs() { + if (process.env.USE_LDAP?.toLowerCase() !== "true") { + return [["codey", "mascot"]]; + } + + const url = "ldap://ldap1.csclub.uwaterloo.ca"; + const searchDN = "ou=People,dc=csclub,dc=uwaterloo,dc=ca"; + const client = new Client({ url }); + + // position: name + const execMembers: { [position: string]: string } = {}; + let formattedExec: [string, string][] = []; + + try { + await client.bind("", ""); + const { searchEntries } = await client.search(searchDN, { + scope: "sub", + filter: `(&(objectClass=member)(term=${(term as string).slice( + 0, + 1 + )}${year}))`, + }); + + // item.position might be an array if the member has more than one position + searchEntries.forEach((item) => { + if (typeof item.position === "string" && item.position in execPositions) { + execMembers[item.position] = item.cn as string; + } else if (item.position instanceof Array) { + item.position.forEach((p) => { + if ((p as string) in execPositions) { + execMembers[p as string] = item.cn as string; + } + }); + } + }); + + formattedExec = orderedExecPositions.map((position) => { + return [ + `${execMembers[position].split(" ")[0].toLowerCase()}-${execMembers[ + position + ] + .split(" ")[1] + .toLowerCase()}`, + position, + ]; + }); + + formattedExec = [...formattedExec, ["codey", "mascot"]]; + } finally { + await client.unbind(); + } + + return formattedExec; } -export async function getExec(fileName: string, convert = true) { - const raw = await readFile(path.join(EXECS_PATH, `${fileName}${fileType}`)); - const { content, data: metadata } = matter(raw); - const image = - (metadata.image as string | undefined) ?? - (await getMemberImagePath(metadata.name)); +export async function getExec(name: string, pos: string, convert = true) { + let content, metadata; - return { - content: convert ? await serialize(content) : content, - metadata: { ...metadata, image } as Metadata, - }; + try { + const raw = await readFile(path.join(EXECS_PATH, `${name}${FILETYPE}`)); + ({ content, data: metadata } = matter(raw)); + + const image = await getMemberImagePath(metadata.name); + + return { + content: convert ? await serialize(content) : content, + metadata: { ...metadata, image } as Metadata, + }; + } catch (err) { + // Capitalize the first letter of the first name and last name + const firstName = capitalize(name.split("-")[0]); + const lastName = capitalize(name.split("-")[1]); + + const posName = execPositions[pos]; + content = "Coming Soon!"; + metadata = { + name: `${firstName} ${lastName}`, + role: `${posName}`, + }; + + const image = await getMemberImagePath(metadata.name); + + return { + content: convert ? await serialize(content) : content, + metadata: { ...metadata, image } as Metadata, + }; + } } async function getImage(imgPath: string) { diff --git a/pages/404.module.css b/pages/404.module.css new file mode 100644 index 00000000..8949249d --- /dev/null +++ b/pages/404.module.css @@ -0,0 +1,27 @@ +.container { + display: flex; + align-items: center; + justify-content: center; + padding-bottom: calc(60rem / 16); +} + +.codey { + width: calc(380rem / 16); + padding: calc(20rem / 16); + padding-right: 0; +} + +.heading { + margin-top: 0; +} + +@media only screen and (max-width: calc(768rem / 16)) { + .container { + flex-direction: column; + padding-bottom: calc(30rem / 16); + } + + .codey { + padding: calc(20rem / 16) 0; + } +} diff --git a/pages/404.tsx b/pages/404.tsx new file mode 100644 index 00000000..4b3c091b --- /dev/null +++ b/pages/404.tsx @@ -0,0 +1,26 @@ +import React from "react"; + +import { Image } from "@/components/Image"; +import { Link } from "@/components/Link"; +import { Title } from "@/components/Title"; + +import styles from "./404.module.css"; + +export default function Custom404() { + return ( +
+
+ 404: Page Not Found +

Error 404

+

+ We couldnโ€™t find the page youโ€™re looking for! +

+

+ Click here to go back to the main page. +

+
+ + +
+ ); +} diff --git a/pages/about/team.tsx b/pages/about/team.tsx index d5d0974b..5c2bf065 100644 --- a/pages/about/team.tsx +++ b/pages/about/team.tsx @@ -11,7 +11,7 @@ import { TeamMemberCard } from "@/components/TeamMemberCard"; import { Title } from "@/components/Title"; import { getExec, - getExecNames, + getExecNamePosPairs, Metadata, getMemberImagePath, } from "@/lib/team"; @@ -208,10 +208,12 @@ async function getTeamWithImages(team: TeamMember[]) { } export const getStaticProps: GetStaticProps = async () => { - const execNames = await getExecNames(); + const execNamePosPairs = await getExecNamePosPairs(); const execs = (await Promise.all( - execNames.map((name) => getExec(name)) + execNamePosPairs.map((namePosPair) => + getExec(namePosPair[0], namePosPair[1]) + ) )) as SerializedExec[]; const [ diff --git a/pages/events/[year]/[term]/[event].tsx b/pages/events/[year]/[term]/[event].tsx index ef30a6a5..23c774ce 100644 --- a/pages/events/[year]/[term]/[event].tsx +++ b/pages/events/[year]/[term]/[event].tsx @@ -28,6 +28,7 @@ export default function EventInfoPage({ year, term, event }: Props) { {...event.metadata} date={new Date(event.metadata.date)} showDescription + titleLinked={false} > diff --git a/pages/events/[year]/[term]/index.tsx b/pages/events/[year]/[term]/index.tsx index 8830d624..d1c1c451 100644 --- a/pages/events/[year]/[term]/index.tsx +++ b/pages/events/[year]/[term]/index.tsx @@ -75,6 +75,7 @@ export default function TermPage(props: Props) { {...metadata} date={new Date(metadata.date)} key={metadata.name + metadata.date.toString()} + titleLinked={true} > diff --git a/pages/get-involved.tsx b/pages/get-involved.tsx index 6673a976..96e716f5 100644 --- a/pages/get-involved.tsx +++ b/pages/get-involved.tsx @@ -17,8 +17,8 @@ export default function GetInvolved() {

Get Involved!

- If youโ€™re interested in helping out with CS Club, donโ€™t hesitate to - get in touch with us! + If youโ€™re interested in getting involved with CS Club, donโ€™t + hesitate to get in touch with us!