Merge branch 'main' of https://git.csclub.uwaterloo.ca/www/www-new into internship-guide

This commit is contained in:
Ryan Yunchang Zhu 2024-01-30 17:16:59 -05:00
commit 6ad6cbeda2
48 changed files with 661 additions and 322 deletions

View File

@ -2,8 +2,8 @@
title: Amendments and Procedures title: Amendments and Procedures
--- ---
1. A proposed constitutional amendment can be initiated by the Executive Council or any thirty (30) members. 1. A constitutional amendment can be initiated by the Executive Council or any thirty (30) members. The initiation shall involve making the amendment available for viewing, including in the CSC office.
2. The proposed amendment shall be announced to all members by email to the members' mailing list. 2. There shall be at least twenty-eight (28) days between the amendment's initiation and announcement of the finalized version. Members shall be provided an avenue to discuss the amendment throughout this time period.
3. The proposed amendment shall be made available for viewing by all members in the Computer Science Club office. 3. The finalized version of the amendment shall be announced to all members, taking place through email to the members' mailing list.
4. A general meeting shall be held to consider the amendment at least seven (7) days after the announcement and no more than thirty (30) days after, which may be the regular meeting for the term, or a special meeting. 4. A general meeting shall be held to consider the finalized version of the amendment at least seven (7) and no more than thirty (30) days after its announcement, which may be the regular meeting for the term, or a special meeting.
5. A constitutional amendment requires a 2/3 vote for adoption. 5. A constitutional amendment requires a 2/3 vote for adoption.

View File

@ -1,27 +1,27 @@
--- ---
title: Duties of Officers title: Duties of Officers
--- ---
1. The duties of the President shall be: 1. The duties of the President shall be:
1. to call and preside at all general, special, and executive meetings of the Club, except during the election of officers; 1. to call and preside at all general, special, and executive meetings of the Club, except during the election of officers;
1. to appoint special committees of the Club and the membership and chairs of such committees, with the approval of the Executive Council; 1. to appoint special committees of the Club and the membership and chairs of such committees, with the approval of the Executive Council;
1. to audit, or to appoint a representative to audit, the financial records of the club at the end of each academic term; and 1. to audit, or to appoint a representative to audit, the financial records of the club at the end of each academic term; and
1. with the approval of the Faculty Advisor, rule on any point of procedure under the constitution that arises outside of a meeting. 1. with the approval of the Faculty Advisor, rule on any point of procedure under the constitution that arises outside of a meeting.
1. The duties of the Vice-President shall be: 1. The duties of the Vice-President shall be:
1. to assume the duties of the President in the event of the President's absence; 1. to assume the duties of the President in the event of the President's absence;
1. to chair the Programme Committee; 1. to chair the Programme Committee;
1. to appoint members to and remove members from the Programme Committee; 1. to appoint members to and remove members from the Programme Committee;
1. to ensure that Club events are held regularly; and 1. to ensure that Club events are held regularly; and
1. to assume those duties of the President that are delegated to them by the President. 1. to assume those duties of the President that are delegated to them by the President.
1. The duties of the Treasurer shall be: 1. The duties of the Assistant Vice-President shall be:
1. to collect dues and maintain all financial and membership records; and 1. to keep minutes of all Club meetings;
1. to produce a financial or membership statement when requested. 1. to care for all Club correspondence; and
1. The duties of the Assistant Vice-President shall be: 1. to manage any persons appointed to internal positions by the Executive.
1. to keep minutes of all Club meetings; 1. The duties of the Treasurer shall be:
1. to care for all Club correspondence; and 1. to collect dues and maintain all financial and membership records; and
1. to manage any persons appointed to internal positions by the Executive. 1. to produce a financial or membership statement when requested.
1. The duties of the System Administrator shall be: 1. The duties of the System Administrator shall be:
1. to chair the Systems Committee; 1. to chair the Systems Committee;
1. to appoint members to and remove members from the Systems Committee; 1. to appoint members to and remove members from the Systems Committee;
1. to ensure that the duties of the Systems Committee are performed; and 1. to ensure that the duties of the Systems Committee are performed; and
1. to act as a liaison for the CSC with CSCF, IST, and similar organizations. 1. to act as a liaison for the CSC with CSCF, IST, and similar organizations.

View File

@ -4,6 +4,6 @@ title: Executive Council
1. The Executive Council shall consist of the present officers of the Club and the Faculty Advisor (as a non-voting member) and has the power to run the affairs of this club within the limits of this constitution. This includes the power to overrule or issue directions to any officer. 1. The Executive Council shall consist of the present officers of the Club and the Faculty Advisor (as a non-voting member) and has the power to run the affairs of this club within the limits of this constitution. This includes the power to overrule or issue directions to any officer.
2. The Executive Council may appoint people to various positions to help manage the Club. 2. The Executive Council may appoint people to various positions to help manage the Club.
3. The Executive Council must obey any instructions given to it by the members at a meeting and can be overruled by them. 3. If members provide any points of feedback to the Executive Council at a meeting, then the Executive Council shall respond to them.
4. The Executive Council can act by consensus achieved on their mailing list. 4. The Executive Council can act by consensus achieved on their mailing list.
5. Minutes of the Executive Council meetings shall be made available for inspection by any member of the Club and shall be filed with the Club records. On request, a member shall be shown the archive of any thread on the Executive Council mailing list which resulted in a decision being made. 5. Minutes of the Executive Council meetings shall be made available for inspection by any member of the Club and shall be filed with the Club records. On request, a member shall be shown the archive of any thread on the Executive Council mailing list which resulted in a decision being made.

View File

@ -1,29 +1,31 @@
--- ---
title: Officers title: Officers
--- ---
1. The officers of the Club shall be: 1. The officers of the Club shall be:
1. President 1. President
1. Vice-President 1. Vice-President
1. Treasurer 1. Assistant Vice-President
1. Assistant Vice-President 1. Treasurer
1. Systems Administrator 1. Systems Administrator
1. There shall additionally be a Faculty Advisor, selected by the Executive from time to time from among the faculty of the School of Computer Science. The Faculty Advisor shall be an ex-officio affiliate member of the Club. 1. There shall additionally be a Faculty Advisor, selected by the Executive from time to time from among the faculty of the School of Computer Science. The Faculty Advisor shall be an ex-officio affiliate member of the Club.
1. The choice of officers shall be limited to full members of the Club. 1. The choice of officers shall be limited to full members of the Club.
1. All officers, other than the Systems Administrator, shall be elected at a meeting to be held no later than two weeks after the start of lectures in each term. 1. All officers, other than the Systems Administrator, shall be elected at a meeting to be held no later than two weeks after the start of lectures in each term.
1. The election of officers shall be accomplished by the following procedure: 1. The election of officers shall be accomplished by the following procedure:
1. Before the end of the prior term, the then-Executive shall choose a willing Chief Returning Officer, who is responsible for carrying out elections according to this procedure. 1. Before the end of the prior term, the then-Executive shall choose a willing Chief Returning Officer, who is responsible for carrying out elections according to this procedure.
1. The CRO shall set the date and time of the election meeting, and set the nomination period. The nomination shall be at least one week long and shall end at least 24 hours before the start of the election meeting. 1. The CRO shall set the date and time of the election meeting, and set the nomination period. The nomination shall be at least one week long and shall end at least 24 hours before the start of the election meeting.
1. Announcements of the election and the nomination procedure must be distributed to all members by the members' mailing list, and should also be advertised by posters in the MC building. 1. Announcements of the election and the nomination procedure must be distributed to all members by the members' mailing list.
1. During the nomination period, the Chief Returning Officer (CRO) shall be available to receive nominations for the posts of officers of the club, either in person, by email, by depositing nomination forms in the CSC's mailbox in the MathSoc office, or by writing the nomination in a place in the CSC office to be specified by the CRO. 1. During the nomination period, the Chief Returning Officer (CRO) shall be available to receive nominations for the posts of officers of the club, either in person, by email, or by writing the nomination in a place in the CSC office to be specified by the CRO.
1. A nomination shall consist of the nominee's userid, and post(s) nominated for. Nominees must be full members of the Computer Science Club. A member may decline a nomination at any point prior to the taking of the vote. 1. A nomination shall consist of the nominee's userid, and post(s) nominated for. Nominees must be full members of the Computer Science Club. A member may decline a nomination at any point prior to the taking of the vote.
1. The election shall commence with the offering of memberships for sale. After a reasonable time, control of the meeting is given to the CRO who will preside over the election of the President, Vice-President, Treasurer, and Secretary, in that order. 1. Within 24 hours of the CRO receiving a nomination, the CRO must publicize the nomination, such as by writing it on the CSC office whiteboard.
1. During each election, if the position has no nominees, the CRO will take nominations from the floor. Any present, eligible member can be nominated. 1. Each nominee shall make a platform and submit it to the CRO. Within 24 hours of the CRO receiving a platform from a nominee, the CRO must publicize the platform. Each nominee is also encouraged to publicize their platform on their own.
1. Each election shall be carried out by secret vote, in a manner to be decided on by the CRO, with the approval of the members at the meeting. A simple heads-down-hands-up method is considered acceptable. 1. The election shall commence with the offering of memberships for sale. After a reasonable time, control of the meeting is given to the CRO who will preside over the election of the President, Vice-President, Assistant Vice-President, and Treasurer, in that order.
1. The CRO shall not vote except to break a tie. 1. All nominees shall present their platforms. If a position has no nominees, then the CRO shall take nominations from the floor. Any present, eligible member can be nominated.
1. The CRO may, if feasible, accept absentee ballots from full members. No absentee vote from a member shall be counted if the member is present at the time the vote is taken. The CRO shall make a best effort to ensure that absentee ballots are compatible with the method of voting chosen; if this is not possible (for instance, if the CRO is overruled by the membership), then the absentee votes shall not be counted. 1. Voting shall be by secret ballot, in a manner that is to be decided on by the CRO and agreed upon by the members at the meeting. A simple heads-down-hands-up method is considered acceptable.
1. Immediately after the vote is taken, the CRO will announce the results of the election and the winner will be removed from subsequent contests. If, due to lack of candidates (because there were no nominations, or candidates withdrew or were eliminated), there is no one elected to an office, then the members at the meeting will decide whether or not to hold extra elections in accordance with the procedure for vacancies. If they choose not to, this does not prevent the Executive or a group of members from calling extra elections later in the term in accordance with the usual vacancy provisions. 1. The CRO shall not vote except to break a tie.
1. Following the elections, it is the responsibility of the new Executive to select a Systems Administrator. The selection of Systems Administrator must then be ratified by the members at the meeting. If a suitable Systems Administrator is not available, the duties of the Systems Administrator shall be carried out by the Systems Committee, with decisions made by consensus achieved on their mailing list. 1. The CRO may, if feasible, accept absentee ballots from full members. No absentee vote from a member shall be counted if the member is present at the time the vote is taken. The CRO shall make a best effort to ensure that absentee ballots are compatible with the method of voting chosen; if this is not possible (for instance, if the CRO is overruled by the membership), then the absentee votes shall not be counted.
1. Any two offices may be held by a single person with the approval of the President (if any), and the explicit approval of the members. 1. Immediately after the vote is taken, the CRO will announce the results of the election and the winner will be removed from subsequent contests. If, due to a lack of candidates (because there were no nominations, or candidates withdrew or were eliminated), there is no one elected to an office, then the members at the meeting will decide whether or not to hold extra elections in accordance with the procedure for vacancies. If they choose not to, this does not prevent the Executive or a group of members from calling extra elections later in the term in accordance with the usual vacancy provisions.
1. In the case of a resignation of an officer or officers, including the President, or if a vacancy occurs for any other reason, the Executive, members at a meeting, or any ten (10) members may call extra elections to replace such officer(s). If extra elections are held, they are held for all vacant offices. 1. Following the elections, it is the responsibility of the new Executive to select a Systems Administrator. The selection of Systems Administrator must then be ratified by the members at the meeting. If a suitable Systems Administrator is not available, the duties of the Systems Administrator shall be carried out by the Systems Committee, with decisions made by consensus achieved on their mailing list.
1. Whenever extra elections are held, they shall follow the usual election procedure. If they are held after elections failed to elect an officer, then the nomination period may be shortened to less than a week in order to allow the extra elections to take place at the same date and time in the following week. The Executive (or the ten (10) members who called the election) may appoint a replacement CRO if the previous CRO is unwilling or unable to fulfill their duties. 1. Any two offices may be held by a single person with the approval of the President (if any), and the explicit approval of the members.
1. In the case of a resignation of an officer or officers, including the President, or if a vacancy occurs for any other reason, the Executive, members at a meeting, or any ten (10) members may call extra elections to replace such officer(s). If extra elections are held, they are held for all vacant offices.
1. Whenever extra elections are held, they shall follow the usual election procedure. If they are held after elections failed to elect an officer, then the nomination period may be shortened to less than a week in order to allow the extra elections to take place at the same date and time in the following week. The Executive (or the ten (10) members who called the election) may appoint a replacement CRO if the previous CRO is unwilling or unable to fulfill their duties.

View File

@ -2,4 +2,4 @@
title: Revision title: Revision
--- ---
The latest revision of the constitution is effective May 10, 2023. The latest revision of the constitution is effective January 11, 2024.

View File

@ -0,0 +1,19 @@
---
name: 'Build Networks in Tech!'
short: 'Join us for an evening of connections, collaborations, and conversations that will elevate your professional journey with Scotia Bank, Eclipse Automation and more!'
startDate: 'November 23 2023 18:00'
endDate: 'November 23 2023 20:00'
online: false
location: 'TBD'
poster: 'images/events/2023/fall/1700094272182--Build-Networks-in-Tech.jpg'
registerLink: 'https://docs.google.com/forms/d/e/1FAIpQLSeSfDEHwUlyL17pgd0GrqckJ2RMh06m9CmUqB611H0NpJZ7gA/viewform'
---
💼 Are you hunting for co-op in the near future? Having a hard time finding ways to network with recruiters/alumni? Look no further! Join us at 'Building Networks in Tech', the CSC's exclusive Recruiter Panel Event, where several representatives and alumni from organizations such as Scotiabank, Eclipse Automation and more, deliver a mini-panel and answer your questions! Join us for an evening of connections, and conversations that will elevate your professional journey!
📢 Sign up via the link in our bio to register for the event!
📆 When? November 23rd, 2023 at 6:00pm - 8:00pm EST. (A schedule for the event will be emailed and updated on ig)
📍 Where? Room TBD check the email you used to register, as well as our Discord and Insta story for updates.

View File

@ -0,0 +1,17 @@
---
name: 'CSC Beginning of Term!'
short: 'Kick off the winter term with CSCs BOT event!'
startDate: 'January 24 2024 19:00'
endDate: 'January 24 2024 21:00'
online: false
location: 'STC 0020'
poster: 'images/events/2024/winter/1705976921687--BOT.jpg'
---
📢 Kick off the winter term with CSCs BOT event! Are you interested in attending upcoming CSC events? Want to meet others in the CS community? Want to have fun and eat food? You dont want to miss our first event of this term!
🎉Come join us for a night of speed-friending, fun games, and pizza!
📆 When? Wed Jan 24 at 7:00 - 9:00pm ET
📍 Where? STC 0020

View File

@ -1,82 +1,116 @@
**Everyone at the University of Waterloo is welcome to come to our events and to **Everyone is welcome to join our community and participate in our club!** However, by officially becoming a CSC member, you will:
use our resources!** Feel free to join our communities and chat with our - Get access to all the services available to members.
members. However, if you want to officially become a member or support our - Be eligible for free food and prizes at our events.
vision of creating a supportive environment for all computing students, there's - Support CSC and enable us to continue organizing awesome events and initiatives in the future.
a bunch of ways you can join and help out.
## How to Join General membership is open to all members of the University of Waterloo community, including alumni.
### General Membership ## New Member
Welcome to CSC! Membership is accounted for on a termly basis. If this is your first time signing up, please follow the instructions below.
### In-person
<details open> <details open>
<summary>In-person</summary> <summary>Details</summary>
1. Drop by our office in **MC 3036/3037** with Visit our office in **MC 3036/3037** or stop by any of our events, and an Office Staff member will be there to help you sign up as a CSC member in person. You will need to:
- your WatCard, and 1. Show your **WatCard**.
- $2 membership fee for the term that you would like to pay for 2. Pay your **$2 membership fee** for the term. (See below for more details about various methods of payment.)
2. Sign our [Machine Usage Agreement](/resources/machine-usage-agreement) 3. 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 Acceptable forms of payment are:
[services](/resources/services) available to members. - **Cash:** If needed, we can make change for small bills.
- **Debit/Credit card:**
- **In-person payment:** Visit the **MathSoc office (MC 3038)** and ask to pay your CSC membership fee there. Bring the receipt which says "CSC membership" to an Office Staff member in order to complete the membership sign-up process.
- **Online payment:** Pay your membership fee online through the [WUSA store](https://wusa.ca/product/uw-computer-science-club-membership/). Show your emailed receipt to an Office Staff member in person in order to complete the membership sign-up process.
#### Membership Renewal That's all! After your account has been created, you should receive a welcome email sent to your UWaterloo email address, and you'll have access to all the services available to members.
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 machine usage agreement
again.
</details> </details>
### Remote
<details> <details>
<summary>Online</summary> <summary>Details</summary>
Email the CSC Systems Committee at To sign up as a CSC member online:
[membership@csclub.uwaterloo.ca](mailto:membership@csclub.uwaterloo.ca) from your 1. Pay your **$2 membership fee** for the term through the [WUSA store](https://wusa.ca/product/uw-computer-science-club-membership/). Make sure you receive a receipt via email.
University of Waterloo email address with the following: 2. Forward the email receipt to membership@csclub.uwaterloo.ca, along with
- your **WatIAM ID** (eg. ctdalek),
- a photo of your **WatCard**, and
- your acknowledgement of having read, understood, and agreed to our [Machine Usage Agreement](/resources/machine-usage-agreement).
1. a scan or photograph copy of your **WatCard**, **Note:** You will not be signed up as a CSC member until after you have emailed us, even if you have already paid!
2. your **WatIAM userid**, and
3. your acknowledgement of having read, understood, and agreeing with our
[Machine Usage Agreement](/resources/machine-usage-agreement).
**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
**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!
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
agreement again.
</details> </details>
### Organizing Committees ## Membership Renewal
If you were a CSC member in a past term, and would like to renew your membership, please follow the instructions below.
### In-person
<details>
<summary>Details</summary>
Visit our office in **MC 3036/3037** or stop by any of our events, and an Office Staff member will be there to help you renew your CSC membership. You will need to pay **$2** for each term that you wish to renew. Note that you will not need to show your WatCard or sign the Machine Usage Agreement again.
#### Renewing for the current term only
Acceptable forms of payment are:
- **Cash:** If needed, we can make change for small bills.
- **Debit/Credit card:**
- **In-person payment:** Visit the **MathSoc office (MC 3038)** and ask to pay your CSC membership fee there. Bring the receipt which says "CSC membership" to an Office Staff member in order to complete the membership sign-up process.
- **Online payment:** Pay for your CSC membership fee online at the [WUSA store](https://wusa.ca/product/uw-computer-science-club-membership/). Show your emailed receipt to an Office Staff member in person in order to complete the membership sign-up process.
#### Renewing for future terms
We only accept **cash** when renewing for future terms. If needed, we can make change for small bills.
</details>
### Remote
<details>
<summary>Details</summary>
#### Renewing for the current term only
To renew your CSC membership for the current term online:
- Pay your **$2 membership fee** through the [WUSA store](https://wusa.ca/product/uw-computer-science-club-membership/), ensuring that you only pay for one term. Make sure you receive a receipt via email.
- Forward the email receipt to membership@csclub.uwaterloo.ca, along with your **WatIAM ID** (eg. ctdalek). You do not need to show your WatCard or sign the Machine Usage Agreement again.
**Note:** Your CSC membership will not be renewed until after you have emailed us, even if you have already paid!
#### Renewing for future terms
Unfortunately, renewing for future terms online isnt readily supported at the moment. Please email membership@csclub.uwaterloo.ca and we will do our best to assist you.
</details>
## Organizing Committee
Are you interested in using your skills to get involved with CSC and help make 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 an impact on our community? We have teams covering everything from design
to development, so no matter your interests, weve got a place for you. to development, so no matter your interests, weve got a place for you.
**CSC hires at the end of every term\***, so make sure to stay connected through **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! social media to keep up to date on when applications open!
\* except for syscom, which recruits year-round. \*Some teams undergo a different hiring process, such as syscom, which recruits year-round.
#### Programme Committee ### Programme Committee
- In charge of planning, advertising, and running all events hosted by CSC. - In charge of planning, advertising, and running all events hosted by CSC.
- Voices concerns/ideas on behalf of the CS community. - Voices concerns/ideas on behalf of the CS community.
#### Website Committee ### Web Committee
- Creates functional and modern designs for the CSC website. - Creates functional and modern designs for the CSC website.
- Builds and maintains the static website, updating content for events and news. - Builds and maintains the static website, updating content for events and news.
#### Systems Committee ### Systems Committee
- Maintaining all services that CSC provides which includes file share, DNS, - 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.
@ -87,7 +121,7 @@ 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 email to syscom@csclub.uwaterloo.ca containing a brief introduction about
yourself and any experience you have with GNU/Linux. yourself and any experience you have with GNU/Linux.
### Elected Roles ## Elected Roles
Each term, the CSC holds elections to determine the executive council: Each term, the CSC holds elections to determine the executive council:

View File

@ -0,0 +1,12 @@
---
author: 'ozpan'
date: 'January 12 2024 00:00'
---
The Winter 2024 Elections were held Thursday, December 11th at 6PM EST. Here are the elected executives for the term!
- President: Ivy Lei (ihlei)
- Vice-President: Gordon Lin (g3lin)
- Assistant Vice-President: Saurin Patel (sa23pate)
- Treasurer: Andrea Ma (a49ma)
- Sysadmin: Nathan Chung (n4chung)

View File

@ -0,0 +1,18 @@
---
author: 'ozpan'
date: 'January 12 2024 00:01'
---
The executive team would like to appoint the following:
- Head of Discord (CodeyBot) Developers: Prabhav Khera (p2khera), Fan Yang (f25yang)
- Head of Class Profile: Alexander Liao (a23liao)
- Head of Design: Anny Wei (a25wei)
- Head Discord Moderator: Roger Cao (r44cao)
- Head of Events: Andrea Ma (a49ma), Nicholas Tao (n2tao)
- Head of External Affairs: Devin Yanche Li (dyli)
- Head of Marketing: Arijit Chowdhury (a49chowd), Lila Hoang (Lbxhoang)
- Head of Photography: Varuni Gupta (v3gupta)
- Head Community Representative: Kim Guo (k5guo)
- Webmaster: Darren Lo (dlslo), Richard Shuai (r2shuai)
- Office Manager: Tiger Ding (t27ding)

View File

@ -0,0 +1,24 @@
[
{
"name": "Alexander Liao",
"role": "Team Lead"
},
{
"name": "Muhammad Hamza"
},
{
"name": "Kushal Goel"
},
{
"name": "Cathie Yan"
},
{
"name": "Ryan Zhou"
},
{
"name": "Emily Huang"
},
{
"name": "Franklin Ramirez"
}
]

View File

@ -1,39 +1,40 @@
[ [
{ {
"name": "Cadey Chen", "name": "Anny Wei",
"role": "Team Lead" "role": "Team Lead"
}, },
{ {
"name": "Ashlyn Wu" "name": "Jia Huang"
}, },
{ {
"name": "Roni Wu" "name": "Kim Guo"
},
{
"name": "Prabhsharan Singh Sethi"
},
{
"name": "Hailey Chan"
},
{
"name": "Sayma Khan"
}, },
{ {
"name": "Jessica Chan" "name": "Jessica Chan"
}, },
{
"name": "Kelly Qu"
},
{ {
"name": "Linda Wang" "name": "Linda Wang"
}, },
{ {
"name": "Anny Wei" "name": "Kelly Qu"
}, },
{ {
"name": "Lila Hoang" "name": "Lila Hoang"
}, },
{ {
"name": "Prabhsharan Singh Sethi", "name": "Lucy Qi"
"image": "/images/team/PrabhsharanSinghSethi.jpeg"
}, },
{ {
"name": "Aaryan Shroff", "name": "Cadey Chen",
"role": "Advisor"
},
{
"name": "Rachel Ma",
"role": "Advisor" "role": "Advisor"
} }
] ]

View File

@ -0,0 +1,31 @@
[
{
"name": "Roger Cao",
"role": "Team Lead"
},
{
"name": "Amy Wang"
},
{
"name": "Eric Sheen"
},
{
"name": "Gordon Lin"
},
{
"name": "Logan Maier"
},
{
"name": "Naman Sood"
},
{
"name": "Laura Nguyen",
"role": "Advisor"
},
{
"name": "Sat Arora"
},
{
"name": "Siimar Leen Kaur"
}
]

View File

@ -1,22 +1,34 @@
[ [
{ {
"name": "Marcus Chan", "name": "Prabhav Khera",
"role": "Team Lead" "role": "Team Lead"
}, },
{ {
"name": "Justin Young" "name": "Fan Yang",
"role": "Team Lead"
}, },
{ {
"name": "Prabhav Khera" "name": "Patrick Huynh"
}, },
{ {
"name": "Fan Yang" "name": "Rosanne Zhu"
}, },
{ {
"name": "Richard Fan" "name": "Andy Si"
}, },
{ {
"name": "Laura Nguyen", "name": "David Gan"
"role": "Advisor" },
{
"name": "Edmond Li"
},
{
"name": "Di Nguyen"
},
{
"name": "Priyanshu Sharma"
},
{
"name": "Marcus Chan"
} }
] ]

View File

@ -1,44 +1,66 @@
[ [
{
"name": "Andrea Ma",
"role": "Team Lead"
},
{
"name": "Nicholas Tao",
"role": "Team Lead"
},
{
"name": "Stella Tian"
},
{
"name": "Zhehai Zhang"
},
{
"name": "Jonathan Shanmuganantham"
},
{
"name": "Angeline Garapati"
},
{
"name": "Harshitha Durai"
},
{
"name": "Samuel Bai"
},
{
"name": "Carter Moore"
},
{
"name": "Peter Lim"
},
{
"name": "Manasva Katyal"
},
{
"name": "Sydnie Chau"
},
{ {
"name": "Sarah Wilson", "name": "Sarah Wilson",
"role": "Team Lead" "role": "Advisor"
}, },
{ {
"name": "Siting Ban", "name": "Anthony Wang",
"role": "Team Lead" "role": "Advisor"
}, },
{ {
"name": "Layne Lim" "name": "Aditya Bang"
},
{
"name": "Vaaranan Yogalingam"
}, },
{ {
"name": "Jason D'Souza" "name": "Jason D'Souza"
}, },
{
"name": "Daniel Su"
},
{
"name": "Evelina Zheng"
},
{
"name": "Vibhor Gautam"
},
{
"name": "Andrea Ma"
},
{ {
"name": "Joseph Perez" "name": "Joseph Perez"
}, },
{ {
"name": "Anthony Wang" "name": "Oliver Mao"
}, },
{ {
"name": "Elaine Han" "name": "Molly Wu"
},
{
"name": "Alston D'Mello"
},
{
"name": "Naman Chhawchharia",
"role": "Advisor"
} }
] ]

View File

@ -0,0 +1,6 @@
---
name: Amol Venkataraman
role: Vice-President
---
Hi! I am Amol. I am currently in my 2A term of Computer Science. I love programming, Math, and Science. Some of my hobbies outside programming include photography, travel, and reading. You should be able to find me in the CS Club office after classes on most days. Feel free to message me on Discord [amolven]. I am always open to making new friends!

View File

@ -1,6 +0,0 @@
---
name: Andrea Ma
role: Assistant Vice President
---
Coming soon!

View File

@ -0,0 +1,6 @@
---
name: Bryan Chen
role: Treasurer
---
Hi, I'm Bryan. I'm a PMATH and C&O major student in my 2A term, and also Treasurer of CSC, meaning I help manage budget allocation and process cheque requests - but I'm usually around in CSC to use it as a hangout and working space. Aside from these things my hobbies include drawing, writing short stories, and I'm a really big Touhou Project fan. I look forward to having a good term with you all!

View File

@ -1,11 +0,0 @@
---
name: Joshua Kim
role: Vice-President
---
Nice to meet you!
- I'm currently on my 3A term of CS, serving as your VP and marketing lead for CSC this term. I've served two terms as a marketing coordinator in F22 and W23.
- There's a lot I want to help CSC achieve, like getting bigger sponsorships, improving the office, and working with more profs for events. Right now, I'm focusing on office improvements. You can check my [platform](https://docs.google.com/document/d/1MaciKr-21Me2nJ3BIkkJCMNPmRw3OleT9vnmu-mdHrY/edit?usp=sharing) out here! Feel free to message me if you don't see something being implemented or have any suggestions :)
- I'm usually in the office, feel free to say hi and ask for stickers!
- My hobbies include skateboarding, rug tufting, playing music, working out. I have a lot of other hobbies but I switch in and out of them :)
- If you want to be in a CSC TikTok/Reels/YouTube Short, message me on Discord at duho#3815 (or find me on the CSC server once Discord gets rid of the \#)!

View File

@ -0,0 +1,6 @@
---
name: Laura Nguyen
role: President
---
Hello, I'm Laura! I'm in the class of CS 2025. My main goals as CSC President are to provide more direction, increase transparency, and facilitate getting to know others. Overall, I hope to resolve issues well and keep things running smoothly. You can usually find me in the CSC office (MC 3036/3037) or on our Discord server. Feel free to reach out to me to talk about anything, and I look forward to having a great term together! :D

View File

@ -0,0 +1,6 @@
---
name: Nathan Chung
role: Systems Administrator
---
Howdy 🤠, Im Nathan. At CSC, I help manage all club infrastructure and services, alongside with other amazing members of the Systems Committee and Terminal Committee. I love all things tech, especially everything AI 😶‍🌫️. I am currently in my 2🅰 term and pursuing a URA related to AI safety and privacy. In my free time, I also enjoy gardening 🌱, playing chess puzzles♟, skiing in the winter (used to be a ski instructor ⛷️) and a variety of other sports 🏌️🏸🏀. Feel free to hit me up for anything (on Discord or Instagram). (Also, FYI I did not GPT this blurb 🥹)

View File

@ -1,6 +0,0 @@
---
name: Raymond Li
role: Systems Administrator
---
Hey there! I'm [Raymond Li](https://raymond.li). I'm in my 3B term of CS. As sysadmin, I lead [syscom](https://csclub.uwaterloo.ca/about/team/#system) and [termcom](https://csclub.uwaterloo.ca/about/team/#terminal) in maintaining all the club infrastructure, including our [machines](https://wiki.csclub.uwaterloo.ca/Machine_List), [mirror](https://mirror.csclub.uwaterloo.ca/stats), [wiki](https://wiki.csclub.uwaterloo.ca), [email service](https://mail.csclub.uwaterloo.ca), [Gitea instance](https://git.csclub.uwaterloo.ca), [TheLounge instance](https://chat.csclub.uwaterloo.ca), [Nextcloud instance](https://files.csclub.uwaterloo.ca), our self-hosted URL shortener (Shlink, csclub.ca), and much much more. If you'd like to try your hand at being a termcom member for a day, try tackling an issue from our [Club Electronic Office (CEO)](https://wiki.csclub.uwaterloo.ca/Ceo)[*](https://git.csclub.uwaterloo.ca/public/pyceo/issues) project! In my spare time, I run open source at CharaChorder, am currently doing a URA modelling pilot skill level with deep learning, and enjoy watching Billions, skiing, and play chess and violin.<br />#btwiusearch (at least until [Linux expires in 2038](https://youtu.be/dQw4w9WgXcQ)).

View File

@ -1,6 +0,0 @@
---
name: Sat Arora
role: President
---
Hi! I am Sat, a CS student on my second co-op term after finishing 2B. Like last term, I want all members of CSC to really have fun and feel included as tech enthusiasts. However, I also want to prioritize tailoring our initiatives towards people feeling fulfilled and/or learning more from each other. After work, you can catch me playing Avalon, hanging around in the CSC Office, cooking some food (hopefully), or reading on cool math and computing concepts. Come say hi sometime! :)

View File

@ -1,16 +0,0 @@
---
name: Leo Shen
role: Systems Administrator
---
HTTP/1.1 302 Found
**Personal-Location**: [https://szclsya.me](https://szclsya.me)
**Syscom-Location**: [https://wiki.csclub.uwaterloo.ca](https://wiki.csclub.uwaterloo.ca)
**Report-To**: [syscom@csclub.uwaterloo.ca](mailto:syscom@csclub.uwaterloo.ca)
**Expires**: Sun, 30 Apr 2023 23:59:59 GMT
"It's a UNIX system, I know this!"

View File

@ -1,18 +1,18 @@
[ [
{ {
"name": "Devin Li", "name": "Devin Yanche Li",
"role": "Team Lead" "role": "Team Lead"
}, },
{ {
"name": "Advait Sangle" "name": "Julien Liang"
}, },
{ {
"name": "Polly Liu" "name": "David Kofman"
}, },
{ {
"name": "Jinal Rajwat" "name": "Josephina Kim"
}, },
{ {
"name": "Jason D'Souza" "name": "Grace Yin"
} }
] ]

View File

@ -1,29 +1,22 @@
[ [
{ {
"name": "Joshua Duho Kim", "name": "Arijit Chowdhury",
"role": "Team Lead", "role": "Team Lead"
"image": "/images/team/JoshuaKim.jpg"
}, },
{ {
"name": "Ameya Soman" "name": "Lila Hoang",
"role": "Team Lead"
}, },
{ {
"name": "Arjit Chowdhury" "name": "Sophia Ho"
},
{
"name": "Siimar Leen Kaur"
},
{
"name": "Martha Mengesha"
}, },
{ {
"name": "Krish Arora" "name": "Krish Arora"
},
{
"name": "Kshama Patel"
},
{
"name": "Lila Hoang"
},
{
"name": "Sabina Gorbachev"
},
{
"name": "Joyce Ye",
"role": "Advisor"
} }
] ]

View File

@ -0,0 +1,77 @@
[
{
"name": "Tiger Ding"
},
{
"name": "Ivy Lei"
},
{
"name": "Nathan Chung"
},
{
"name": "Amy Wang"
},
{
"name": "Andrea Ma"
},
{
"name": "Felix Yang"
},
{
"name": "Gordon Lin"
},
{
"name": "Sean Zhang"
},
{
"name": "Siimar Leen Kaur"
},
{
"name": "Sat Arora"
},
{
"name": "Saurin Patel"
},
{
"name": "Ethan Kwon"
},
{
"name": "Grace Feng"
},
{
"name": "Kevin Cui"
},
{
"name": "Laura Nguyen"
},
{
"name": "Gaurav Talreja"
},
{
"name": "Marcus Chan"
},
{
"name": "Nikki Guo"
},
{
"name": "Raymond Li"
},
{
"name": "Richard Fan"
},
{
"name": "Roger Cao"
},
{
"name": "Shahan Nedadahandeh"
},
{
"name": "Tejas Srikanth"
},
{
"name": "Yi (Justin) Wang"
},
{
"name": "Jessica Ding"
}
]

View File

@ -1,22 +1,25 @@
[ [
{ {
"name": "Daniel Su", "name": "Varuni Gupta",
"role": "Team Lead" "role": "Team Lead"
}, },
{ {
"name": "Gordon Lin" "name": "Siyuan Zhao"
}, },
{ {
"name": "Ryan Mark" "name": "Evelina Zheng"
},
{
"name": "Enming Yang"
}, },
{ {
"name": "Helen Xia" "name": "Helen Xia"
}, },
{ {
"name": "Rami Abdul Rahim" "name": "Gordon Lin"
}, },
{ {
"name": "Bonnie Peng", "name": "Daniel Su",
"role": "Advisor" "role": "Advisor"
} }
] ]

View File

@ -1,39 +1,29 @@
[ [
{ {
"name": "Kevin Cui", "name": "Kim Guo",
"role": "Team Lead" "role": "Team Lead"
}, },
{
"name": "Tiger Ding"
},
{
"name": "Katherine Liu"
},
{ {
"name": "Ethan Kwon" "name": "Ethan Kwon"
}, },
{ {
"name": "Gordon Lin" "name": "Franklin Ramirez"
}, },
{ {
"name": "Harshitha Durai Babu", "name": "Varuni Gupta"
"image": "/images/team/HarshithaDurai.jpg"
}, },
{ {
"name": "Imane Yacoubi", "name": "Imane Yacoubi",
"image": "/images/team/ImaneYacoubi.jpg" "role": "Advisor"
}, },
{ {
"name": "Awab Qureshi" "name": "Gordon Lin",
},
{
"name": "Keane Moraes"
},
{
"name": "Felix Yang"
},
{
"name": "Mayank Mehra"
},
{
"name": "Guneet Bola"
},
{
"name": "Ivy Lei",
"role": "Advisor" "role": "Advisor"
} }
] ]

View File

@ -1,43 +1,21 @@
[ [
{
"name": "Nathan Chung",
"role": "Team Lead"
},
{ {
"name": "Raymond Li" "name": "Raymond Li"
}, },
{ {
"name": "Max Erenberg", "name": "Max Erenberg"
"role": "Alumni"
}, },
{ {
"name": "Andrew Wang", "name": "Yiao Shen"
"image": "/images/team/AndrewWang-Syscom.jpg"
}, },
{ {
"name": "Rio Liu" "name": "Rio Liu"
}, },
{
"name": "Yiao Shen",
"role": "Team Lead"
},
{
"name": "Amin Bandali",
"role": "Alumni"
},
{
"name": "Anthony Brennan",
"role": "Alumni"
},
{ {
"name": "Edwin Zhang" "name": "Edwin Zhang"
},
{
"name": "Elana Hashman",
"role": "Alumni"
},
{
"name": "Jennifer Zhou",
"role": "Alumni"
},
{
"name": "Zachary Seguin",
"role": "Alumni"
} }
] ]

View File

@ -1,10 +1,19 @@
[ [
{ {
"name": "Raymond Li", "name": "Nathan Chung",
"role": "Team Lead" "role": "Team Lead"
}, },
{ {
"name": "Yiao Shen" "name": "Raymond Li",
"role": "Advisor"
},
{
"name": "Max Erenberg",
"role": "Advisor"
},
{
"name": "Yiao Shen",
"role": "Advisor"
}, },
{ {
"name": "Rio Liu" "name": "Rio Liu"
@ -12,29 +21,40 @@
{ {
"name": "Edwin Zhang" "name": "Edwin Zhang"
}, },
{
"name": "Keanu Liwongan"
},
{
"name": "Nicholas Ficara"
},
{ {
"name": "Justin Chung" "name": "Justin Chung"
}, },
{ {
"name": "Sean Zhang" "name": "Yi (Justin) Wang"
}, },
{ {
"name": "Jonathan Leung" "name": "Jonathan Leung"
}, },
{
"name": "Di Nguyen"
},
{
"name": "Vincent Xie"
},
{
"name": "Amol Venkataraman"
},
{
"name": "Eric Li"
},
{
"name": "Ohm Patel"
},
{
"name": "Leon Zhang"
},
{
"name": "Anthony Chen"
},
{ {
"name": "Young Wang" "name": "Young Wang"
}, },
{ {
"name": "Nathan Chung" "name": "Frank Tao"
},
{
"name": "Max Erenberg",
"role": "Advisor"
} }
] ]

View File

@ -1,36 +1,38 @@
[ [
{ {
"name": "Amy Wang", "name": "Darren Lo",
"role": "Team Lead" "role": "Team Lead"
}, },
{ {
"name": "Neil Parikh", "name": "Richard Shuai",
"role": "Advisor" "role": "Advisor"
}, },
{
"name": "Daniel Su"
},
{
"name": "Ryan Zhu"
},
{
"name": "Owen Pan"
},
{ {
"name": "Tejas Srikanth" "name": "Tejas Srikanth"
}, },
{
"name": "Shahan NedaDahandeh",
"role": "Team Lead"
},
{
"name": "Mark Chiu"
},
{ {
"name": "Aditya Thakral", "name": "Aditya Thakral",
"role": "Advisor" "role": "Advisor"
}, },
{ {
"name": "Darren Lo" "name": "Neil Parikh",
"role": "Advisor"
}, },
{ {
"name": "Annie Sun" "name": "Shahan NedaDahandeh",
"role": "Advisor"
}, },
{ {
"name": "Richard Shuai" "name": "Amy Wang",
}, "role": "Advisor"
{
"name": "Ryan Zhu"
} }
] ]

Binary file not shown.

After

Width:  |  Height:  |  Size: 391 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 547 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
images/team/BryanChen.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
images/team/DanielSu.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 420 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

BIN
images/team/LauraNguyen.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 273 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

BIN
images/team/OwenPan.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View File

@ -15,11 +15,14 @@ import {
getMemberImagePath, getMemberImagePath,
} from "@/lib/team"; } from "@/lib/team";
import classProfileData from "../../content/team/class-profile-committee.json";
import designData from "../../content/team/design-team.json"; import designData from "../../content/team/design-team.json";
import discordModsData from "../../content/team/discord-mods-team.json";
import discordData from "../../content/team/discord-team.json"; import discordData from "../../content/team/discord-team.json";
import eventsData from "../../content/team/events-team.json"; import eventsData from "../../content/team/events-team.json";
import externalData from "../../content/team/external-affairs-team.json"; import externalData from "../../content/team/external-affairs-team.json";
import marketingData from "../../content/team/marketing-team.json"; import marketingData from "../../content/team/marketing-team.json";
import officeStaffData from "../../content/team/office-staff.json";
import photographyData from "../../content/team/photography-team.json"; import photographyData from "../../content/team/photography-team.json";
import repsData from "../../content/team/representatives-team.json"; import repsData from "../../content/team/representatives-team.json";
import systemsData from "../../content/team/systems-committee.json"; import systemsData from "../../content/team/systems-committee.json";
@ -159,6 +162,11 @@ export const getStaticProps: GetStaticProps<Props> = async () => {
// Note that rawTeams do not contain image paths of members, even though // Note that rawTeams do not contain image paths of members, even though
// TypeScript thinks that it does. It's just to simplify some code. // TypeScript thinks that it does. It's just to simplify some code.
const rawTeams = [ const rawTeams = [
{
id: "classProfile",
name: "Class Profile",
members: classProfileData,
},
{ {
id: "reps", id: "reps",
name: "Community Representatives", name: "Community Representatives",
@ -174,11 +182,11 @@ export const getStaticProps: GetStaticProps<Props> = async () => {
name: "Discord Bot (CodeyBot) Developers", name: "Discord Bot (CodeyBot) Developers",
members: discordData, members: discordData,
}, },
// { {
// id: "discord", id: "discord",
// name: "Discord Moderators", name: "Discord Moderators",
// members: discordModsData, members: discordModsData,
// }, },
{ {
id: "events", id: "events",
name: "Events", name: "Events",
@ -194,6 +202,11 @@ export const getStaticProps: GetStaticProps<Props> = async () => {
name: "Marketing", name: "Marketing",
members: marketingData, members: marketingData,
}, },
{
id: "officeStaff",
name: "Office Staff",
members: officeStaffData,
},
{ {
id: "photography", id: "photography",
name: "Photography", name: "Photography",

View File

@ -50,6 +50,10 @@
padding-left: 2rem; padding-left: 2rem;
} }
.content details ul {
padding-left: 2rem;
}
@media only screen and (max-width: calc(768rem / 16)) { @media only screen and (max-width: calc(768rem / 16)) {
.page { .page {
margin: calc(30rem / 16) 0; margin: calc(30rem / 16) 0;

88
scripts/updateTeam.py Normal file
View File

@ -0,0 +1,88 @@
# A script that takes in a CSC Contact Info spreadsheet as a .csv and generates the team pages
import argparse
import csv
import json
parser = argparse.ArgumentParser("updateTeam")
parser.add_argument("teamFile", help="The team file as a .csv")
args = parser.parse_args()
file = args.teamFile
# Relative path of team folder
team_dir = '../content/team'
# Read csv file rows
with open(file) as f:
csv_reader = csv.reader(f)
rows = [[val.strip() for val in row] for row in csv_reader]
header = [val.lower() for val in rows[0]]
body = rows[1:]
# Get column number of name, role, and team
name_index = header.index('name')
role_index = header.index('role')
team_index = header.index('team')
# Standardize the team name for lookup later
def format_team_name(team_name):
return '-'.join(team_name.replace('\n', '').lower().split(' '))
# Map team names to their json file name
def team_name_to_file_name(team_name):
file_name_map = {
'bots': 'discord-team',
'design': 'design-team',
'class-profile': 'class-profile-committee',
'discord-mods' : 'discord-mods-team',
'events' : 'events-team',
'external-affairs': 'external-affairs-team',
'marketing': 'marketing-team',
'photography': 'photography-team',
'reps': 'representatives-team',
'syscom': 'systerms-committee',
'termcom': 'terminal-committee',
'web': 'web-committee',
'office-staff': 'office-staff'
}
return file_name_map[team_name]
# For a list of rows of members, generate a list of each members name and role
def generate_team_data(team_members_entries):
return [
{ 'name': entry[name_index],
**({'role': entry[role_index]} if entry[role_index] else {})
}
for entry in filter(lambda entry: entry[name_index] != '', team_members_entries)
]
# Partition the rows by team
def sort_team_entries(entries):
team_entries = {}
curr_team = None
prev_index = 0
for i, entry in enumerate(entries):
if entry[team_index] != "":
curr_team = format_team_name(entry[team_index])
if i + 1 >= len(entries) or entries[i+1][team_index] != "":
team_entries[curr_team] = entries[prev_index:i+1]
prev_index = i+1
return team_entries
all_team_data = {}
sorted_team_entries = sort_team_entries(body)
for team, team_members_entries in sorted_team_entries.items():
all_team_data[team] = generate_team_data(team_members_entries)
# Dump the member lists into the corresponding files
for team_name, team_data in all_team_data.items():
file_name = team_name_to_file_name(team_name)
print(file_name)
with open(f"{team_dir}/{file_name}.json", 'w') as f:
json.dump(team_data, f, indent=2)
f.write('\n')