diff --git a/frontend/public/data/execs.ts b/frontend/public/data/execs.ts new file mode 100644 index 0000000..c235fc9 --- /dev/null +++ b/frontend/public/data/execs.ts @@ -0,0 +1,45 @@ +// TODO: Combine with portfolios.ts + +export type Exec = { + name: string, + role: string, +}; + +export const EXECS: Exec[] = [ + { + name: "Elizabeth Zhu Chan", + role: "Co-President", + }, + { + name: "Lesley Lu", + role: "Co-President", + }, + { + name: "Ivan Chan", + role: "Secretary", + }, + { + name: "Justin Son", + role: "Treasurer", + }, + { + name: "Sophie Khov", + role: "Arc Delegate", + }, + { + name: "Catherine Kim", + role: "Grievance, Equity, Diversity and Inclusion Officer", + }, + { + name: "Amy Liu", + role: "Vice President (Internals)", + }, + { + name: "Nicole Jiang", + role: "Vice President (Externals)", + }, + { + name: "Matthew Lim", + role: "Vice President (Technicals)", + }, +]; \ No newline at end of file diff --git a/frontend/public/data/portfolios.ts b/frontend/public/data/portfolios.ts new file mode 100644 index 0000000..e46e89d --- /dev/null +++ b/frontend/public/data/portfolios.ts @@ -0,0 +1,256 @@ +export type PortfolioData = { + name: string, + description: string, + members: PortfolioMember[], +}; + +export type PortfolioMember = { + name: string, + role: PortfolioRole, + imageUrl: string; +} + +export enum PortfolioRole { + DIRECTOR = "Director", + SUBCOM = "Subcommittee", +} + +export const PORTFOLIOS: PortfolioData[] = [ + { + name: "Careers", + description: "Facilitates industry sponsor relations, as well as creating events focused on interpersonal development and networking.", + members: [ + { + name: "Eric Kang", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + { + name: "Jasmine Xian", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + { + name: "Max Lee", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + ], + }, + { + name: "Competitions", + description: "Organises a variety of contests to empower students beyond coursework and allow them meet others.", + members: [ + { + name: "Aliff Azlan", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + { + name: "Haibing Wang", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + { + name: "Diego Untalan", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + ], + }, + { + name: "Creative", + description: "Lays the groundwork for CSESoc's aesthetic branding, providing an outlet for creative expression.", + members: [ + { + name: "Anna Wang", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + { + name: "Jordan Djamaan", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + { + name: "Shabinda Sarkaria", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + ], + }, + { + name: "Education", + description: "Teaches interesting technical skills to the community, whether that's through workshops, articles, or programs.", + members: [ + { + name: "Alina Jin", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + { + name: "JJ Roberts-White", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + { + name: "Liam Smith", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + ], + }, + { + name: "Events", + description: "Plans a diverse range of large-scale activities while focusing on creating an enjoyable and fun experiences for all participants!", + members: [ + { + name: "Emma Nguyen", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + { + name: "Jalaj Jain", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + { + name: "Jenny Lee", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + ], + }, + { + name: "HR", + description: "Fosters the internal culture of the internal/external team - bringing people together, encouraging a supportive environment and most of all - memories.", + members: [ + { + name: "Aryan Chauhan", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + { + name: "Edwin Tang", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + { + name: "Jasmine Guan", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + ], + }, + { + name: "IT", + description: "Oversees the development of the CSESoc's internal projects and plays an active role in the technical aspects of our society.", + members: [ + { + name: "Derek Xu", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + { + name: "Dominic Cheung", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + ], + }, + { + name: "Marketing", + description: "Promotes CSESoc on our social media as well as creating supplementary marketing material to engage our audience.", + members: [ + { + name: "Aaron Lee", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + { + name: "Lisa Lin", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + { + name: "Zitian Qin", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + ], + }, + { + name: "Media", + description: "Focuses on creating content for our CSESoc community and beyond to capture our diverse student voice.", + members: [ + { + name: "Dylan Hu", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + { + name: "Gloria Xi", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + { + name: "Leo Ng Maisnam", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + ], + }, + { + name: "Online", + description: "Expands CSESoc's vibrant community into the virtual world, running online events and managing our online spaces to make sure everyone feels welcomed in our community.", + members: [ + { + name: "Amy Tian", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + { + name: "Brandon Tan", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + ], + }, + { + name: "Outreach", + description: "Creates inclusive and approachable events targeted towards overlooked and underrepresented students.", + members: [ + { + name: "Joyce He", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + { + name: "Sapphire Wildie", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + ], + }, + { + name: "Socials", + description: "Organises approachable events targeted towards building an inclusive and welcoming community, to help build long-lasting friendships!", + members: [ + { + name: "Davis Lim", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + { + name: "Jennifer Yu", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + { + name: "Susie Xia", + role: PortfolioRole.DIRECTOR, + imageUrl: "/images/members/blank-pfp.png", + }, + ], + }, +]; \ No newline at end of file diff --git a/frontend/public/images/members/blank-pfp.png b/frontend/public/images/members/blank-pfp.png new file mode 100644 index 0000000..b743738 Binary files /dev/null and b/frontend/public/images/members/blank-pfp.png differ diff --git a/frontend/src/components/About/PortfolioCard.tsx b/frontend/src/components/About/PortfolioCard.tsx new file mode 100644 index 0000000..7160a1b --- /dev/null +++ b/frontend/src/components/About/PortfolioCard.tsx @@ -0,0 +1,37 @@ +// import Image from 'next/image'; +import { PortfolioData } from "@/../public/data/portfolios"; + +interface PortfolioCardProps { + portfolio: PortfolioData, +} + +// NOTE: Profile pictures can be added in the future +const PortfolioCard = ({ portfolio }: PortfolioCardProps) => { + return ( +
+

+ {portfolio.description} +

+ +
+ {portfolio.members.map(member => ( +
+ {/* {`${member.name} */} + +
+

{member.name}

+

{member.role}

+
+
+ ))} +
+
+ ); +} + +export default PortfolioCard; \ No newline at end of file diff --git a/frontend/src/components/About/PortfolioDisplay.tsx b/frontend/src/components/About/PortfolioDisplay.tsx new file mode 100644 index 0000000..d5f05bd --- /dev/null +++ b/frontend/src/components/About/PortfolioDisplay.tsx @@ -0,0 +1,29 @@ +import { useState } from "react"; +import PortfolioCard from "./PortfolioCard"; +import { PORTFOLIOS } from "@/../public/data/portfolios"; + +const PortfolioDisplay = () => { + const [selectedPortfolio, setSelectedPortfolio] = useState("Careers"); + + const names = PORTFOLIOS.map(port => port.name); + + return ( +
+
+ {names.map((name) => ( + + ))} +
+ + port.name === selectedPortfolio) ?? PORTFOLIOS[0]} /> +
+ ) +} + +export default PortfolioDisplay; \ No newline at end of file diff --git a/frontend/src/components/Footer.tsx b/frontend/src/components/Footer.tsx index 961e173..5c75fb0 100644 --- a/frontend/src/components/Footer.tsx +++ b/frontend/src/components/Footer.tsx @@ -5,7 +5,7 @@ import { socialLinks } from '@/../public/data/socialInfos'; const Footer = () => { return (
-
+
diff --git a/frontend/src/pages/about/execs-directors-subcoms.tsx b/frontend/src/pages/about/execs-directors-subcoms.tsx index d769da6..2123dfb 100644 --- a/frontend/src/pages/about/execs-directors-subcoms.tsx +++ b/frontend/src/pages/about/execs-directors-subcoms.tsx @@ -1,6 +1,8 @@ +import PortfolioDisplay from "@/components/About/PortfolioDisplay"; import Layout from "@/components/Layout"; import PageBody from "@/components/PageBody"; import PageTitle from "@/components/PageTitle"; +import { EXECS } from "@/../public/data/execs"; const ExecsDirectorsSubcommitteesPage = () => { return ( @@ -14,237 +16,44 @@ const ExecsDirectorsSubcommitteesPage = () => { Execs are elected annually by CSE students at the end of the preceding year and Directors are selected by Execs.

- The CSESoc Executive and Director team for 2024 is: + The CSESoc Executive and Director team for 2024:

CSESoc Team 2024
-
-

Execs

-
-
    -
  • Elizabeth Zhu Chan - Co-President
  • -
  • Lesley Lu - Co-President
  • -
  • Ivan Chan - Secretary
  • -
  • Justin Son - Treasurer
  • -
  • Sophie Khov - Arc Delegate
  • -
  • Catherine Kim - Grievance, Equity, Diversity and Inclusion Officer
  • -
  • Amy Liu - Vice President (Internals)
  • -
  • Nicole Jiang - Vice President (Externals)
  • -
  • Matthew Lim - Vice President (Technicals)
  • -
-
-
- -
-
-

Careers

-
    -
  • Eric Kang
  • -
  • Jasmine Xian
  • -
  • Max Lee
  • -
-
- -
-

Competitions

-
    -
  • Aliff Azlan
  • -
  • Haibing Wang
  • -
  • Diego Untalan
  • -
-
- -
-

Creative

-
    -
  • Anna Wang
  • -
  • Jordan Djamaan
  • -
  • Shabinda Sarkaria
  • -
-
- -
-

Education

-
    -
  • Alina Jin
  • -
  • JJ Roberts-White
  • -
  • Liam Smith
  • -
-
- -
-

Events

-
    -
  • Emma Nguyen
  • -
  • Jalaj Jain
  • -
  • Jenny Lee
  • -
-
- -
-

HR

-
    -
  • Aryan Chauhan
  • -
  • Edwin Tang
  • -
  • Jasmine Guan
  • -
-
- -
-

IT

-
    -
  • Derek Xu
  • -
  • Dominic Cheung
  • -
-
- -
-

Marketing

-
    -
  • Aaron Lee
  • -
  • Lisa Lin
  • -
  • Zitian Qin
  • -
-
- -
-

Media

-
    -
  • Dylan Hu
  • -
  • Gloria Xi
  • -
  • Leo Ng Maisnam
  • -
-
- -
-

Online

-
    -
  • Amy Tian
  • -
  • Brandon Tan
  • -
-
- -
-

Outreach

-
    -
  • Joyce He
  • -
  • Sapphire Wildie
  • -
-
- -
-

Socials

-
    -
  • Davis Lim
  • -
  • Jennifer Yu
  • -
  • Susie Xia
  • -
-
- -

- Get to know them better here! -

+ {/* EXECS */} +
+

Execs

+
+ {EXECS.map(exec => ( +
+
+

{exec.name}

+

{exec.role}

+
+
+ ))} +
- -
+
{/* PORTFOLIOS */}
-

Subcommitees

+

Directors & Subcommitees

- Subcommittees are the teams that run CSESoc and its events to the benefit of all UNSW Computing students. + Subcommittees are the teams led by Directors that run CSESoc and its events to the benefit of all UNSW Computing students. Click to see the directors of each team!

-
-
-

Careers

-

- Facilitates industry sponsor relations, as well as creating events focused on interpersonal - development and networking. -

-
- -
-

Competitions

-

- Organises a variety of contests to empower students beyond coursework and allow them meet - others. -

-
- -
-

Creative

-

- Lays the groundwork for CSESoc’s aesthetic branding, providing an outlet for creative expression. -

-
- -
-

Education

-

- Teaches interesting technical skills to the community, whether that's through workshops, articles or programs. -

-
- -
-

Events

-

- Plan a diverse range of large-scale activities while focusing on creating an enjoyable and fun experiences for all participants! -

-
-

HR

-

- Fosters the internal culture of the internal/external team - bringing people together, encouraging a supportive environment and most of all - memories. -

-
+ -
-

IT

-

- Oversees the development of the CSESoc’s internal projects and infrastructure. Plays an active role in the technical aspects of our society. -

-
- -
-

Marketing

-

- Promotes CSESoc on our social media as well as create supplementary marketing material to engage our audience. -

-
- -
-

Media

-

- Focuses on creating content for our CSESoc community and beyond to capture our diverse student voice. -

-
- -
-

Online

-

- Expands CSESoc’s vibrant community into the virtual world. Includes running events online and managing our online spaces to make sure everyone feels welcomed in our community. -

-
- -
-

Outreach

-

- Creates inclusive and approachable events targeted towards overlooked and underrepresented students. -

-
- -
-

Socials

-

- Organises approachable events targeted towards building an inclusive and welcoming community, to help build long-lasting friendships! -

-
+

+ Get to know them better here! +