diff --git a/content/about/constitution/amendments-and-procedures.md b/content/about/constitution/amendments-and-procedures.md index 3d96abb8..2fac36ad 100644 --- a/content/about/constitution/amendments-and-procedures.md +++ b/content/about/constitution/amendments-and-procedures.md @@ -2,8 +2,8 @@ title: Amendments and Procedures --- -1. A proposed constitutional amendment can be initiated by the Executive Council or any thirty (30) members. -2. The proposed amendment shall be announced to all members by email to the members' mailing list. -3. The proposed amendment shall be made available for viewing by all members in the Computer Science Club office. -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. +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. 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 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 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. diff --git a/content/about/constitution/duties-of-officers.md b/content/about/constitution/duties-of-officers.md index 9b0f2c7f..12f0edf7 100644 --- a/content/about/constitution/duties-of-officers.md +++ b/content/about/constitution/duties-of-officers.md @@ -1,27 +1,27 @@ ---- -title: Duties of Officers ---- - -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 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. 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. to assume the duties of the President in the event of the President's absence; - 1. to chair 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 assume those duties of the President that are delegated to them by the President. -1. The duties of the Treasurer shall be: - 1. to collect dues and maintain all financial and membership records; and - 1. to produce a financial or membership statement when requested. -1. The duties of the Assistant Vice-President shall be: - 1. to keep minutes of all Club meetings; - 1. to care for all Club correspondence; and - 1. to manage any persons appointed to internal positions by the Executive. -1. The duties of the System Administrator shall be: - 1. to chair 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 act as a liaison for the CSC with CSCF, IST, and similar organizations. +--- +title: Duties of Officers +--- + +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 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. 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. to assume the duties of the President in the event of the President's absence; + 1. to chair 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 assume those duties of the President that are delegated to them by the President. +1. The duties of the Assistant Vice-President shall be: + 1. to keep minutes of all Club meetings; + 1. to care for all Club correspondence; and + 1. to manage any persons appointed to internal positions by the Executive. +1. The duties of the Treasurer shall be: + 1. to collect dues and maintain all financial and membership records; and + 1. to produce a financial or membership statement when requested. +1. The duties of the System Administrator shall be: + 1. to chair 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 act as a liaison for the CSC with CSCF, IST, and similar organizations. diff --git a/content/about/constitution/executive-council.md b/content/about/constitution/executive-council.md index 615f9b7c..1b40984e 100644 --- a/content/about/constitution/executive-council.md +++ b/content/about/constitution/executive-council.md @@ -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. 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. 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. diff --git a/content/about/constitution/officers.md b/content/about/constitution/officers.md index 6fd9d593..2347bcff 100644 --- a/content/about/constitution/officers.md +++ b/content/about/constitution/officers.md @@ -1,29 +1,31 @@ ---- -title: Officers ---- - -1. The officers of the Club shall be: - 1. President - 1. Vice-President - 1. Treasurer - 1. Assistant Vice-President - 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. 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. 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. 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. 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. 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. 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 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 CRO shall not vote except to break a tie. - 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. 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. 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. 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. +--- +title: Officers +--- + +1. The officers of the Club shall be: + 1. President + 1. Vice-President + 1. Assistant Vice-President + 1. Treasurer + 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. 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. 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. 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. + 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. 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. 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. 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. 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. 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. The CRO shall not vote except to break a tie. + 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. 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. 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. 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. diff --git a/content/about/constitution/revision.md b/content/about/constitution/revision.md index 94291b2c..54f5c664 100644 --- a/content/about/constitution/revision.md +++ b/content/about/constitution/revision.md @@ -2,4 +2,4 @@ title: Revision --- -The latest revision of the constitution is effective May 10, 2023. +The latest revision of the constitution is effective January 11, 2024. diff --git a/content/events/2023/fall/Build-Networks-In-Tech.md b/content/events/2023/fall/Build-Networks-In-Tech.md new file mode 100644 index 00000000..2062a085 --- /dev/null +++ b/content/events/2023/fall/Build-Networks-In-Tech.md @@ -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. + diff --git a/content/events/2024/winter/Csc-Beginning-Of-Term.md b/content/events/2024/winter/Csc-Beginning-Of-Term.md new file mode 100644 index 00000000..fe32abc0 --- /dev/null +++ b/content/events/2024/winter/Csc-Beginning-Of-Term.md @@ -0,0 +1,17 @@ +--- +name: 'CSC Beginning of Term!' +short: 'Kick off the winter term with CSC’s 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 CSC’s 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 don’t 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 + diff --git a/content/get-involved.mdx b/content/get-involved.mdx index eec7b7e3..df7da9e0 100644 --- a/content/get-involved.mdx +++ b/content/get-involved.mdx @@ -1,82 +1,116 @@ -**Everyone at the University of Waterloo is welcome to come to our events and to -use our resources!** Feel free to join our communities and chat with our -members. However, if you want to officially become a member or support our -vision of creating a supportive environment for all computing students, there's -a bunch of ways you can join and help out. +**Everyone is welcome to join our community and participate in our club!** However, by officially becoming a CSC member, you will: +- Get access to all the services available to members. +- Be eligible for free food and prizes at our events. +- Support CSC and enable us to continue organizing awesome events and initiatives in the future. -## 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
- In-person +Details -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 -2. Sign our [Machine Usage Agreement](/resources/machine-usage-agreement) +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: +1. Show your **WatCard**. +2. Pay your **$2 membership fee** for the term. (See below for more details about various methods of payment.) +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 -[services](/resources/services) available to members. +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 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 - -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. +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.
+### Remote +
- Online +Details -Email the CSC Systems Committee at -[membership@csclub.uwaterloo.ca](mailto:membership@csclub.uwaterloo.ca) from your -University of Waterloo email address with the following: +To sign up as a CSC member online: +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. +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**, -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. +**Note:** You will not be signed up as a CSC member until after you have emailed us, even if you have already paid!
-### 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 + +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. + +
+ +### Remote + +
+Details + +#### 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 isn’t readily supported at the moment. Please email membership@csclub.uwaterloo.ca and we will do our best to assist you. + +
+ +## Organizing Committee 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, 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! -\* 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. - Voices concerns/ideas on behalf of the CS community. -#### Website Committee +### Web Committee - Creates functional and modern designs for the CSC website. - 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, 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 yourself and any experience you have with GNU/Linux. -### Elected Roles +## Elected Roles Each term, the CSC holds elections to determine the executive council: diff --git a/content/news/2024/winter/2024-01-12-ozpan-a1.md b/content/news/2024/winter/2024-01-12-ozpan-a1.md new file mode 100644 index 00000000..8a9347fc --- /dev/null +++ b/content/news/2024/winter/2024-01-12-ozpan-a1.md @@ -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) diff --git a/content/news/2024/winter/2024-01-12-ozpan-a2.md b/content/news/2024/winter/2024-01-12-ozpan-a2.md new file mode 100644 index 00000000..431d17b2 --- /dev/null +++ b/content/news/2024/winter/2024-01-12-ozpan-a2.md @@ -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) diff --git a/content/team/class-profile-committee.json b/content/team/class-profile-committee.json new file mode 100644 index 00000000..3faf4963 --- /dev/null +++ b/content/team/class-profile-committee.json @@ -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" + } +] diff --git a/content/team/design-team.json b/content/team/design-team.json index db9e21df..6c3b4094 100644 --- a/content/team/design-team.json +++ b/content/team/design-team.json @@ -1,39 +1,40 @@ [ { - "name": "Cadey Chen", + "name": "Anny Wei", "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": "Kelly Qu" - }, { "name": "Linda Wang" }, { - "name": "Anny Wei" + "name": "Kelly Qu" }, { "name": "Lila Hoang" }, { - "name": "Prabhsharan Singh Sethi", - "image": "/images/team/PrabhsharanSinghSethi.jpeg" + "name": "Lucy Qi" }, { - "name": "Aaryan Shroff", - "role": "Advisor" - }, - { - "name": "Rachel Ma", + "name": "Cadey Chen", "role": "Advisor" } -] \ No newline at end of file +] diff --git a/content/team/discord-mods-team.json b/content/team/discord-mods-team.json new file mode 100644 index 00000000..38464591 --- /dev/null +++ b/content/team/discord-mods-team.json @@ -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" + } +] diff --git a/content/team/discord-team.json b/content/team/discord-team.json index afafe78a..0fffcd86 100644 --- a/content/team/discord-team.json +++ b/content/team/discord-team.json @@ -1,22 +1,34 @@ [ { - "name": "Marcus Chan", + "name": "Prabhav Khera", "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", - "role": "Advisor" + "name": "David Gan" + }, + { + "name": "Edmond Li" + }, + { + "name": "Di Nguyen" + }, + { + "name": "Priyanshu Sharma" + }, + { + "name": "Marcus Chan" } -] \ No newline at end of file +] diff --git a/content/team/events-team.json b/content/team/events-team.json index 63a6b6fd..32216386 100644 --- a/content/team/events-team.json +++ b/content/team/events-team.json @@ -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", - "role": "Team Lead" + "role": "Advisor" }, { - "name": "Siting Ban", - "role": "Team Lead" + "name": "Anthony Wang", + "role": "Advisor" }, { - "name": "Layne Lim" + "name": "Aditya Bang" + }, + { + "name": "Vaaranan Yogalingam" }, { "name": "Jason D'Souza" }, - { - "name": "Daniel Su" - }, - { - "name": "Evelina Zheng" - }, - { - "name": "Vibhor Gautam" - }, - { - "name": "Andrea Ma" - }, { "name": "Joseph Perez" }, { - "name": "Anthony Wang" + "name": "Oliver Mao" }, { - "name": "Elaine Han" - }, - { - "name": "Alston D'Mello" - }, - { - "name": "Naman Chhawchharia", - "role": "Advisor" + "name": "Molly Wu" } -] \ No newline at end of file +] diff --git a/content/team/execs/amol-venkataraman.md b/content/team/execs/amol-venkataraman.md new file mode 100644 index 00000000..ed51c838 --- /dev/null +++ b/content/team/execs/amol-venkataraman.md @@ -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! diff --git a/content/team/execs/andrea-ma.md b/content/team/execs/andrea-ma.md deleted file mode 100644 index 01794abd..00000000 --- a/content/team/execs/andrea-ma.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -name: Andrea Ma -role: Assistant Vice President ---- - -Coming soon! \ No newline at end of file diff --git a/content/team/execs/bryan-chen.md b/content/team/execs/bryan-chen.md new file mode 100644 index 00000000..ca5b9e6b --- /dev/null +++ b/content/team/execs/bryan-chen.md @@ -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! diff --git a/content/team/execs/joshua-kim.md b/content/team/execs/joshua-kim.md deleted file mode 100644 index 0c1f9ee6..00000000 --- a/content/team/execs/joshua-kim.md +++ /dev/null @@ -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 \#)! \ No newline at end of file diff --git a/content/team/execs/laura-nguyen.md b/content/team/execs/laura-nguyen.md new file mode 100644 index 00000000..cb4d65d6 --- /dev/null +++ b/content/team/execs/laura-nguyen.md @@ -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 diff --git a/content/team/execs/nathan-chung.md b/content/team/execs/nathan-chung.md new file mode 100644 index 00000000..7f75443f --- /dev/null +++ b/content/team/execs/nathan-chung.md @@ -0,0 +1,6 @@ +--- +name: Nathan Chung +role: Systems Administrator +--- + +Howdy 🤠, I’m 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 🥹) diff --git a/content/team/execs/raymond-li.md b/content/team/execs/raymond-li.md deleted file mode 100644 index 01a41785..00000000 --- a/content/team/execs/raymond-li.md +++ /dev/null @@ -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.
#btwiusearch (at least until [Linux expires in 2038](https://youtu.be/dQw4w9WgXcQ)). diff --git a/content/team/execs/sat-arora.md b/content/team/execs/sat-arora.md deleted file mode 100644 index 47d084a5..00000000 --- a/content/team/execs/sat-arora.md +++ /dev/null @@ -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! :) diff --git a/content/team/execs/yiao-shen.md b/content/team/execs/yiao-shen.md deleted file mode 100644 index 0d30428a..00000000 --- a/content/team/execs/yiao-shen.md +++ /dev/null @@ -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!" \ No newline at end of file diff --git a/content/team/external-affairs-team.json b/content/team/external-affairs-team.json index dc4eb1b4..b8ac323e 100644 --- a/content/team/external-affairs-team.json +++ b/content/team/external-affairs-team.json @@ -1,18 +1,18 @@ [ { - "name": "Devin Li", + "name": "Devin Yanche Li", "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" } -] \ No newline at end of file +] diff --git a/content/team/marketing-team.json b/content/team/marketing-team.json index 5c7be915..c317f059 100644 --- a/content/team/marketing-team.json +++ b/content/team/marketing-team.json @@ -1,29 +1,22 @@ [ { - "name": "Joshua Duho Kim", - "role": "Team Lead", - "image": "/images/team/JoshuaKim.jpg" + "name": "Arijit Chowdhury", + "role": "Team Lead" }, { - "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": "Kshama Patel" - }, - { - "name": "Lila Hoang" - }, - { - "name": "Sabina Gorbachev" - }, - { - "name": "Joyce Ye", - "role": "Advisor" } -] \ No newline at end of file +] diff --git a/content/team/office-staff.json b/content/team/office-staff.json new file mode 100644 index 00000000..f3e47950 --- /dev/null +++ b/content/team/office-staff.json @@ -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" + } +] diff --git a/content/team/photography-team.json b/content/team/photography-team.json index fb7da5d2..9dc70765 100644 --- a/content/team/photography-team.json +++ b/content/team/photography-team.json @@ -1,22 +1,25 @@ [ { - "name": "Daniel Su", + "name": "Varuni Gupta", "role": "Team Lead" }, { - "name": "Gordon Lin" + "name": "Siyuan Zhao" }, { - "name": "Ryan Mark" + "name": "Evelina Zheng" + }, + { + "name": "Enming Yang" }, { "name": "Helen Xia" }, { - "name": "Rami Abdul Rahim" + "name": "Gordon Lin" }, { - "name": "Bonnie Peng", + "name": "Daniel Su", "role": "Advisor" } -] \ No newline at end of file +] diff --git a/content/team/representatives-team.json b/content/team/representatives-team.json index 0ce8ce54..11dd3e88 100644 --- a/content/team/representatives-team.json +++ b/content/team/representatives-team.json @@ -1,39 +1,29 @@ [ { - "name": "Kevin Cui", + "name": "Kim Guo", "role": "Team Lead" }, + { + "name": "Tiger Ding" + }, + { + "name": "Katherine Liu" + }, { "name": "Ethan Kwon" }, { - "name": "Gordon Lin" + "name": "Franklin Ramirez" }, { - "name": "Harshitha Durai Babu", - "image": "/images/team/HarshithaDurai.jpg" + "name": "Varuni Gupta" }, { "name": "Imane Yacoubi", - "image": "/images/team/ImaneYacoubi.jpg" + "role": "Advisor" }, { - "name": "Awab Qureshi" - }, - { - "name": "Keane Moraes" - }, - { - "name": "Felix Yang" - }, - { - "name": "Mayank Mehra" - }, - { - "name": "Guneet Bola" - }, - { - "name": "Ivy Lei", + "name": "Gordon Lin", "role": "Advisor" } -] \ No newline at end of file +] diff --git a/content/team/systems-committee.json b/content/team/systems-committee.json index 6ef4e94d..c43363bf 100644 --- a/content/team/systems-committee.json +++ b/content/team/systems-committee.json @@ -1,43 +1,21 @@ [ + { + "name": "Nathan Chung", + "role": "Team Lead" + }, { "name": "Raymond Li" }, { - "name": "Max Erenberg", - "role": "Alumni" + "name": "Max Erenberg" }, { - "name": "Andrew Wang", - "image": "/images/team/AndrewWang-Syscom.jpg" + "name": "Yiao Shen" }, { "name": "Rio Liu" }, - { - "name": "Yiao Shen", - "role": "Team Lead" - }, - { - "name": "Amin Bandali", - "role": "Alumni" - }, - { - "name": "Anthony Brennan", - "role": "Alumni" - }, { "name": "Edwin Zhang" - }, - { - "name": "Elana Hashman", - "role": "Alumni" - }, - { - "name": "Jennifer Zhou", - "role": "Alumni" - }, - { - "name": "Zachary Seguin", - "role": "Alumni" } -] \ No newline at end of file +] diff --git a/content/team/terminal-committee.json b/content/team/terminal-committee.json index 7ffa0e7e..ea0d2180 100644 --- a/content/team/terminal-committee.json +++ b/content/team/terminal-committee.json @@ -1,10 +1,19 @@ [ { - "name": "Raymond Li", + "name": "Nathan Chung", "role": "Team Lead" }, { - "name": "Yiao Shen" + "name": "Raymond Li", + "role": "Advisor" + }, + { + "name": "Max Erenberg", + "role": "Advisor" + }, + { + "name": "Yiao Shen", + "role": "Advisor" }, { "name": "Rio Liu" @@ -12,29 +21,40 @@ { "name": "Edwin Zhang" }, - { - "name": "Keanu Liwongan" - }, - { - "name": "Nicholas Ficara" - }, { "name": "Justin Chung" }, { - "name": "Sean Zhang" + "name": "Yi (Justin) Wang" }, { "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": "Nathan Chung" - }, - { - "name": "Max Erenberg", - "role": "Advisor" + "name": "Frank Tao" } -] \ No newline at end of file +] diff --git a/content/team/web-committee.json b/content/team/web-committee.json index 93338606..8fab38f9 100644 --- a/content/team/web-committee.json +++ b/content/team/web-committee.json @@ -1,36 +1,38 @@ [ { - "name": "Amy Wang", + "name": "Darren Lo", "role": "Team Lead" }, { - "name": "Neil Parikh", + "name": "Richard Shuai", "role": "Advisor" }, + { + "name": "Daniel Su" + }, + { + "name": "Ryan Zhu" + }, + { + "name": "Owen Pan" + }, { "name": "Tejas Srikanth" }, - { - "name": "Shahan NedaDahandeh", - "role": "Team Lead" - }, - { - "name": "Mark Chiu" - }, { "name": "Aditya Thakral", "role": "Advisor" }, { - "name": "Darren Lo" + "name": "Neil Parikh", + "role": "Advisor" }, { - "name": "Annie Sun" + "name": "Shahan NedaDahandeh", + "role": "Advisor" }, { - "name": "Richard Shuai" - }, - { - "name": "Ryan Zhu" + "name": "Amy Wang", + "role": "Advisor" } -] \ No newline at end of file +] diff --git a/images/events/2023/fall/1700094272182--Build-Networks-in-Tech.jpg b/images/events/2023/fall/1700094272182--Build-Networks-in-Tech.jpg new file mode 100644 index 00000000..edac1e26 Binary files /dev/null and b/images/events/2023/fall/1700094272182--Build-Networks-in-Tech.jpg differ diff --git a/images/events/2024/winter/1705976921687--BOT.jpg b/images/events/2024/winter/1705976921687--BOT.jpg new file mode 100644 index 00000000..77654071 Binary files /dev/null and b/images/events/2024/winter/1705976921687--BOT.jpg differ diff --git a/images/team/AmolVenkataraman.JPG b/images/team/AmolVenkataraman.JPG new file mode 100644 index 00000000..ca6324db Binary files /dev/null and b/images/team/AmolVenkataraman.JPG differ diff --git a/images/team/BryanChen.png b/images/team/BryanChen.png new file mode 100644 index 00000000..e76c3980 Binary files /dev/null and b/images/team/BryanChen.png differ diff --git a/images/team/DanielSu.jpeg b/images/team/DanielSu.jpeg new file mode 100644 index 00000000..822f6096 Binary files /dev/null and b/images/team/DanielSu.jpeg differ diff --git a/images/team/DanielSu.png b/images/team/DanielSu.png deleted file mode 100644 index a1305080..00000000 Binary files a/images/team/DanielSu.png and /dev/null differ diff --git a/images/team/LauraNguyen.jpg b/images/team/LauraNguyen.jpg deleted file mode 100644 index 352951be..00000000 Binary files a/images/team/LauraNguyen.jpg and /dev/null differ diff --git a/images/team/LauraNguyen.png b/images/team/LauraNguyen.png new file mode 100644 index 00000000..d45dbb9c Binary files /dev/null and b/images/team/LauraNguyen.png differ diff --git a/images/team/NathanChung.jpeg b/images/team/NathanChung.jpeg new file mode 100644 index 00000000..4492d5a6 Binary files /dev/null and b/images/team/NathanChung.jpeg differ diff --git a/images/team/OwenPan.jpg b/images/team/OwenPan.jpg new file mode 100644 index 00000000..ae36a266 Binary files /dev/null and b/images/team/OwenPan.jpg differ diff --git a/images/team/RichardShuai.jpeg b/images/team/RichardShuai.jpeg new file mode 100644 index 00000000..cd1251fe Binary files /dev/null and b/images/team/RichardShuai.jpeg differ diff --git a/images/team/RichardShuai.jpg b/images/team/RichardShuai.jpg deleted file mode 100644 index 59d5f6bf..00000000 Binary files a/images/team/RichardShuai.jpg and /dev/null differ diff --git a/images/team/TejasSrikanth.jpg b/images/team/TejasSrikanth.jpg new file mode 100644 index 00000000..16a9dfe3 Binary files /dev/null and b/images/team/TejasSrikanth.jpg differ diff --git a/pages/about/team.tsx b/pages/about/team.tsx index bf5bef3a..cf448a22 100644 --- a/pages/about/team.tsx +++ b/pages/about/team.tsx @@ -15,11 +15,14 @@ import { getMemberImagePath, } from "@/lib/team"; +import classProfileData from "../../content/team/class-profile-committee.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 eventsData from "../../content/team/events-team.json"; import externalData from "../../content/team/external-affairs-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 repsData from "../../content/team/representatives-team.json"; import systemsData from "../../content/team/systems-committee.json"; @@ -159,6 +162,11 @@ export const getStaticProps: GetStaticProps = async () => { // Note that rawTeams do not contain image paths of members, even though // TypeScript thinks that it does. It's just to simplify some code. const rawTeams = [ + { + id: "classProfile", + name: "Class Profile", + members: classProfileData, + }, { id: "reps", name: "Community Representatives", @@ -174,11 +182,11 @@ export const getStaticProps: GetStaticProps = async () => { name: "Discord Bot (CodeyBot) Developers", members: discordData, }, - // { - // id: "discord", - // name: "Discord Moderators", - // members: discordModsData, - // }, + { + id: "discord", + name: "Discord Moderators", + members: discordModsData, + }, { id: "events", name: "Events", @@ -194,6 +202,11 @@ export const getStaticProps: GetStaticProps = async () => { name: "Marketing", members: marketingData, }, + { + id: "officeStaff", + name: "Office Staff", + members: officeStaffData, + }, { id: "photography", name: "Photography", diff --git a/pages/get-involved.module.css b/pages/get-involved.module.css index 2de14d7a..864522b6 100644 --- a/pages/get-involved.module.css +++ b/pages/get-involved.module.css @@ -50,6 +50,10 @@ padding-left: 2rem; } +.content details ul { + padding-left: 2rem; +} + @media only screen and (max-width: calc(768rem / 16)) { .page { margin: calc(30rem / 16) 0; diff --git a/scripts/updateTeam.py b/scripts/updateTeam.py new file mode 100644 index 00000000..f2423839 --- /dev/null +++ b/scripts/updateTeam.py @@ -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') \ No newline at end of file