diff --git a/hooks/use-outside-click.tsx b/hooks/use-outside-click.tsx new file mode 100644 index 0000000..efb1010 --- /dev/null +++ b/hooks/use-outside-click.tsx @@ -0,0 +1,23 @@ +import React, { useEffect } from "react"; + +export const useOutsideClick = ( + ref: React.RefObject, + callback: Function +) => { + useEffect(() => { + const listener = (event: any) => { + if (!ref.current || ref.current.contains(event.target)) { + return; + } + callback(event); + }; + + document.addEventListener("mousedown", listener); + document.addEventListener("touchstart", listener); + + return () => { + document.removeEventListener("mousedown", listener); + document.removeEventListener("touchstart", listener); + }; + }, [ref, callback]); +}; diff --git a/public/elections/candidates/Mu_Junrong_photo.jpg b/public/elections/candidates/Mu_Junrong_photo.jpg new file mode 100644 index 0000000..f39108a Binary files /dev/null and b/public/elections/candidates/Mu_Junrong_photo.jpg differ diff --git a/public/elections/candidates/chendongjun.jpg b/public/elections/candidates/chendongjun.jpg new file mode 100644 index 0000000..51de330 Binary files /dev/null and b/public/elections/candidates/chendongjun.jpg differ diff --git a/public/elections/candidates/emelynlee.jpg b/public/elections/candidates/emelynlee.jpg new file mode 100644 index 0000000..ce34b9e Binary files /dev/null and b/public/elections/candidates/emelynlee.jpg differ diff --git a/public/elections/candidates/gowri.jpg b/public/elections/candidates/gowri.jpg new file mode 100644 index 0000000..9762918 Binary files /dev/null and b/public/elections/candidates/gowri.jpg differ diff --git a/public/elections/candidates/jhasatwik.jpg b/public/elections/candidates/jhasatwik.jpg new file mode 100644 index 0000000..c500f27 Binary files /dev/null and b/public/elections/candidates/jhasatwik.jpg differ diff --git a/public/elections/candidates/jingxiang.jpeg b/public/elections/candidates/jingxiang.jpeg new file mode 100644 index 0000000..9a0331e Binary files /dev/null and b/public/elections/candidates/jingxiang.jpeg differ diff --git a/public/elections/candidates/jolyn.jpeg b/public/elections/candidates/jolyn.jpeg new file mode 100644 index 0000000..84d4c00 Binary files /dev/null and b/public/elections/candidates/jolyn.jpeg differ diff --git a/public/elections/candidates/liuyuhang.jpg b/public/elections/candidates/liuyuhang.jpg new file mode 100644 index 0000000..4994803 Binary files /dev/null and b/public/elections/candidates/liuyuhang.jpg differ diff --git a/public/elections/candidates/ravi.jpg b/public/elections/candidates/ravi.jpg new file mode 100644 index 0000000..5bdda3c Binary files /dev/null and b/public/elections/candidates/ravi.jpg differ diff --git a/public/elections/candidates/ryanneo.PNG b/public/elections/candidates/ryanneo.PNG new file mode 100644 index 0000000..060df71 Binary files /dev/null and b/public/elections/candidates/ryanneo.PNG differ diff --git a/public/elections/candidates/shananth.jpg b/public/elections/candidates/shananth.jpg new file mode 100644 index 0000000..138d761 Binary files /dev/null and b/public/elections/candidates/shananth.jpg differ diff --git a/public/elections/candidates/sunjiaen.jpg b/public/elections/candidates/sunjiaen.jpg new file mode 100644 index 0000000..dd5ec1c Binary files /dev/null and b/public/elections/candidates/sunjiaen.jpg differ diff --git a/src/App.jsx b/src/App.jsx index 527a9f4..36cb196 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -5,6 +5,7 @@ import { Toaster } from 'react-hot-toast'; import NavigationBar from './layout/NavigationBar'; import Footer from './layout/Footer'; import './App.css'; +import { Candidates } from './pages/elections/Candidates'; function App() { return ( @@ -24,7 +25,10 @@ function App() { } /> } /> - } /> + + } /> + } /> + diff --git a/src/layout/NavigationMenu.tsx b/src/layout/NavigationMenu.tsx index 64cab26..d3ea9a4 100644 --- a/src/layout/NavigationMenu.tsx +++ b/src/layout/NavigationMenu.tsx @@ -12,6 +12,7 @@ function NavigationMenu() { 'Events': '/events', 'Resources': '/resources', 'Elections': '/elections', + 'Candidates': '/elections/candidates', 'Photos': 'https://www.flickr.com/photos/137141057@N04/albums/', }; diff --git a/src/pages/elections/Candidates.tsx b/src/pages/elections/Candidates.tsx new file mode 100644 index 0000000..faba4bb --- /dev/null +++ b/src/pages/elections/Candidates.tsx @@ -0,0 +1,224 @@ +'use client'; +import React, { useEffect, useId, useRef, useState } from 'react'; +import { AnimatePresence, motion } from 'framer-motion'; +import { useOutsideClick } from '../../../hooks/use-outside-click'; +import WindowCard from '../../layout/WindowCard'; +import { cards } from './constants'; + +export function Candidates() { + const [active, setActive] = useState<(typeof cards)[number] | boolean | null>( + null, + ); + const ref = useRef(null); + const id = useId(); + + useEffect(() => { + function onKeyDown(event: KeyboardEvent) { + if (event.key === 'Escape') { + setActive(false); + } + } + + if (active && typeof active === 'object') { + document.body.style.overflow = 'hidden'; + } else { + document.body.style.overflow = 'auto'; + } + + window.addEventListener('keydown', onKeyDown); + return () => window.removeEventListener('keydown', onKeyDown); + }, [active]); + + useOutsideClick(ref, () => setActive(null)); + + const data = cards.sort((a, b) => ('' + a.title).localeCompare(b.title)).map((card, index) => { + const content = ( + <> +
+ + {card.title} + +
+
+ + {card.title} + + + {card.description} + +
+ + {card.ctaText} + +
+
+ + ); + + return ( + setActive(card)} + className='p-4 flex flex-row flex-wrap justify-center + items-center rounded-xl cursor-pointer' + > + + + ); + }); + + return ( +
+

Candidates

+

+ See the candidates running for the NUS Students' Computing Club + Elections today! +

+ + {active && typeof active === 'object' && ( + + )} + + + {active && typeof active === 'object' ? ( +
+ setActive(null)} + > + + + + + {active.title} + + +
+
+
+ + {active.title} + + + {active.description} + + + {active.year} / {active.major} + +
+
+
+ + {typeof active.content === 'function' + ? active.content() + : active.content} + +
+
+
+
+ ) : null} +
+
    + {data} +
+
+ ); +} + +export const CloseIcon = () => { + return ( + + + + + + ); +}; diff --git a/src/pages/elections/constants.js b/src/pages/elections/constants.js deleted file mode 100644 index 59a0f89..0000000 --- a/src/pages/elections/constants.js +++ /dev/null @@ -1,259 +0,0 @@ -export const TimelineEvents = [ - { - title: 'Nomination Period Starts', - date: '12 Aug 2024, Monday', - description: - 'Nomination period starts for the election of the new committee members.', - }, - { - title: 'Nomination Period Ends', - date: '18 Aug 2024, Sunday 12PM', - description: - 'The final day for submitting nominations for the election of the new committee members. No further submissions after 12pm.', - }, - { - title: 'Campaigning Period', - date: '20 Aug 2024, Tuesday - 26 Aug 2024, Monday', - description: 'Candidates campaign to gather support from the voters.', - }, - { - title: 'Cooling Off Day (Computing Club MC External Elections)', - date: '27 Aug 2024, Tuesday', - description: - 'A day for voters to reflect on their choices before voting, with no campaigning allowed.', - }, - { - title: 'MC External Elections', - date: '28 Aug 2024, Wednesday - 30 Aug 2024, Friday', - description: - 'MC External Elections are held to elect representatives for the different wings.', - }, - { - title: 'MC External Elections Results & Cooling Off Day (NUSSU Reps External Elections)', - date: '1 Sep 2024, Sunday', - description: - 'The results of the MC External Elections are announced, along with a cooling-off day for NUSSU Reps External Elections.', - }, - { - title: 'NUSSU Representatives Elections', - date: '2 Sep 2024, Monday', - description: - 'Elections are held to elect representatives for the NUSSU Council.', - }, - { - title: 'NUSSU Reps External Election Results Release', - date: '4 Sep 2024, Wednesday', - description: - 'The results of the external elections for NUSSU Reps are announced.', - }, - { - title: 'Internal Elections', - date: '5 Sep 2024, Thursday - 7 Sep 2024, Saturday', - description: - 'Internal elections are held to elect specific roles within the organization.', - }, - { - title: 'Results Release of Internal Elections', - date: '9 Sep 2024, Monday', - description: - 'The results of the internal elections are announced.', - }, - // { - // title: 'Club Annual General Meeting', - // date: '14 Sep 2024, Saturday (tentative)', - // description: - // 'The annual general meeting of the club to discuss the past year and future plans.', - // }, - // { - // title: '46th NUSSU Council First Council Meeting', - // date: '21-22 Sep 2024', - // description: - // 'The first council meeting of the 46th NUSSU Council to outline the agenda for the new term.', - // }, -]; - -export const FAQ = [ - { - question: 'What are the items I need to prepare?', - answer: - 'Awesome that you\'re considering joining us! You\'ll have to submit the nomination forms to elections@nuscomputing.com together with their related material. If there are no issues with the nomination, candidates can start preparing the publicity materials for their campaign.', - }, - { - question: 'What\'s the commitment like?', - answer: - 'The amount of commitment varies between every role and also depends on the number of initiatives/events you wish to push out. Contact the respective MC members for a clearer understanding of the commitment level. You can reach us at elections@nuscomputing.com!', - }, - { - question: 'What\'re all the roles in Computing Club?', - answer: 'You can find all the roles and their responsibilities below.', - }, - { - question: 'Can I try for multiple roles?', - answer: 'Yes, you can indicate your second choice in the nomination form.', - }, - { - question: 'Can I join other CCAs with Computing Club?', - answer: - 'Yup, you can be part of multiple CCAs in NUS. However, if you are intending to run for President, you cannot be the President of another CCA. We recommend checking your timetable and calendar to ensure there aren\'t any other major commitments that may compromise your best work with us!', - }, - { - question: 'Are there any pre-requisites?', - answer: - 'There is no pre-requisite to be in the Computing Club Management Committee, except that upon election, you are required to perform and learn on the job leadership, management, communication, processes, and procedures of the Union, and day-to-day execution of your portfolio.', - }, - { - question: 'Can I change my decision?', - answer: - 'You can pull out of elections at any point in time, just let us know! The positions you include in your nomination form is not final; you make your decision during the Internal Elections. If you are unsure of which position but want to be a part of the management committee, join us for externals first and decide after!', - }, -]; - -export const nominationsFormsData = [ - { - title: '27th Management Committee Application FormA', - link: '/elections/27th Management Committee Nominee Application FormA.docx', - color: '#778beb', - }, - { - title: '27th Management Committee Application FormB', - link: '/elections/27th Management Committee Nominee Application FormB.docx', - color: '#f19066', - }, - { - title: '46th Exco Representative Nomination Form', - link: '/elections/46th EXCO REPRESENTATIVE NOMINATION FORM.docx', - color: '#395B9B', - }, -]; - -export const informationalData = [ - { - title: - 'AY 2024/2025 NUSSU Students\' Computing Club Election Standing Orders', - link: '/elections/AY2024_25_NUS_Students\'_Computing_Club_Election_Standing_Orders.pdf', - color: '#78e08f', - }, - { - title: 'Computing Club 27th MC Elections Information Pamphlet', - link: '/elections/27th Computing Club Elections Info Pamphlet.pdf', - color: '#93c6c3', - }, -]; - -export const regulationsData = [ - // { - // title: 'Union Elections Standing Orders', - // link: 'assets/elections/regulations/Union_Election_Standing_Orders.pdf', - // color: '#78e08f', - // }, - { - title: 'Union Election Standing Orders', - link: '/elections/Union Election Standing Orders AY24-25.pdf', - color: '#778beb', - }, - { - title: 'NUSSU Executive Committee Election Regulations', - link: '/elections/NUSSU_Executive_Committee_Election_Regulations_Rev_Ed_2021_Mar.pdf', - color: '#f19066', - }, - { - title: 'Constituent Club Management Committee Election Regulations', - link: '/elections/Constituent_Club_Management_Committee_Election_Regulations_Rev_Ed.pdf', - color: '#78e08f', - }, - // { - // title: - // 'Constitution of the National University of Singapore Students\' Union', - // link: '/elections/NUSSU_Constitution_approved_by_BOT_on_26072018.pdf', - // color: '#93c6c3', - // }, -]; - -export const officers = [ - { - name: 'Mervyn Seah', - role: 'Returning Officer', - }, - { - name: 'Jamie Ho', - role: 'Election Officer', - }, - { - name: 'Ng Le Xuan', - role: 'Election Officer', - }, -]; - -export const wingsData = [ - { - title: 'Presidential Wing', - roles: [ - { name: 'President' }, - { name: 'Finance Secretary', subRoles: ['Deputy Finance Secretary'] }, - { name: 'Tech Lead', subRoles: ['Deputy Tech Lead'] }, - { name: 'General Secretary', subRoles: ['Deputy General Secretary'] }, - ], - link: 'elections/presidentialwing.html', - }, - { - title: 'External Relations', - roles: [ - { name: 'Vice President (External Relations)' }, - { - name: 'Director of Marketing', - subRoles: [ - 'Deputy Director of Marketing (Sponsorships)', - 'Deputy Director of Marketing (Merchandise)', - ], - }, - { - name: 'Director of Publicity', - subRoles: ['Deputy Director of Publicity'], - }, - ], - link: 'elections/externalrelations.html', - }, - { - title: 'Internal Relations', - roles: [ - { name: 'Vice President (Internal Relations)' }, - { name: 'Director of Welfare', subRoles: ['Deputy Director of Welfare'] }, - { name: 'Director of Sports', subRoles: ['Deputy Director of Sports'] }, - ], - link: 'elections/internalrelations.html', - }, - { - title: 'Student Development', - roles: [ - { name: 'Vice President (Student Development)' }, - { - name: 'Director of Academic Liaison', - subRoles: ['Deputy Director of Academic Liaison'], - }, - { name: 'Director of Community Engagement' }, - { - name: 'Director of Rag & Flag', - subRoles: ['Deputy Director of Rag & Flag'], - }, - ], - link: 'elections/studentdevelopment.html', - }, - { - title: 'Student Life', - roles: [ - { name: 'Vice President (Student Life)' }, - { - name: 'Director of Freshmen Orientation Projects', - subRoles: [ - 'Deputy Director of Freshmen Orientation Projects', - 'Deputy Director of Freshmen Orientation Projects', - ], - }, - { - name: 'Director of Student Engagement', - subRoles: ['Deputy Director of Student Engagement'], - }, - ], - link: 'elections/studentlife.html', - }, -]; diff --git a/src/pages/elections/constants.jsx b/src/pages/elections/constants.jsx new file mode 100644 index 0000000..4983d7a --- /dev/null +++ b/src/pages/elections/constants.jsx @@ -0,0 +1,627 @@ +export const TimelineEvents = [ + { + title: 'Nomination Period Starts', + date: '12 Aug 2024, Monday', + description: + 'Nomination period starts for the election of the new committee members.', + }, + { + title: 'Nomination Period Ends', + date: '18 Aug 2024, Sunday 12PM', + description: + 'The final day for submitting nominations for the election of the new committee members. No further submissions after 12pm.', + }, + { + title: 'Campaigning Period', + date: '20 Aug 2024, Tuesday - 26 Aug 2024, Monday', + description: 'Candidates campaign to gather support from the voters.', + }, + { + title: 'Cooling Off Day (Computing Club MC External Elections)', + date: '27 Aug 2024, Tuesday', + description: + 'A day for voters to reflect on their choices before voting, with no campaigning allowed.', + }, + { + title: 'MC External Elections', + date: '28 Aug 2024, Wednesday - 30 Aug 2024, Friday', + description: + 'MC External Elections are held to elect representatives for the different wings.', + }, + { + title: 'MC External Elections Results & Cooling Off Day (NUSSU Reps External Elections)', + date: '1 Sep 2024, Sunday', + description: + 'The results of the MC External Elections are announced, along with a cooling-off day for NUSSU Reps External Elections.', + }, + { + title: 'NUSSU Representatives Elections', + date: '2 Sep 2024, Monday', + description: + 'Elections are held to elect representatives for the NUSSU Council.', + }, + { + title: 'NUSSU Reps External Election Results Release', + date: '4 Sep 2024, Wednesday', + description: + 'The results of the external elections for NUSSU Reps are announced.', + }, + { + title: 'Internal Elections', + date: '5 Sep 2024, Thursday - 7 Sep 2024, Saturday', + description: + 'Internal elections are held to elect specific roles within the organization.', + }, + { + title: 'Results Release of Internal Elections', + date: '9 Sep 2024, Monday', + description: + 'The results of the internal elections are announced.', + }, + // { + // title: 'Club Annual General Meeting', + // date: '14 Sep 2024, Saturday (tentative)', + // description: + // 'The annual general meeting of the club to discuss the past year and future plans.', + // }, + // { + // title: '46th NUSSU Council First Council Meeting', + // date: '21-22 Sep 2024', + // description: + // 'The first council meeting of the 46th NUSSU Council to outline the agenda for the new term.', + // }, +]; + +export const FAQ = [ + { + question: 'What are the items I need to prepare?', + answer: + 'Awesome that you\'re considering joining us! You\'ll have to submit the nomination forms to elections@nuscomputing.com together with their related material. If there are no issues with the nomination, candidates can start preparing the publicity materials for their campaign.', + }, + { + question: 'What\'s the commitment like?', + answer: + 'The amount of commitment varies between every role and also depends on the number of initiatives/events you wish to push out. Contact the respective MC members for a clearer understanding of the commitment level. You can reach us at elections@nuscomputing.com!', + }, + { + question: 'What\'re all the roles in Computing Club?', + answer: 'You can find all the roles and their responsibilities below.', + }, + { + question: 'Can I try for multiple roles?', + answer: 'Yes, you can indicate your second choice in the nomination form.', + }, + { + question: 'Can I join other CCAs with Computing Club?', + answer: + 'Yup, you can be part of multiple CCAs in NUS. However, if you are intending to run for President, you cannot be the President of another CCA. We recommend checking your timetable and calendar to ensure there aren\'t any other major commitments that may compromise your best work with us!', + }, + { + question: 'Are there any pre-requisites?', + answer: + 'There is no pre-requisite to be in the Computing Club Management Committee, except that upon election, you are required to perform and learn on the job leadership, management, communication, processes, and procedures of the Union, and day-to-day execution of your portfolio.', + }, + { + question: 'Can I change my decision?', + answer: + 'You can pull out of elections at any point in time, just let us know! The positions you include in your nomination form is not final; you make your decision during the Internal Elections. If you are unsure of which position but want to be a part of the management committee, join us for externals first and decide after!', + }, +]; + +export const nominationsFormsData = [ + { + title: '27th Management Committee Application FormA', + link: '/elections/27th Management Committee Nominee Application FormA.docx', + color: '#778beb', + }, + { + title: '27th Management Committee Application FormB', + link: '/elections/27th Management Committee Nominee Application FormB.docx', + color: '#f19066', + }, + { + title: '46th Exco Representative Nomination Form', + link: '/elections/46th EXCO REPRESENTATIVE NOMINATION FORM.docx', + color: '#395B9B', + }, +]; + +export const informationalData = [ + { + title: + 'AY 2024/2025 NUSSU Students\' Computing Club Election Standing Orders', + link: '/elections/AY2024_25_NUS_Students\'_Computing_Club_Election_Standing_Orders.pdf', + color: '#78e08f', + }, + { + title: 'Computing Club 27th MC Elections Information Pamphlet', + link: '/elections/27th Computing Club Elections Info Pamphlet.pdf', + color: '#93c6c3', + }, +]; + +export const regulationsData = [ + // { + // title: 'Union Elections Standing Orders', + // link: 'assets/elections/regulations/Union_Election_Standing_Orders.pdf', + // color: '#78e08f', + // }, + { + title: 'Union Election Standing Orders', + link: '/elections/Union Election Standing Orders AY24-25.pdf', + color: '#778beb', + }, + { + title: 'NUSSU Executive Committee Election Regulations', + link: '/elections/NUSSU_Executive_Committee_Election_Regulations_Rev_Ed_2021_Mar.pdf', + color: '#f19066', + }, + { + title: 'Constituent Club Management Committee Election Regulations', + link: '/elections/Constituent_Club_Management_Committee_Election_Regulations_Rev_Ed.pdf', + color: '#78e08f', + }, + // { + // title: + // 'Constitution of the National University of Singapore Students\' Union', + // link: '/elections/NUSSU_Constitution_approved_by_BOT_on_26072018.pdf', + // color: '#93c6c3', + // }, +]; + +export const officers = [ + { + name: 'Mervyn Seah', + role: 'Returning Officer', + }, + { + name: 'Jamie Ho', + role: 'Election Officer', + }, + { + name: 'Ng Le Xuan', + role: 'Election Officer', + }, +]; + +export const wingsData = [ + { + title: 'Presidential Wing', + roles: [ + { name: 'President' }, + { name: 'Finance Secretary', subRoles: ['Deputy Finance Secretary'] }, + { name: 'Tech Lead', subRoles: ['Deputy Tech Lead'] }, + { name: 'General Secretary', subRoles: ['Deputy General Secretary'] }, + ], + link: 'elections/presidentialwing.html', + }, + { + title: 'External Relations', + roles: [ + { name: 'Vice President (External Relations)' }, + { + name: 'Director of Marketing', + subRoles: [ + 'Deputy Director of Marketing (Sponsorships)', + 'Deputy Director of Marketing (Merchandise)', + ], + }, + { + name: 'Director of Publicity', + subRoles: ['Deputy Director of Publicity'], + }, + ], + link: 'elections/externalrelations.html', + }, + { + title: 'Internal Relations', + roles: [ + { name: 'Vice President (Internal Relations)' }, + { name: 'Director of Welfare', subRoles: ['Deputy Director of Welfare'] }, + { name: 'Director of Sports', subRoles: ['Deputy Director of Sports'] }, + ], + link: 'elections/internalrelations.html', + }, + { + title: 'Student Development', + roles: [ + { name: 'Vice President (Student Development)' }, + { + name: 'Director of Academic Liaison', + subRoles: ['Deputy Director of Academic Liaison'], + }, + { name: 'Director of Community Engagement' }, + { + name: 'Director of Rag & Flag', + subRoles: ['Deputy Director of Rag & Flag'], + }, + ], + link: 'elections/studentdevelopment.html', + }, + { + title: 'Student Life', + roles: [ + { name: 'Vice President (Student Life)' }, + { + name: 'Director of Freshmen Orientation Projects', + subRoles: [ + 'Deputy Director of Freshmen Orientation Projects', + 'Deputy Director of Freshmen Orientation Projects', + ], + }, + { + name: 'Director of Student Engagement', + subRoles: ['Deputy Director of Student Engagement'], + }, + ], + link: 'elections/studentlife.html', + }, +]; + + +export const cards = [ + { + id: 1, + description: 'Finance Secretary Candidate', + title: 'Chen Dong Jun', + src: '/elections/candidates/chendongjun.jpg', + ctaText: 'View More', + year: 'Year 1', + major: 'Computer Science', + content: () => { + return ( +

+ Hi, my name is Dong Jun, a Y1 CS major and I am running for Finance + Secretary. Finance security and independence has been something that I + care about deeply and I hope to be able to contribute in a related way + to SoC. Having worked at an admin job in a construction company + before, I have developed analytical and organization skills that can + serve as a foundation for the role. Regardless of past experience, I + believe in perpetual improvement and would strive to learn even more + from my peers and seniors. I believe that my meticulous nature and + willingness to work hard would be instrumental in ensuring the + accuracy of financial reports and the success of SoC projects. I aim + to optimise budgetary processes so that our community can get more + with less expenditure. Let me show you how less is more. +

+ ); + }, + }, + { + id: 2, + description: 'Director, Rag and Flag Candidate', + title: 'Choong Jing Xiang', + src: '/elections/candidates/jingxiang.jpeg', + ctaText: 'View More', + year: 'Year 1', + major: 'Computer Science', + content: () => { + return ( +

+ Hello everyone, I’m Choong Jing Xiang, a first-year Computer Science + student here at the School of Computing. Before starting university, I + was excited about all the new learning opportunities and unique + experiences NUS offers, but at the same time, I felt apprehensive as + this was so different from everything that I know and I believe many + of you share the same sentiments. However, through the Freshmen + Orientation Programs and Rag and Flag, I felt an incredible sense of + welcome and belonging within the SoC family which helped me better + transition into university life. If I were to be elected as the + Director of Rag and Flag, my goal is to give back to the school and + the student body as well as provide this unique experience to the next + batch of freshmen to help make them feel at home. And of course, + Computing Rag and Flag Overall Champion 2025? +

+ ); + }, + }, + { + id: 3, + description: 'Vice-President (External Relations) Candidate', + title: 'Lee Miao En Emelyn', + src: '/elections/candidates/emelynlee.jpg', + ctaText: 'View More', + year: 'Year 2', + major: 'Computer Science', + content: () => { + return ( +

+ Hi! I’m Emelyn and I’m running for the position of Vice-President + External Relations (VP ER). The three words that describe me are + earnest, mindful, and steadfast. I care deeply about our community, + and no matter the situation, I will always have your best interests at + heart. I believe strongly in being fully present and in giving my time + and attention to the problem at hand. My goal is to provide the + unyielding strength you need to navigate difficult situations. The + role of VP ER is an outward-facing one that requires one to + communicate with external parties on behalf of SOC. I believe that in + this position, it’s essential to consistently strive for outcomes that + benefit the students while standing firm when challenges arise. If + elected, I will dedicate myself to forging valuable and meaningful + connections that truly benefit our community. +

+ ); + }, + }, + { + id: 4, + description: 'President Candidate', + title: 'Liu YuHang', + src: '/elections/candidates/liuyuhang.jpg', + ctaText: 'View More', + year: 'Year 1', + major: 'Computer Science', + content: () => { + return ( +

+ Dare to reach the highest ! As an experienced campus leader, an + education business boss(&CEO) leading 172 employees, and a prominent + Information Olympiad competitor, I dare to reach the highest and run + for Computing Club’s President. I am ready to stear SoC family to a + promising future with my great passion, effective communication and + practical actions. +

+ ); + }, + }, + { + id: 5, + description: 'Vice-President (Internal Relations) Candidate', + title: 'Mu Junrong', + src: '/elections/candidates/Mu_Junrong_photo.jpg', + ctaText: 'View More', + year: 'Year 1', + major: 'Computer Science', + content: () => { + return ( +

+ Hi SoC! I am Junrong. As a candidate for Vice President (Internal + Relations) and Director of Welfare, I am committed to serving you and + enhancing your experience at SoC. I aim to create a more supportive, + inclusive and vibrant community in SoC through engaging sports and + cultural events, along with welfare initiatives that address your + needs and reduce stress. Whether you are an introvert or extrovert, a + local buddy or international friend, there is always something for + you. SoC will be your second home, your strongest pillar of support + and the place to unleash your potential. With my experience in the + Students’ Council where I served as the House Captain and led many + meaningful initiatives, I have developed strong event planning and + collaboration skills to serve you. I will be your loyal listener and + strongest supporter, turning your ideas into actions. With your + support, I am ready to make your SoC journey fulfilling and memorable! +

+ ); + }, + }, + { + id: 6, + description: 'Director, FOP Candidate', + title: 'Gowri Sumesh Menon', + src: '/elections/candidates/gowri.jpg', + ctaText: 'View More', + year: 'Year 1', + major: 'Computer Science', + content: () => { + return ( +

+ I am someone who enjoys meeting and working with new people. I have + been involved in orientation projects in school and junior college + many times and truly enjoy the process of getting to know someone new + and helping to ease them into a new community. Despite my interest in + student engagement and my leadership experiences in council, I have + never taken on such a big role before. Which is why I believe that + becoming the FOPD will help me venture outside my comfort zone and + explore my interests. I am aware that as FOPD, I am going to be + entrusted with many responsibilities and put under pressure many + times, but I believe that I will be able to fulfill the role well. I + am coming into this election to learn and regardless of my role in + FOP, I hope to take back many life lessons and experiences with me. +

+ ); + }, + }, + { + id: 7, + description: 'Director, FOP Candidate', + title: 'Ryan Neo', + src: '/elections/candidates/ryanneo.PNG', + ctaText: 'View More', + year: 'Year 1', + major: 'Computer Science', + content: () => { + return ( +

+ Hello! I am Ryan Neo, a Year 1 Computer Science student. I wish to + join the Management Committee because of my passion for serving and + representing the student body. I take great pride in my leadership + capabilities and believe I would be well-suited to be your voice and + instil change for the betterment of all students. Particularly, I am + running for the role of Director, Freshmen Orientation Projects. + Having attended orientation myself, I had an incredibly great time and + recognised the importance of being able to execute such camps where we + assimilate students into their new home of SoC. These are the most + crucial touchpoints where freshmen get to befriend their peers and + seniors, uniting SoC across different levels. I hope to continue the + good work of my predecessors, striving to provide fun and memorable + experiences for our freshmen, making them feel welcomed and + cultivating our shared sense of identity. +

+ ); + }, + }, + { + id: 8, + description: 'Finance Secretary Candidate', + title: 'Sun Jiaen', + src: '/elections/candidates/sunjiaen.jpg', + ctaText: 'View More', + year: 'Year 2', + major: 'Computer Science', + content: () => { + return ( +

+ Hi, I'm Sun Jiaen, a Year 2 Computer Science student. Previously, I + was in Year 1 of Business Analytics. I'm running for a position in the + Computing Club since it has significantly enriched my university + experience. From the vibrant orientation events to the thoughtful exam + goodie bags, the club’s commitment to student welfare has deeply + impressed me. I chose to run for the Deputy Finance Secretary since I + believe that I possess the required qualities to do justice to the + position. My experience as an Amazon logistics executive intern has + equipped me with the necessary organizational and financial skills to + excel in this role. Additionally, my involvement in NUS Biathlon + committee as marketing executive has provided me with valuable + experience in securing sponsorships and managing partnerships. As a + Deputy Finance Secretary, I will diligently manage the club’s budget, + ensuring accurate financial records and timely submission of all + required reports. I will also prioritize securing funds and allocating + resources that are actually needed to support the vibrant activities + that make our SoC community thrive. Please vote for me! +

+ ); + }, + }, + { + id: 9, + description: 'Director, Welfare Candidate', + title: 'Ravichandran Gokul', + src: '/elections/candidates/ravi.jpg', + ctaText: 'View More', + year: 'Year 1', + major: 'Computer Science', + content: () => { + return ( +

+ I am Ravichandran Gokul, a Year 1 Computer Science student, and I am + running for Director of Welfare under the Internal Relations wing of + Management Committee in Computing Club. What led me to run for this + position is a vision; one that I hope will come to fruition for + AY2024/2025. University life is filled with numerous trials and + tribulations which will take a toll on all of us students from time to + time. My goal is to reinforce a culture where students feel free to + feed off each other’s energy and foster a strong sense of community in + the process. To achieve this, I aim to conduct interactive and + engaging welfare activities and prepare welfare arrangements in timely + intervals. I aim to seek a greater understanding of the student + populace so that these actions could have the greatest impact + possible. Together, we can enhance and deepen our welfare and + satisfaction! +

+ ); + }, + }, + { + id: 10, + description: 'Vice-President (Internal Relations) Candidate', + title: 'Jha Satwik', + src: '/elections/candidates/jhasatwik.jpg', + ctaText: 'View More', + year: 'Year 2', + major: 'Computer Science', + content: () => { + return ( +

+ My journey with Com Club began with the unforgettable experience of + FSC ’23, which inspired me to join this vibrant community. Over the + past year, I have had the privilege of organizing events like the exam + welfare pack distribution and the archery funshoot ’24, all of which + have allowed me to forge strong connections and create lasting + memories with fellow members and classmates. As Vice President of + Internal Relations, my goal is to foster the same spirit of fun, + friendship, and enrichment that I have enjoyed. I am committed to + enhancing the internal culture of Com Club by organizing engaging + events, promoting inclusivity, and building stronger bonds among + students. Together, we can create an environment where everyone feels + valued, connected, and excited to participate. +

+ ); + }, + }, + { + id: 11, + description: 'Vice-President (Student Life) Candidate', + title: 'Jolyn Leow', + src: '/elections/candidates/jolyn.jpeg', + ctaText: 'View More', + year: 'Year 2', + major: 'Computer Science', + content: () => { + return ( +

+ Hello! I am Jolyn Leow, aspiring to be your next Vice President + (Student Life). I am very passionate in serving the SoC community, + which has shaped my university life positively. Having been actively + involved in organizing one of the Computing Orientation camps this + year, I have gained valuable insights into event management and + student engagement. Leveraging on this significant experience, I am + committed to creating a vibrant and supportive environment, where + every student can connect, thrive and create lasting memories in SoC. + My dedication to serving the student population, coupled with my + experience and understanding of student needs, equips meto better + enhance the student life and experience in SoC. Together with the + Management Committee members, I hope to build an SoC that is more than + just an academic hub, but also an inclusive and welcoming community + where every student feels at home. +

+ ); + }, + }, + { + id: 12, + description: 'Director, Welfare Candidate', + title: 'Shananth Sivakumar', + src: '/elections/candidates/shananth.jpg', + ctaText: 'View More', + year: 'Year 1', + major: 'Computer Science', + content: () => { + return ( +

+ I am running for the role of Welfare IC in the Computing Club since I + am extremely passionate about creating a well bonded computing family. + Given the endless assignments and heavy workload, students sometimes + do not feel valued and heard. Therefore, I aim to create an open + communication channel whereby everyone can share their opinions on + what could aid in the betterment of their life so that I can do my + best in making it happen. Furthermore, I am also committed to + embedding welfare with events which encourage social connection while + advocating for a respectful and inclusive culture. Together, we can + ensure that everyone not only excels academically but also feels + supported and empowered during this journey. You guys can help me turn + this vision into reality, ensuring that this isn’t just a place for us + to learn but also to thrive. +

+ ); + }, + }, + { + id: 13, + description: 'General Secretary Candidate', + title: 'Parama Roy Poja', + src: '/elections/candidates/.jpg', + ctaText: 'View More', + year: 'Year 2', + major: 'Business Analytics', + content: () => { + return ( +

+

+ ); + }, + }, + { + id: 14, + description: 'President Candidate', + title: 'Raeeda Ibnat Hossain', + src: '/elections/candidates/.jpg', + ctaText: 'View More', + year: 'Year 2', + major: 'Computer Science', + content: () => { + return ( +

+

+ ); + }, + }, +];