Skip to content

Commit

Permalink
Add all new info plus nomination stuff
Browse files Browse the repository at this point in the history
  • Loading branch information
Respirayson committed Aug 11, 2024
1 parent 990313f commit b765e00
Show file tree
Hide file tree
Showing 14 changed files with 228 additions and 23 deletions.
5 changes: 5 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
"@headlessui/react": "^2.1.2",
"@heroicons/react": "^1.0.6",
"clsx": "^2.1.1",
"comclub-website-2024": "file:",
"date-fns": "^3.6.0",
"framer-motion": "^11.3.21",
"react": "^18.2.0",
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
126 changes: 126 additions & 0 deletions src/pages/elections/Process.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
import React from 'react';
import './index.css';

function ElectionsProcess() {
return (
<div className='w-full mx-auto px-5 py-8 bg-white h-full'>
<div className='flex flex-col items-center process'>
<h1>Nominations</h1>
<p className='text-neutral-500 text-xl mt-3 text-center'>
Learn more about how you can apply today.
</p>
</div>
{/* NOMINATION PROCESS */}
<div className='my-10 md:w-[45%] w-full flex justify-center flex-col mx-auto'>
<p className='text-2xl font-bold mb-4 text-primary'>Nominations Process</p>
<div className='ml-4'>
<ol className='list-decimal space-y-4'>
<li>
Nomination period: <b><u>12 - 18 August 2024 (1200H)</u></b>
</li>
<li>
Only a Club Member<strong className='text-red-600'>*</strong> shall be eligible to be nominated for an election.
</li>
<li>
As a member of the NUS Students' Computing Club, you have 2 options<strong className='text-red-600'>**</strong>:
<ol type='a' className='list-inside ml-8 mt-2 space-y-2' style={{ listStyle: 'lower-alpha' }}>
<li>Run as a Management Committee Member</li>
<li>Run as a NUSSU EXCO Representative</li>
</ol>

</li>
<li>
The Election Committee shall prescribe a procedure for Club Members to follow in order to be nominated for the election. This procedure shall adhere to the following:
<ol type='a' className='list-inside ml-8 mt-2 space-y-1' style={{ listStyle: 'lower-alpha' }}>
<li>Any nomination of a Club Member shall be endorsed by a Proposer and a Seconder who must both be Club Members;</li>
<li>A Club Member shall not be the Proposer or the Seconder for his own nomination;</li>
<li>The Club Member being nominated must accept the nomination in writing before being considered a Nominee.</li>
</ol>
</li>
<li>
You are NOT eligible for this election if you are:
<ol type='a' className='list-inside ml-8 mt-2 space-y-2' style={{ listStyle: 'lower-alpha' }}>
<li>Guilty of a disciplinary offence</li>
<li>Under academic warning or probation</li>
</ol>
</li>
</ol>
<p className='text-red-600 mt-4'><strong>*</strong> All full-time undergraduate students in the School of Computing are members of the NUS Students' Computing Club by default.</p>
<p className='text-red-600 mt-1'><strong>**</strong> You may not run for both positions concurrently.</p>
</div>
</div>

<div className='border-t border-gray-300 my-10 w-full md:w-[48%] mx-auto'></div>

{/* NOMINATION FOR MANAGEMENT COMMITTEE MEMBER */}
<div className='my-10 md:w-[45%] w-full flex justify-center flex-col mx-auto'>
<p className='text-2xl font-bold mb-4 text-primary'>Nomination for Management Committee Member</p>
<div className='ml-4'>
<ol className='list-decimal space-y-4'>
<li>
Candidates are required to submit the following documents to <a href='mailto:[email protected]' className='text-[#e58e26]'><strong>[email protected]</strong></a> by <b><u>18 August 2024, 1200H</u></b>:
<ol type='a' className='list-inside ml-8 mt-2 space-y-2' style={{ listStyle: 'lower-alpha' }}>
<li><a href='/elections/27th Management Committee Nominee Application FormA.docx' target='_blank' className='text-red-600'><strong>Nominee Agreement Form (Form A)</strong></a></li>
<li><a href='/elections/27th Management Committee Nominee Application FormB.docx' target='_blank' className='text-red-600'><strong>Nominee Agreement Form (Form B)</strong></a></li>
</ol>
</li>
<li>
Candidates must declare the primary position they are contesting for. Declaring a secondary position will be optional. A Nominee will not be allowed to change their primary position after the end of the nomination period. A Nominee can change their secondary position up till the Internal Elections.
</li>
</ol>
</div>
</div>

<div className='border-t border-gray-300 my-10 w-full md:w-[48%] mx-auto'></div>

{/* NOMINATION FOR NUSSU EXCO REPRESENTATIVE */}
<div className='my-10 md:w-[45%] w-full flex justify-center flex-col mx-auto'>
<p className='text-2xl font-bold mb-4 text-primary'>Nomination for NUSSU EXCO Representative</p>
<div className='ml-4'>
<ol className='list-decimal space-y-3'>
<li>
Candidates are required to submit the following documents to <a href='mailto:[email protected]' className='text-[#e58e26]'><strong>[email protected]</strong></a> by <b><u>18 August 2024, 1200H</u></b>:
<ol type='a' className='list-inside ml-8 mt-2 space-y-1' style={{ listStyle: 'lower-alpha' }}>
<li><a href='/elections/46th EXCO REPRESENTATIVE NOMINATION FORM.docx' target='_blank' className='text-red-600'><strong>46th EXCO Representative Nomination</strong></a></li>
</ol>
</li>
<li>
Candidates must get an outgoing elected member of the Constituent Club Management Committee to indicate that the candidate has consulted with the member(s) of the Constituent Club Management Committee to sign the nomination form.
</li>
<li>
Consultation will be on the expected roles and duties to be undertaken as a NUSSU Executive Committee Representative. In order to provide a more holistic view of the expected roles and duties, the consultation will be limited to elected members of the Presidential Wing<strong className='text-red-600'>***</strong>
</li>
</ol>
<p className='text-red-600 mt-4'><strong>***</strong> The full list of members can be found in the AY 2024/2025 NUSSU Students' Computing Club Election Standing Orders under the <a href='#documents-section' className='text-blue-600 underline'>documents</a>.</p>
</div>
</div>

<div className='border-t border-gray-300 my-10 mx-auto md:w-[48%] w-full'></div>

{/* CAMPAIGN PROCESS */}
<div className='my-10 md:w-[45%] w-full flex justify-center flex-col mx-auto'>
<p className='text-2xl font-bold mb-4 text-primary'>Campaign Process</p>
<div className='ml-4'>
<ol className='list-decimal space-y-4'>
<li>Campaign period: <b><u>20 - 26 August 2024</u></b></li>
<li>Nominees are to abide by the rules and regulations laid out in the <a href='#documents-section' className='text-blue-600 underline'>Computing Club Election Standing Orders.</a></li>
<li>A live-broadcasted physical campaign speech + Q&A will be held on <b><u>22 - 24 August 2024</u></b>.</li>
<li>All Nominees are required to prepare a set of slides based on the following statements:
<ol className='list-decimal list-inside ml-6 mt-2 space-y-3'>
<li>A general introduction about yourself</li>
<li>Which role do you wish to take up and why?</li>
<li>What relevant past experiences (if any) do you have?</li>
<li>What qualities do you possess that make you suitable for this role?</li>
<li>What are your goals and how do you intend to achieve them?</li>
</ol>
</li>
<li>You may include any additional information that supports your campaign.</li>
<li>More information regarding the physial speech will be released via a confirmation email.</li>
</ol>
</div>
</div>
</div>
);
}

export default ElectionsProcess;
47 changes: 41 additions & 6 deletions src/pages/elections/Regulations.tsx
Original file line number Diff line number Diff line change
@@ -1,17 +1,52 @@
import React from 'react';
import './index.css';
import { regulationsData } from './constants';
import { informationalData, nominationsFormsData, regulationsData } from './constants';

function Regulations() {
function Documents() {
return (
<div className='w-full mx-auto px-5 py-8 bg-white h-full' id='regulations-section'>
<div className='w-full mx-auto px-5 py-8 bg-white h-full' id='documents-section'>
<div className='flex flex-col items-center regulations'>
<h1>Regulations</h1>
<h1>Documents</h1>
<p className='text-neutral-500 text-xl mt-3 text-center'>
Last updated as of 2 August, 2024.
Last updated as of 12 August, 2024.
</p>
</div>
<div className='grid divide-y divide-neutral-200 max-w-xl mx-auto mt-8'>
<p className='text-[#e58e26] text-xl font-semibold mb-2 leading-12'>Nomination Forms</p>
{nominationsFormsData.map((regulation, index) => (
<div key={index} className='py-5 flex items-center'>
<div className='mr-4'>
<i className='fa-solid fa-link' style={{ color: regulation.color }}></i>
</div>
<p className='pt-text'>
<a href={regulation.link} className='text-black no-underline
hover:underline' target='_blank' rel='noopener noreferrer'>
{regulation.title}
</a>
</p>
</div>
))}
</div>

<div className='grid divide-y divide-neutral-200 max-w-xl mx-auto mt-8'>
<p className='text-[#e58e26] text-xl font-semibold mb-2 leading-12'>Informational Docs</p>
{informationalData.map((regulation, index) => (
<div key={index} className='py-5 flex items-center'>
<div className='mr-4'>
<i className='fa-solid fa-link' style={{ color: regulation.color }}></i>
</div>
<p className='pt-text'>
<a href={regulation.link} className='text-black no-underline
hover:underline' target='_blank' rel='noopener noreferrer'>
{regulation.title}
</a>
</p>
</div>
))}
</div>

<div className='grid divide-y divide-neutral-200 max-w-xl mx-auto mt-8'>
<p className='text-[#e58e26] text-xl font-semibold mb-2 leading-12'>Standing Orders and Regulations</p>
{regulationsData.map((regulation, index) => (
<div key={index} className='py-5 flex items-center'>
<div className='mr-4'>
Expand All @@ -30,4 +65,4 @@ function Regulations() {
);
}

export default Regulations;
export default Documents;
7 changes: 6 additions & 1 deletion src/pages/elections/Roles.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import React from 'react';
import './index.css';
import { wingsData } from './constants';
import WindowCard from '../../layout/WindowCard';
import { FaArrowUpRightFromSquare } from "react-icons/fa6";

function Roles() {
return (
Expand All @@ -20,7 +21,7 @@ function Roles() {
<div className='mt-8 mb-4'>
<WindowCard content={
<div className='flex justify-center items-center'>
<img src='/elections/roles.jpg' className='object-cover min-w-40 max-h-96 p-2'></img>
<img src='/elections/roles.jpg' className='object-cover min-w-40 max-h-[30rem] p-2'></img>
</div>
}></WindowCard>
</div>
Expand Down Expand Up @@ -76,6 +77,10 @@ function Roles() {
</div>
))}
</div>
<div className='flex flex-row justify-center items-center mt-4 text-[#e58e26]'>
<a href='/elections/27th Computing Club Elections Info Pamphlet.pdf' target='_blank' className=' font-semibold text-2xl underline'>Find out more</a>
<FaArrowUpRightFromSquare className='ml-2'/>
</div>
</div>
);
};
Expand Down
57 changes: 44 additions & 13 deletions src/pages/elections/constants.js
Original file line number Diff line number Diff line change
Expand Up @@ -108,12 +108,49 @@ export const FAQ = [
},
];

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',
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',
Expand All @@ -122,20 +159,14 @@ export const regulationsData = [
{
title: 'Constituent Club Management Committee Election Regulations',
link: '/elections/Constituent_Club_Management_Committee_Election_Regulations_Rev_Ed.pdf',
color: '#395B9B',
},
{
title:
'AY 2024/2025 NUSSU Students\' Computing Club Election Standing Orders',
link: '/elections/Computing Club 27th MC Election Standing Order AY2425.pdf',
color: '#778beb',
},
{
title:
'Constitution of the National University of Singapore Students\' Union',
link: '/elections/NUSSU_Constitution_approved_by_BOT_on_26072018.pdf',
color: '#93c6c3',
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 = [
Expand Down
2 changes: 1 addition & 1 deletion src/pages/elections/index.css
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
;
}

.faq>h1, .elections .title, .regulations>h1, .officers>h1, .roles>h1 {
.faq>h1, .elections .title, .regulations>h1, .officers>h1, .roles>h1, .process>h1 {
@apply
mx-8
md:mx-64
Expand Down
6 changes: 4 additions & 2 deletions src/pages/elections/index.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import React from 'react';
import Faq from './Faq';
import Timeline from './Timeline';
import Regulations from './Regulations';
import Documents from './Regulations';
import Footer from './Footer';
import Officer from './Officer';
import Roles from './Roles';
import ElectionProcess from './Process';

function Elections() {
return (
Expand All @@ -17,7 +18,8 @@ function Elections() {
</p>
<Timeline />
<Roles />
<Regulations />
<ElectionProcess />
<Documents />
<Officer />
<Faq />
<Footer />
Expand Down

0 comments on commit b765e00

Please sign in to comment.