diff --git a/package-lock.json b/package-lock.json index 6af153f..5121aba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,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", @@ -2348,6 +2349,10 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, + "node_modules/comclub-website-2024": { + "resolved": "", + "link": true + }, "node_modules/commander": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", diff --git a/package.json b/package.json index c9f969b..3fd5ff1 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/public/elections/27th Computing Club Elections Info Pamphlet.pdf b/public/elections/27th Computing Club Elections Info Pamphlet.pdf new file mode 100644 index 0000000..185d341 Binary files /dev/null and b/public/elections/27th Computing Club Elections Info Pamphlet.pdf differ diff --git a/public/elections/27th Management Committee Nominee Application FormA.docx b/public/elections/27th Management Committee Nominee Application FormA.docx new file mode 100644 index 0000000..17894d0 Binary files /dev/null and b/public/elections/27th Management Committee Nominee Application FormA.docx differ diff --git a/public/elections/27th Management Committee Nominee Application FormB.docx b/public/elections/27th Management Committee Nominee Application FormB.docx new file mode 100644 index 0000000..89cbaeb Binary files /dev/null and b/public/elections/27th Management Committee Nominee Application FormB.docx differ diff --git a/public/elections/46th EXCO REPRESENTATIVE NOMINATION FORM.docx b/public/elections/46th EXCO REPRESENTATIVE NOMINATION FORM.docx new file mode 100644 index 0000000..a713f1d Binary files /dev/null and b/public/elections/46th EXCO REPRESENTATIVE NOMINATION FORM.docx differ diff --git a/public/elections/Computing Club 27th MC Election Standing Order AY2425.pdf b/public/elections/AY2024_25_NUS_Students'_Computing_Club_Election_Standing_Orders.pdf similarity index 61% rename from public/elections/Computing Club 27th MC Election Standing Order AY2425.pdf rename to public/elections/AY2024_25_NUS_Students'_Computing_Club_Election_Standing_Orders.pdf index 443a905..38a89ea 100644 Binary files a/public/elections/Computing Club 27th MC Election Standing Order AY2425.pdf and b/public/elections/AY2024_25_NUS_Students'_Computing_Club_Election_Standing_Orders.pdf differ diff --git a/public/elections/Union Election Standing Orders AY24-25.pdf b/public/elections/Union Election Standing Orders AY24-25.pdf new file mode 100644 index 0000000..e7930a7 Binary files /dev/null and b/public/elections/Union Election Standing Orders AY24-25.pdf differ diff --git a/public/elections/roles.jpg b/public/elections/roles.jpg new file mode 100644 index 0000000..958189a Binary files /dev/null and b/public/elections/roles.jpg differ diff --git a/src/pages/elections/Faq.tsx b/src/pages/elections/Faq.tsx index cb18121..3f8426f 100644 --- a/src/pages/elections/Faq.tsx +++ b/src/pages/elections/Faq.tsx @@ -7,7 +7,7 @@ import { FAQ } from './constants'; function Faq() { return (
diff --git a/src/pages/elections/Process.tsx b/src/pages/elections/Process.tsx new file mode 100644 index 0000000..1370762 --- /dev/null +++ b/src/pages/elections/Process.tsx @@ -0,0 +1,126 @@ +import React from 'react'; +import './index.css'; + +function ElectionsProcess() { + return ( +
+
+

Nominations

+

+ Learn more about how you can apply today. +

+
+ {/* NOMINATION PROCESS */} +
+

Nominations Process

+
+
    +
  1. + Nomination period: 12 - 18 August 2024 (1200H) +
  2. +
  3. + Only a Club Member* shall be eligible to be nominated for an election. +
  4. +
  5. + As a member of the NUS Students' Computing Club, you have 2 options**: +
      +
    1. Run as a Management Committee Member
    2. +
    3. Run as a NUSSU EXCO Representative
    4. +
    + +
  6. +
  7. + 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: +
      +
    1. Any nomination of a Club Member shall be endorsed by a Proposer and a Seconder who must both be Club Members;
    2. +
    3. A Club Member shall not be the Proposer or the Seconder for his own nomination;
    4. +
    5. The Club Member being nominated must accept the nomination in writing before being considered a Nominee.
    6. +
    +
  8. +
  9. + You are NOT eligible for this election if you are: +
      +
    1. Guilty of a disciplinary offence
    2. +
    3. Under academic warning or probation
    4. +
    +
  10. +
+

* All full-time undergraduate students in the School of Computing are members of the NUS Students' Computing Club by default.

+

** You may not run for both positions concurrently.

+
+
+ +
+ + {/* NOMINATION FOR MANAGEMENT COMMITTEE MEMBER */} +
+

Nomination for Management Committee Member

+
+
    +
  1. + Candidates are required to submit the following documents to elections@nuscomputing.com by 18 August 2024, 1200H: +
      +
    1. Nominee Agreement Form (Form A)
    2. +
    3. Nominee Agreement Form (Form B)
    4. +
    +
  2. +
  3. + 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. +
  4. +
+
+
+ +
+ + {/* NOMINATION FOR NUSSU EXCO REPRESENTATIVE */} +
+

Nomination for NUSSU EXCO Representative

+
+
    +
  1. + Candidates are required to submit the following documents to elections@nuscomputing.com by 18 August 2024, 1200H: +
      +
    1. 46th EXCO Representative Nomination
    2. +
    +
  2. +
  3. + 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. +
  4. +
  5. + 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*** +
  6. +
+

*** The full list of members can be found in the AY 2024/2025 NUSSU Students' Computing Club Election Standing Orders under the documents.

+
+
+ +
+ + {/* CAMPAIGN PROCESS */} +
+

Campaign Process

+
+
    +
  1. Campaign period: 20 - 26 August 2024
  2. +
  3. Nominees are to abide by the rules and regulations laid out in the Computing Club Election Standing Orders.
  4. +
  5. A live-broadcasted physical campaign speech + Q&A will be held on 22 - 24 August 2024.
  6. +
  7. All Nominees are required to prepare a set of slides based on the following statements: +
      +
    1. A general introduction about yourself
    2. +
    3. Which role do you wish to take up and why?
    4. +
    5. What relevant past experiences (if any) do you have?
    6. +
    7. What qualities do you possess that make you suitable for this role?
    8. +
    9. What are your goals and how do you intend to achieve them?
    10. +
    +
  8. +
  9. You may include any additional information that supports your campaign.
  10. +
  11. More information regarding the physical speech will be released via a confirmation email.
  12. +
+
+
+
+ ); +} + +export default ElectionsProcess; diff --git a/src/pages/elections/Regulations.tsx b/src/pages/elections/Regulations.tsx index 7388eb7..d233235 100644 --- a/src/pages/elections/Regulations.tsx +++ b/src/pages/elections/Regulations.tsx @@ -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 ( -
+
-

Regulations

+

Documents

- Last updated as of 2 August, 2024. + Last updated as of 12 August, 2024.

+

Nomination Forms

+ {nominationsFormsData.map((regulation, index) => ( + + ))} +
+ +
+

Informational Docs

+ {informationalData.map((regulation, index) => ( + + ))} +
+ +
+

Standing Orders and Regulations

{regulationsData.map((regulation, index) => (
@@ -30,4 +65,4 @@ function Regulations() { ); } -export default Regulations; +export default Documents; diff --git a/src/pages/elections/Roles.tsx b/src/pages/elections/Roles.tsx index ce0670e..f501fae 100644 --- a/src/pages/elections/Roles.tsx +++ b/src/pages/elections/Roles.tsx @@ -3,6 +3,8 @@ 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 ( @@ -16,6 +18,13 @@ function Roles() { Learn more about the roles available in the NUS Students' Computing Club.

+
+ + +
+ }> +
{wingsData.map((wing, index) => ( @@ -68,6 +77,10 @@ function Roles() {
))}
+
+ Find out more + +
); }; diff --git a/src/pages/elections/Timeline.tsx b/src/pages/elections/Timeline.tsx index a139f13..82e6b18 100644 --- a/src/pages/elections/Timeline.tsx +++ b/src/pages/elections/Timeline.tsx @@ -3,7 +3,7 @@ import { TimelineEvents } from './constants'; function Timeline() { return ( -
+
diff --git a/src/pages/elections/constants.js b/src/pages/elections/constants.js index 09bf0aa..248f6ef 100644 --- a/src/pages/elections/constants.js +++ b/src/pages/elections/constants.js @@ -1,58 +1,75 @@ export const TimelineEvents = [ { title: 'Nomination Period Starts', - date: '09 Aug 2024, Friday', + date: '12 Aug 2024, Monday', description: 'Nomination period starts for the election of the new committee members.', }, { title: 'Nomination Period Ends', - date: '17 Aug 2024, Friday', + date: '18 Aug 2024, Sunday 12PM', description: - 'The final day for submitting nominations for the election of the new committee members.', + 'The final day for submitting nominations for the election of the new committee members. No further submissions after 12pm.', }, { title: 'Campaigning Period', - date: '19 Aug 2024, Monday - 26 Aug 2024, Monday', + date: '20 Aug 2024, Tuesday - 26 Aug 2024, Monday', description: 'Candidates campaign to gather support from the voters.', }, { - title: 'Cooling Off Day', + 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: 'External Elections', + title: 'MC External Elections', date: '28 Aug 2024, Wednesday - 30 Aug 2024, Friday', description: - 'External elections are held to elect representatives from different groups.', - }, - { - title: 'Results Release of External Elections', - date: 'BY 4 Sep 2024, Tuesday', - description: 'The results of the external elections are announced.', - }, - // { - // 'title': 'Internal Elections', - // 'date': '5 Sep 2024, Thursday to 7 Sep 2024, Saturday', - // 'description': 'Internal elections are held to elect specific roles within the organization.', - // }, - // { - // 'title': 'Results Release of Internal Elections', - // 'date': 'BY 13 Sep 2024, Friday', - // '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 September 2021', - // 'description': 'The first council meeting of the 46th NUSSU Council to outline the agenda for the new term.', - // }, + '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 = [ @@ -91,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', @@ -105,18 +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 = [ @@ -158,9 +208,7 @@ export const wingsData = [ }, { name: 'Director of Publicity', - subRoles: [ - 'Deputy Director of Publicity', - ], + subRoles: ['Deputy Director of Publicity'], }, ], link: 'elections/externalrelations.html', @@ -183,9 +231,10 @@ export const wingsData = [ subRoles: ['Deputy Director of Academic Liaison'], }, { name: 'Director of Community Engagement' }, - { name: 'Director of Rag & Flag', subRoles: [ - 'Deputy Director of Rag & Flag', - ] }, + { + name: 'Director of Rag & Flag', + subRoles: ['Deputy Director of Rag & Flag'], + }, ], link: 'elections/studentdevelopment.html', }, diff --git a/src/pages/elections/index.css b/src/pages/elections/index.css index f10901e..9a61f08 100644 --- a/src/pages/elections/index.css +++ b/src/pages/elections/index.css @@ -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 diff --git a/src/pages/elections/index.tsx b/src/pages/elections/index.tsx index 17abe3b..f5dd3aa 100644 --- a/src/pages/elections/index.tsx +++ b/src/pages/elections/index.tsx @@ -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 ( @@ -16,10 +17,11 @@ function Elections() { today!

- - + + +