From be7d42809b45e8aad67bb4f4224cae403aedc081 Mon Sep 17 00:00:00 2001 From: burtonjong Date: Sun, 12 Oct 2025 19:16:01 -0600 Subject: [PATCH 01/16] test: deploy prod --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 5dc39239..824391ee 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,8 @@ Ensure you run `npm i` in the root of the repo before continuing. Please respond - Note: The Hackathon Management Tool's officialy-supported package manager shall be `npm`. Although you can use others, please be advised there will be limited support if you encounter issues. +- Install prettier + ### Amplify Backend Setup https://docs.amplify.aws/gen2/start/account-setup/ From ab15b0bc25850e4f860d281c1fb58d512c51ae37 Mon Sep 17 00:00:00 2001 From: burtonjong Date: Sun, 12 Oct 2025 20:58:41 -0600 Subject: [PATCH 02/16] update prod --- .../BusinessLogic/UpsertHackathon/handler.ts | 33 +++++++++++++++---- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/amplify/function/BusinessLogic/UpsertHackathon/handler.ts b/amplify/function/BusinessLogic/UpsertHackathon/handler.ts index 202fbefa..ae945f3c 100644 --- a/amplify/function/BusinessLogic/UpsertHackathon/handler.ts +++ b/amplify/function/BusinessLogic/UpsertHackathon/handler.ts @@ -106,24 +106,28 @@ export const handler: Handler = async (event) => { const id = user.id; // only delete the participants if (user.role === "Participant") { + // even if the user doesn't exist in cognito, it shouldn't fail const deleteUserCommand = new AdminDeleteUserCommand({ Username: id, UserPoolId: process.env.AMPLIFY_AUTH_USERPOOL_ID as string, }); try { - // Delete the user from Cognito await cognitoClient.send(deleteUserCommand); + console.log(`Deleted user ${id} from Cognito`); } catch (err: any) { - if (err.name !== "UserNotFoundException") { + if (err.name === "UserNotFoundException") { + console.log( + `User ${id} not found in Cognito, skipping Cognito deletion`, + ); + } else { + console.error(`Error deleting user ${id} from Cognito:`, err); throw err; } - // else: ignore, user already deleted } + // even if they don't exist in cognito, try to delete from dynamo try { - // Delete the user from Dynamo - await cognitoClient.send(deleteUserCommand); const { errors } = await client.graphql({ query: deleteUser, variables: { @@ -132,9 +136,14 @@ export const handler: Handler = async (event) => { }, }, }); - if (errors) throw errors; + if (errors) { + console.error(`Error deleting user ${id} from DynamoDB:`, errors); + throw errors; + } + console.log(`Deleted user ${id} from DynamoDB`); } catch (err) { - console.error(err); + console.error(`Failed to delete user ${id} from DynamoDB:`, err); + throw err; } } } @@ -191,10 +200,20 @@ export const handler: Handler = async (event) => { const { data: scoresResponse, errors } = await client.graphql({ query: listScores, }); + if (errors) throw errors; + const scores = scoresResponse.listScores.items; for (const score of scores) { + // check if we have the required keys for deletion + // (createdAt/updatedAt can be null, but we need teamId/judgeId to delete) + if (!score.teamId || !score.judgeId) { + console.warn(`Skipping corrupted score: ${JSON.stringify(score)}`); + continue; + } + // teamId is the partition key + // Verify score has required fields before attempting delete const teamId = score.teamId; const judgeId = score.judgeId; const { errors } = await client.graphql({ From 5b5cbeb7a9a73ceab709f32a7957198672061e3f Mon Sep 17 00:00:00 2001 From: burtonjong Date: Mon, 13 Oct 2025 09:49:40 -0600 Subject: [PATCH 03/16] fix: list users groups permissions and function cleanup --- amplify/auth/resource.ts | 2 +- .../BusinessLogic/UpsertHackathon/handler.ts | 114 ++++++++++++------ 2 files changed, 80 insertions(+), 36 deletions(-) diff --git a/amplify/auth/resource.ts b/amplify/auth/resource.ts index 2824a2b5..fad17bf4 100644 --- a/amplify/auth/resource.ts +++ b/amplify/auth/resource.ts @@ -20,7 +20,7 @@ export const auth = defineAuth({ .resource(AddUserToGroup) .to(["addUserToGroup", "removeUserFromGroup", "listGroupsForUser"]), - allow.resource(UpsertHackathon).to(["deleteUser"]), + allow.resource(UpsertHackathon).to(["deleteUser", "listUsersInGroup"]), ], loginWith: { email: { diff --git a/amplify/function/BusinessLogic/UpsertHackathon/handler.ts b/amplify/function/BusinessLogic/UpsertHackathon/handler.ts index ae945f3c..d0a370d3 100644 --- a/amplify/function/BusinessLogic/UpsertHackathon/handler.ts +++ b/amplify/function/BusinessLogic/UpsertHackathon/handler.ts @@ -20,6 +20,7 @@ import { import { AdminDeleteUserCommand, CognitoIdentityProviderClient, + ListUsersInGroupCommand, } from "@aws-sdk/client-cognito-identity-provider"; import type { Schema } from "../../../data/resource"; @@ -95,8 +96,16 @@ export const handler: Handler = async (event) => { // Reset Users if (resettingUsers) { console.log("resetting all users"); + + // a note here + // - when we delete users we have to delete them from both cognito and dynamo + // - we only want to delete participants + // - it doesn't really matter that we delete them separately since the cognito id is different than the dynamo id const { data: usersResponse, errors } = await client.graphql({ query: listUsers, + variables: { + filter: { role: { eq: "Participant" } }, + }, }); if (errors) throw errors; @@ -104,45 +113,80 @@ export const handler: Handler = async (event) => { const users = usersResponse.listUsers.items; for (const user of users) { const id = user.id; - // only delete the participants - if (user.role === "Participant") { - // even if the user doesn't exist in cognito, it shouldn't fail + try { + const { errors } = await client.graphql({ + query: deleteUser, + variables: { + input: { + id: id, + }, + }, + }); + if (errors) { + console.error(`Error deleting user ${id} from DynamoDB:`, errors); + throw errors; + } + console.log(`Deleted user ${id} from DynamoDB`); + } catch (err) { + console.error(`Failed to delete user ${id} from DynamoDB:`, err); + throw err; + } + } + + let cognitoParticipantUsernames: Set = new Set(); + + try { + const cognitoParticipantsCommand = new ListUsersInGroupCommand({ + UserPoolId: process.env.AMPLIFY_AUTH_USERPOOL_ID as string, + GroupName: "Participant", + }); + + const cognitoParticipantsResponse = await cognitoClient.send( + cognitoParticipantsCommand, + ); + + if (cognitoParticipantsResponse.$metadata.httpStatusCode !== 200) { + throw new Error( + `Failed to list users in group Participant: ${JSON.stringify( + cognitoParticipantsResponse, + )}`, + ); + } else if ( + cognitoParticipantsResponse.Users === undefined || + cognitoParticipantsResponse.Users.length === 0 + ) { + throw new Error(`No users found in group Participant`); + } + + cognitoParticipantUsernames = new Set( + (cognitoParticipantsResponse.Users || []) + .map((u) => u.Username) + .filter((username): username is string => !!username), + ); + console.log( + `Found ${cognitoParticipantUsernames.size} participants in Cognito`, + ); + } catch (err) { + console.error(`Failed to list Cognito participants:`, err); + throw err; + } + + for (const username of cognitoParticipantUsernames) { + try { const deleteUserCommand = new AdminDeleteUserCommand({ - Username: id, + Username: username, UserPoolId: process.env.AMPLIFY_AUTH_USERPOOL_ID as string, }); - try { - await cognitoClient.send(deleteUserCommand); - console.log(`Deleted user ${id} from Cognito`); - } catch (err: any) { - if (err.name === "UserNotFoundException") { - console.log( - `User ${id} not found in Cognito, skipping Cognito deletion`, - ); - } else { - console.error(`Error deleting user ${id} from Cognito:`, err); - throw err; - } - } - - // even if they don't exist in cognito, try to delete from dynamo - try { - const { errors } = await client.graphql({ - query: deleteUser, - variables: { - input: { - id: id, - }, - }, - }); - if (errors) { - console.error(`Error deleting user ${id} from DynamoDB:`, errors); - throw errors; - } - console.log(`Deleted user ${id} from DynamoDB`); - } catch (err) { - console.error(`Failed to delete user ${id} from DynamoDB:`, err); + await cognitoClient.send(deleteUserCommand); + console.log(`Deleted user ${username} from Cognito`); + } catch (err: any) { + if (err.name === "UserNotFoundException") { + console.log( + `User ${username} not found in Cognito, skipping Cognito deletion`, + ); + } else { + console.error(`Error deleting user ${username} from Cognito:`, err); throw err; } } From 0d5cfff7846bc94185d59bb221f5b697a837399b Mon Sep 17 00:00:00 2001 From: Burton Jong <108391733+burtonjong@users.noreply.github.com> Date: Sat, 18 Oct 2025 18:40:39 -0600 Subject: [PATCH 04/16] update prod (#243) Co-authored-by: Fiona Truong <151110138+fionaa-truong@users.noreply.github.com> --- public/images/resources/Openstreetmap.png | Bin 0 -> 33845 bytes public/images/resources/carbonInterface.png | Bin 0 -> 37348 bytes public/images/resources/mapbox.png | Bin 0 -> 8218 bytes public/images/resources/openWeather.png | Bin 0 -> 9611 bytes public/images/resources/socrata.png | Bin 0 -> 73249 bytes public/images/resources/syncloop.png | Bin 0 -> 3517 bytes public/images/resources/worldBank.png | Bin 0 -> 5861 bytes src/app/loading.tsx | 9 ++++ src/app/participant/resources/page.tsx | 4 +- .../Dashboard/ImportantInformation.tsx | 4 +- .../Dashboard/NextMealScheduled.tsx | 2 +- src/components/Dashboard/UserBasedNav.tsx | 3 +- src/components/ImportantInfo/carousel.tsx | 19 +++++-- .../ImportantInfo/projectSubmission.tsx | 11 ++-- .../HackathonInformationContainer.tsx | 22 ++++---- src/components/LandingPage/JudgeShowcase.tsx | 3 +- src/components/RedirectIcon.jsx | 27 ++++++++++ src/components/UserProfile/TeamProfile.tsx | 18 +++++-- src/components/resources/resources.tsx | 48 +++++++++++++----- .../teamRegistration/JoinTeamInstructions.tsx | 11 ++-- 20 files changed, 137 insertions(+), 44 deletions(-) create mode 100644 public/images/resources/Openstreetmap.png create mode 100644 public/images/resources/carbonInterface.png create mode 100644 public/images/resources/mapbox.png create mode 100644 public/images/resources/openWeather.png create mode 100644 public/images/resources/socrata.png create mode 100644 public/images/resources/syncloop.png create mode 100644 public/images/resources/worldBank.png create mode 100644 src/app/loading.tsx create mode 100644 src/components/RedirectIcon.jsx diff --git a/public/images/resources/Openstreetmap.png b/public/images/resources/Openstreetmap.png new file mode 100644 index 0000000000000000000000000000000000000000..ec815413db9153d210b15d3b33d6de1378bd5dd3 GIT binary patch literal 33845 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 DB59Iy literal 0 HcmV?d00001 diff --git a/public/images/resources/carbonInterface.png b/public/images/resources/carbonInterface.png new file mode 100644 index 0000000000000000000000000000000000000000..605a78e2e18582603f11c1da43cf6702407d4e13 GIT binary patch literal 37348 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 Ku}c0$#Qy-mb7*h? literal 0 HcmV?d00001 diff --git a/public/images/resources/openWeather.png b/public/images/resources/openWeather.png new file mode 100644 index 0000000000000000000000000000000000000000..8b5194375ec630710b050b622b5da3a83a7a5b51 GIT binary patch literal 9611 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 BG}QnA literal 0 HcmV?d00001 diff --git a/public/images/resources/socrata.png b/public/images/resources/socrata.png new file mode 100644 index 0000000000000000000000000000000000000000..91f9bcbd6c79b451c96cf215186d5e6e62cfa7ed GIT binary patch literal 73249 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 z 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 literal 0 HcmV?d00001 diff --git a/public/images/resources/syncloop.png b/public/images/resources/syncloop.png new file mode 100644 index 0000000000000000000000000000000000000000..18a8a3e71a4f073e24932169e886437193810fc6 GIT binary patch literal 3517 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 vBnHE4g5H + + + ); +} diff --git a/src/app/participant/resources/page.tsx b/src/app/participant/resources/page.tsx index 67b85379..b94dfe6c 100644 --- a/src/app/participant/resources/page.tsx +++ b/src/app/participant/resources/page.tsx @@ -21,13 +21,13 @@ export default function ResourcePage() { src="/svgs/resources/pinkSquiggly.svg" alt="Pink Squiggly" fill - className="pointer-events-none opacity-0 md:mt-[500px] md:opacity-100 lg:mt-[460px] xl:mt-[390px] 2xl:mt-52" + className="pointer-events-none opacity-0 md:mt-[540px] md:opacity-100 lg:mt-[600px] xl:mt-[400px] 2xl:mt-52" /> Orange Squiggly
diff --git a/src/components/Dashboard/ImportantInformation.tsx b/src/components/Dashboard/ImportantInformation.tsx index 41fd30b8..c8b16b6a 100644 --- a/src/components/Dashboard/ImportantInformation.tsx +++ b/src/components/Dashboard/ImportantInformation.tsx @@ -38,13 +38,13 @@ export default async function ImportantInformation() {

Opening Ceremony

Location: {ceremonyDetails.openingCeremonyLocation}

{/*

Time: {formatDate(openingCeremonyDate)}

*/} -

Nov 9, 10:00 AM

+

Nov 8, 10:00 AM

Closing Ceremony

Location: {ceremonyDetails.closingCeremonyLocation}

{/*

Time: {formatDate(closingCeremonyDate)}

*/} -

Nov 10, 5:00 PM

+

Nov 9, 5:30 PM

diff --git a/src/components/Dashboard/NextMealScheduled.tsx b/src/components/Dashboard/NextMealScheduled.tsx index 1ced8c4f..4ee1f9c7 100644 --- a/src/components/Dashboard/NextMealScheduled.tsx +++ b/src/components/Dashboard/NextMealScheduled.tsx @@ -21,7 +21,7 @@ export default function NextMealScheduled() { }; }, }); - const location = "ICT"; + const location = "ENG"; return ( diff --git a/src/components/Dashboard/UserBasedNav.tsx b/src/components/Dashboard/UserBasedNav.tsx index 0cd961e0..79e00f0b 100644 --- a/src/components/Dashboard/UserBasedNav.tsx +++ b/src/components/Dashboard/UserBasedNav.tsx @@ -29,7 +29,8 @@ const navigationMap: Record = { { name: "Dashboard", route: "/participant" }, { name: "Food Ticket", route: "/participant/profile/food-ticket" }, { name: "Important Information", route: "/participant/important-info" }, - { name: "Resources", route: "/participant/resources" }, + // ADD RESOURCES BACK IN NEAR THE HACKATHON DATE + // { name: "Resources", route: "/participant/resources" }, ], }; diff --git a/src/components/ImportantInfo/carousel.tsx b/src/components/ImportantInfo/carousel.tsx index ab6c8318..d98785af 100644 --- a/src/components/ImportantInfo/carousel.tsx +++ b/src/components/ImportantInfo/carousel.tsx @@ -3,6 +3,7 @@ import Image from "next/image"; import Link from "next/link"; import { useState } from "react"; +import RedirectIcon from "../RedirectIcon"; import CarouselInfo from "./carouselCard"; export default function Carousel() { @@ -105,10 +106,20 @@ export default function Carousel() { Don't be afraid to ask for help! {" "} - We have mentors always available in the Discord Server if you need - some help. If you have any other questions regarding the - technicalities of the hackathon, you can find support from Code - the Change YYC members by creating a ticket in the Discord Server. + We have mentors always available in the Hack the Change 2025{" "} + + {" "} + Discord + + if you need some help. If you have any other questions regarding + the technicalities of the hackathon, you can find support from + Code the Change YYC members by creating a ticket in the Discord + Server. diff --git a/src/components/ImportantInfo/projectSubmission.tsx b/src/components/ImportantInfo/projectSubmission.tsx index f4194351..983feeb3 100644 --- a/src/components/ImportantInfo/projectSubmission.tsx +++ b/src/components/ImportantInfo/projectSubmission.tsx @@ -1,5 +1,6 @@ import Image from "next/image"; import Link from "next/link"; +import RedirectIcon from "../RedirectIcon"; export default function ProjectSubmission() { return ( @@ -33,7 +34,7 @@ export default function ProjectSubmission() {

On{" "} - Sunday, November 10th,{" "} + Sunday, November 9th,{" "} submit your project{" "} @@ -42,12 +43,13 @@ export default function ProjectSubmission() { . You can do this on our{" "} DevPost Page + .

@@ -144,9 +146,10 @@ export default function ProjectSubmission() { href="https://www.twitch.tv/codethechangeyyc" target="_blank" rel="noopener noreffer" - className="text-awesome-purple underline" + className="inline-flex flex-row items-center gap-1 text-awesome-purple underline" > Twitch! +

diff --git a/src/components/LandingPage/HackathonInformationContainer.tsx b/src/components/LandingPage/HackathonInformationContainer.tsx index 8f391b41..9b7cc07e 100644 --- a/src/components/LandingPage/HackathonInformationContainer.tsx +++ b/src/components/LandingPage/HackathonInformationContainer.tsx @@ -17,7 +17,7 @@ const ABOUT_THE_CHALLENGE_TITLE = ( width={20} height={20} alt="Challenge quotes" - className=" mb-4 ml-1 select-none" + className="mb-4 ml-1 select-none" /> ); @@ -31,14 +31,16 @@ const REQUIREMENTS_TITLE = ( width={20} height={20} alt="Challenge quotes" - className=" mr-1 mt-2 select-none" + className="mr-1 mt-2 select-none" /> Requirements ); const PRIZES_QUOTES_SVG = "/svgs/landingPage/prizes_quotes.svg"; -const PRIZES_BLURB = `Prizes: 1st place - $5,000 CAD; 2nd place - $3,000; 3rd place - $2,000; All prizes will be split between students and the charities of their choice.`; +const PRIZES_BLURB = `Prizes: 1st place - $4,700 CAD; 2nd place - $2,700; 3rd place - $2,000; + Side Pots: Three side pots worth $200 CAD each; + All prizes will be split between students and the charities of their choice.`; const PRIZES_TITLE = (
Prizes @@ -47,7 +49,7 @@ const PRIZES_TITLE = ( width={20} height={20} alt="Challenge quotes" - className=" ml-1 mt-2 select-none" + className="ml-1 mt-2 select-none" />
); @@ -94,14 +96,14 @@ function SectionContainer({ return (
-
+
{title} -

{blurb}

+

{blurb}

-
+
-
+

Judges

))}
+

Full List Coming Soon!

); } diff --git a/src/components/RedirectIcon.jsx b/src/components/RedirectIcon.jsx new file mode 100644 index 00000000..0388573a --- /dev/null +++ b/src/components/RedirectIcon.jsx @@ -0,0 +1,27 @@ +export default function RedirectIcon({ + color = "currentColor", + size = 15, + className = "", + ...props +}) { + return ( + + + + + + ); +} diff --git a/src/components/UserProfile/TeamProfile.tsx b/src/components/UserProfile/TeamProfile.tsx index 159041bc..5d3afd08 100644 --- a/src/components/UserProfile/TeamProfile.tsx +++ b/src/components/UserProfile/TeamProfile.tsx @@ -6,6 +6,7 @@ import { useUser } from "@/components/contexts/UserContext"; import KevinLoadingRing from "@/components/KevinLoadingRing"; import TeamForm from "@/components/UserProfile/TeamForm"; import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; +import RedirectIcon from "../RedirectIcon"; const BUTTON_STYLES = " rounded-full border-4 border-white bg-grapefruit px-10 md:px-12 py-2 my-2 text-white"; @@ -58,7 +59,7 @@ const TeamProfile = () => {
) : ( <> -
+

Team Details

@@ -79,8 +80,19 @@ const TeamProfile = () => {
  1. - 1. Join the Code the Change YYC Discord and - navigate to the #looking-for-a-team channel. + 1. Join the{" "} + + + Code the Change YYC Discord{" "} + + + {" "} + and navigate to the #looking-for-a-team channel.
  2. 2. Reach out to an existing team or form a diff --git a/src/components/resources/resources.tsx b/src/components/resources/resources.tsx index 626da334..4c492217 100644 --- a/src/components/resources/resources.tsx +++ b/src/components/resources/resources.tsx @@ -23,22 +23,46 @@ export default function Resources() { link="https://unstats.un.org/sdgapi/swagger/#/" /> + + + +
diff --git a/src/components/teamRegistration/JoinTeamInstructions.tsx b/src/components/teamRegistration/JoinTeamInstructions.tsx index 1f9cfd7c..d201e45d 100644 --- a/src/components/teamRegistration/JoinTeamInstructions.tsx +++ b/src/components/teamRegistration/JoinTeamInstructions.tsx @@ -1,19 +1,22 @@ +import RedirectIcon from "../RedirectIcon"; + export default function JoinTeamInstructions() { return (
  1. - Join the - + Join the{" "} + {" "} Code the Change YYC Discord{" "} + - + {" "} and navigate to the #looking-for-a-team channel.
  2. From 2a6b0f21c25014826ec561a2c9138f92a9c3583c Mon Sep 17 00:00:00 2001 From: Burton Jong <108391733+burtonjong@users.noreply.github.com> Date: Tue, 21 Oct 2025 21:21:32 -0600 Subject: [PATCH 05/16] styling fixes and refresh page after leaving team (#245) (#246) Co-authored-by: Fiona Truong <151110138+fionaa-truong@users.noreply.github.com> --- public/svgs/importantInfo/purpleUnderline.svg | 6 ++--- src/app/admin/teams/components/TeamsTable.tsx | 2 +- src/app/admin/teams/page.tsx | 2 +- src/app/participant/important-info/page.tsx | 16 ++++++------ .../Dashboard/NextMealScheduled.tsx | 2 +- src/components/ImportantInfo/faqInfo.tsx | 8 +++--- .../ImportantInfo/projectSubmission.tsx | 8 +++--- src/components/LandingPage/AboutEventTile.tsx | 2 +- .../HackathonInformationContainer.tsx | 26 +++++++++---------- .../LandingPage/HeroCallToAction.tsx | 4 +-- src/components/LandingPage/HeroSection.tsx | 2 +- .../LandingPage/HeroSectionTile.tsx | 4 +-- .../LandingPage/JudgingCriteria.tsx | 4 +-- src/components/LandingPage/ThanksSponsors.tsx | 6 ++--- src/components/UserProfile/TeamForm.tsx | 23 +++++++++++++--- .../teamRegistration/CountdownWindow.tsx | 4 +-- 16 files changed, 68 insertions(+), 51 deletions(-) diff --git a/public/svgs/importantInfo/purpleUnderline.svg b/public/svgs/importantInfo/purpleUnderline.svg index 1cfc7fa2..06d11bab 100644 --- a/public/svgs/importantInfo/purpleUnderline.svg +++ b/public/svgs/importantInfo/purpleUnderline.svg @@ -1,4 +1,4 @@ - - - + + + diff --git a/src/app/admin/teams/components/TeamsTable.tsx b/src/app/admin/teams/components/TeamsTable.tsx index eaba0b3b..4cb3b3af 100644 --- a/src/app/admin/teams/components/TeamsTable.tsx +++ b/src/app/admin/teams/components/TeamsTable.tsx @@ -31,7 +31,7 @@ export default function TeamsTable({ teams }: { teams: Team[] }) { typeName: "Team", }); return ( -
    +
    +
    diff --git a/src/app/participant/important-info/page.tsx b/src/app/participant/important-info/page.tsx index 26ae943d..0b315f17 100644 --- a/src/app/participant/important-info/page.tsx +++ b/src/app/participant/important-info/page.tsx @@ -11,14 +11,14 @@ export default function ImportantInfo() { alt="White stars" width={30} height={30} - className="pointer-events-none absolute left-4 top-72 md:left-24 md:top-52 lg:left-36 lg:top-64" + className="pointer-events-none absolute left-4 top-96 md:left-24 md:top-52 lg:left-36 lg:top-60" /> White stars
    -

    +

    Important Information

    -
    +
    Rubric @@ -51,7 +51,7 @@ export default function ImportantInfo() { href={process.env.NEXT_PUBLIC_DEVPOST_LINK} target="_blank" rel="noopener noreferrer" - className="rounded-full bg-white px-6 py-3 font-semibold text-awesome-purple shadow-lg transition-all hover:scale-105 hover:bg-awesomer-purple hover:text-white" + className="rounded-full bg-white px-5 py-3 text-lg font-semibold text-awesome-purple shadow-lg transition-all hover:scale-105 hover:bg-awesomer-purple hover:text-white md:px-6 md:py-4 md:text-xl" > Devpost @@ -59,13 +59,13 @@ export default function ImportantInfo() { href={process.env.NEXT_PUBLIC_DISCORD_LINK} target="_blank" rel="noopener noreferrer" - className="rounded-full bg-white px-6 py-3 font-semibold text-awesome-purple shadow-lg transition-all hover:scale-105 hover:bg-awesomer-purple hover:text-white" + className="rounded-full bg-white px-5 py-3 text-lg font-semibold text-awesome-purple shadow-lg transition-all hover:scale-105 hover:bg-awesomer-purple hover:text-white md:px-6 md:py-4 md:text-xl" > Discord
    -

    +

    Here are the rules, code of conduct, steps to submit your project, tips for success, and answers to frequently asked questions (FAQs)!

    diff --git a/src/components/Dashboard/NextMealScheduled.tsx b/src/components/Dashboard/NextMealScheduled.tsx index 4ee1f9c7..39d52673 100644 --- a/src/components/Dashboard/NextMealScheduled.tsx +++ b/src/components/Dashboard/NextMealScheduled.tsx @@ -21,7 +21,7 @@ export default function NextMealScheduled() { }; }, }); - const location = "ENG"; + const location = "ENG 224"; return ( diff --git a/src/components/ImportantInfo/faqInfo.tsx b/src/components/ImportantInfo/faqInfo.tsx index 3f93893c..d48c1818 100644 --- a/src/components/ImportantInfo/faqInfo.tsx +++ b/src/components/ImportantInfo/faqInfo.tsx @@ -166,12 +166,14 @@ export default function FaqInfo() { }; return (
    -

    FAQ

    -
    +

    + FAQ +

    +
    Green underline
    diff --git a/src/components/ImportantInfo/projectSubmission.tsx b/src/components/ImportantInfo/projectSubmission.tsx index 786ba4f5..6b8bf689 100644 --- a/src/components/ImportantInfo/projectSubmission.tsx +++ b/src/components/ImportantInfo/projectSubmission.tsx @@ -5,15 +5,15 @@ import RedirectIcon from "../RedirectIcon"; export default function ProjectSubmission() { return (
    -
    -

    +
    +

    Submitting your Project

    Purple Underline
    @@ -43,7 +43,7 @@ export default function ProjectSubmission() { . You can do this on our{" "} { height={28} />
    -

    +

    {children}

    diff --git a/src/components/LandingPage/HackathonInformationContainer.tsx b/src/components/LandingPage/HackathonInformationContainer.tsx index 554f215e..d0e6ae74 100644 --- a/src/components/LandingPage/HackathonInformationContainer.tsx +++ b/src/components/LandingPage/HackathonInformationContainer.tsx @@ -8,7 +8,7 @@ const CHALLENGE_QUOTES_SVG = "/svgs/landingPage/challenge_quotes.svg"; const ABOUT_THE_CHALLENGE_BLURB = `Hack the Change aims to inspire students across Canada to leverage technology to enact social change. We’re looking for creative and innovative solutions to existing problems, with the goal of coding a better tomorrow.`; const ABOUT_THE_CHALLENGE_TITLE = (
    -

    +

    About the Challenge

    @@ -17,7 +17,7 @@ const ABOUT_THE_CHALLENGE_TITLE = ( width={20} height={20} alt="Challenge quotes" - className="mb-4 ml-1 select-none" + className="mb-7 ml-1 select-none" />
    ); @@ -25,13 +25,13 @@ const ABOUT_THE_CHALLENGE_TITLE = ( const REQUIREMENTS_QUOTES_SVG = "/svgs/landingPage/requirements_quotes.svg"; const REQUIREMENTS_BLURB = `Open to all Canadian students, at the university, college, or high school level.`; const REQUIREMENTS_TITLE = ( -
    +
    Challenge quotes Requirements
    @@ -40,14 +40,14 @@ const REQUIREMENTS_TITLE = ( const PRIZES_QUOTES_SVG = "/svgs/landingPage/prizes_quotes.svg"; const PRIZES_BLURB = `All prizes will be split between students and the charities of their choice.`; const PRIZES_TITLE = ( -
    +
    Prizes Challenge quotes
    ); @@ -66,7 +66,7 @@ const PRIZES_DATA = [ place: "Side Pots", amount: "$200", color: "bg-dark-pink", - note: "Hunter Hub for Entrepeneurial Thinking", + note: "Benevity", }, { place: "Side Pots", @@ -175,7 +175,7 @@ function SectionContainer({

    Side Pots

    -
    +
    {PRIZES_DATA.filter((p) => p.place === "Side Pots").map( (prize, index) => (
    {prize.note && ( -

    +

    {prize.note}

    )} @@ -270,7 +270,7 @@ export default function HackathonInformationContainer() { alt="" width={436} height={90} - className="absolute top-[22rem]" + className="absolute top-[24rem]" />
    - {userId === "" && ( -
    +
    {"Already registered? "} {" Sign in"} diff --git a/src/components/LandingPage/HeroSection.tsx b/src/components/LandingPage/HeroSection.tsx index 150ec62c..e9bdb6e8 100644 --- a/src/components/LandingPage/HeroSection.tsx +++ b/src/components/LandingPage/HeroSection.tsx @@ -23,7 +23,7 @@ export default async function HeroSection() { const eventEndDate = new Date(hackathonData[0].endDate); return ( -
    +
    Landing page background { return (

    {EVENT_NAME} {" " + eventYear}

    - + {EVENT_BLURB} diff --git a/src/components/LandingPage/JudgingCriteria.tsx b/src/components/LandingPage/JudgingCriteria.tsx index 522b63d2..23be65bc 100644 --- a/src/components/LandingPage/JudgingCriteria.tsx +++ b/src/components/LandingPage/JudgingCriteria.tsx @@ -33,7 +33,7 @@ export const JUDGING_CRITERIA = [ const JudgingCriteria = () => { return (
    -

    +

    Judging Criteria

    @@ -52,7 +52,7 @@ const JudgingCriteria = () => { height={60} className="flex-shrink-0 transition-transform duration-300 group-hover:scale-110" /> -

    +

    {criterion.category}

    diff --git a/src/components/LandingPage/ThanksSponsors.tsx b/src/components/LandingPage/ThanksSponsors.tsx index 3fb5f733..1e93583b 100644 --- a/src/components/LandingPage/ThanksSponsors.tsx +++ b/src/components/LandingPage/ThanksSponsors.tsx @@ -12,7 +12,7 @@ export default async function ThankSponsors() { ); return ( -
    +
    -
    +
    {sortedSponsors.map((sponsor, index) => (
    -
    +
    { - teamMutation.mutate(data); - }; - const client = generateClient(); + const [isLeaving, setIsLeaving] = useState(false); + + const handleLeaveTeamClick = async () => { + try { + setIsLeaving(true); + await teamMutation.mutate(data); + // fix to eventually not have to refresh the page to show that a user has left a team + // same for after a user has joined a team + window.location.reload(); + } finally { + setIsLeaving(false); + } + }; const { data: teamData, isFetching } = useQuery({ initialData: null, @@ -38,6 +49,10 @@ export default function TeamForm({ data, teamMutation }: TeamFormProp) { enabled: !!data, }); + if (isLeaving) { + ; + } + return ( <> {data && ( diff --git a/src/components/teamRegistration/CountdownWindow.tsx b/src/components/teamRegistration/CountdownWindow.tsx index 710149b6..dd035fa8 100644 --- a/src/components/teamRegistration/CountdownWindow.tsx +++ b/src/components/teamRegistration/CountdownWindow.tsx @@ -16,7 +16,7 @@ export default function CountdownWindow({ <>
    check mark icon From bbef163a82ffa5140f6bcb406ccf035d0d0e7540 Mon Sep 17 00:00:00 2001 From: Oluwafisayo Adabs <116133322+fisayoadabs@users.noreply.github.com> Date: Wed, 22 Oct 2025 21:56:27 -0600 Subject: [PATCH 06/16] Revalidate (#248) --- src/app/register/team/(pending)/new/page.tsx | 1 + src/components/teamRegistration/JoinTeamCode.tsx | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/app/register/team/(pending)/new/page.tsx b/src/app/register/team/(pending)/new/page.tsx index ab68277b..f678f2d4 100644 --- a/src/app/register/team/(pending)/new/page.tsx +++ b/src/app/register/team/(pending)/new/page.tsx @@ -36,6 +36,7 @@ export default function page() { autoClose: 3000, }); const teamID = JSON.parse(data.body?.toString() || "").value; + user.revalidateUser(); router.push(`/register/team/${teamID}`); } }, diff --git a/src/components/teamRegistration/JoinTeamCode.tsx b/src/components/teamRegistration/JoinTeamCode.tsx index d3ad8246..43edaf3a 100644 --- a/src/components/teamRegistration/JoinTeamCode.tsx +++ b/src/components/teamRegistration/JoinTeamCode.tsx @@ -44,7 +44,7 @@ export default function JoinTeamCode() { } }; const router = useRouter(); - const { currentUser } = useUser(); + const { currentUser, revalidateUser } = useUser(); const joinTeamMutation = useMutation({ mutationFn: async (teamID: string) => { const toastObj = toast.loading("Joining team..."); @@ -62,6 +62,7 @@ export default function JoinTeamCode() { onSuccess: (data) => { if (data?.statusCode === 200) { toast.success("Team joined successfully"); + revalidateUser(); router.push(`/join/team/${teamIDInput.join("")}`); } }, From bba01d30afaab254d431b9755f8dc77a6e765f7c Mon Sep 17 00:00:00 2001 From: Fiona Truong <151110138+fionaa-truong@users.noreply.github.com> Date: Fri, 24 Oct 2025 11:39:50 -0600 Subject: [PATCH 07/16] update prize pool and admin navbar (#250) --- src/app/admin/layout.tsx | 12 +++--------- src/app/admin/reset/page.tsx | 2 +- src/components/Dashboard/UserBasedNav.tsx | 1 + .../LandingPage/HackathonInformationContainer.tsx | 4 ++-- 4 files changed, 7 insertions(+), 12 deletions(-) diff --git a/src/app/admin/layout.tsx b/src/app/admin/layout.tsx index 73181951..f9553810 100644 --- a/src/app/admin/layout.tsx +++ b/src/app/admin/layout.tsx @@ -1,5 +1,4 @@ import type { Metadata } from "next"; -import SideNavBar from "@/components/Dashboard/SideNavBar"; import TopNavBar from "@/components/Dashboard/TopNavBar"; export const metadata: Metadata = { @@ -17,14 +16,9 @@ export const metadata: Metadata = { function AdminLayout({ children }: { children: React.ReactNode }) { return ( -
    -
    - -
    -
    - - {children} -
    +
    + + {children}
    ); } diff --git a/src/app/admin/reset/page.tsx b/src/app/admin/reset/page.tsx index 7323a999..3807db29 100644 --- a/src/app/admin/reset/page.tsx +++ b/src/app/admin/reset/page.tsx @@ -2,7 +2,7 @@ import ResetPage from "@/components/reset/ResetPage"; export default function Reset() { return ( -
    +
    ); diff --git a/src/components/Dashboard/UserBasedNav.tsx b/src/components/Dashboard/UserBasedNav.tsx index 79e00f0b..0dcdb299 100644 --- a/src/components/Dashboard/UserBasedNav.tsx +++ b/src/components/Dashboard/UserBasedNav.tsx @@ -18,6 +18,7 @@ const navigationMap: Record = { { name: "Scan Food Tickets", route: "/admin/scan-food-tickets" }, { name: "Create Food Event", route: "/admin/create-food-event" }, { name: "Judging Schedule", route: "/admin/schedule" }, + { name: "Reset Hackathon", route: "/admin/reset" }, ], Judge: [ { name: "Dashboard", route: "/judging" }, diff --git a/src/components/LandingPage/HackathonInformationContainer.tsx b/src/components/LandingPage/HackathonInformationContainer.tsx index d0e6ae74..3975fbf1 100644 --- a/src/components/LandingPage/HackathonInformationContainer.tsx +++ b/src/components/LandingPage/HackathonInformationContainer.tsx @@ -64,7 +64,7 @@ const PRIZES_DATA = [ }, { place: "Side Pots", - amount: "$200", + amount: "$300", color: "bg-dark-pink", note: "Benevity", }, @@ -154,7 +154,7 @@ function SectionContainer({ 2nd

    - $2,700 + $2,600

    From c87624045db2ee71b1e22a10e20fd8996f7b14b1 Mon Sep 17 00:00:00 2001 From: Oluwafisayo Adabs <116133322+fisayoadabs@users.noreply.github.com> Date: Fri, 24 Oct 2025 16:44:30 -0600 Subject: [PATCH 08/16] merge main into prod (#253) (#254) Co-authored-by: Fiona Truong <151110138+fionaa-truong@users.noreply.github.com> Co-authored-by: burtonjong Co-authored-by: Burton Jong <108391733+burtonjong@users.noreply.github.com> From d984e7fae0fea6f27c92eb96dfa70fdba3c5d0d6 Mon Sep 17 00:00:00 2001 From: Oluwafisayo Adabs <116133322+fisayoadabs@users.noreply.github.com> Date: Sat, 25 Oct 2025 22:03:22 -0600 Subject: [PATCH 09/16] merge main into prod (#253) (#255) Co-authored-by: Fiona Truong <151110138+fionaa-truong@users.noreply.github.com> Co-authored-by: burtonjong Co-authored-by: Burton Jong <108391733+burtonjong@users.noreply.github.com> From b0cf292306b859ab24ab8ec2c0112ffe0ec08454 Mon Sep 17 00:00:00 2001 From: Oluwafisayo Adabs <116133322+fisayoadabs@users.noreply.github.com> Date: Mon, 27 Oct 2025 23:50:03 -0600 Subject: [PATCH 10/16] Updating prod for infinite scheduler load (#258) Co-authored-by: Fiona Truong <151110138+fionaa-truong@users.noreply.github.com> Co-authored-by: burtonjong Co-authored-by: Burton Jong <108391733+burtonjong@users.noreply.github.com> Co-authored-by: simar kandola Co-authored-by: Anthony <88424536+anthonyych4n@users.noreply.github.com> --- src/app/judging/JudgingTable.tsx | 44 ++++++------- src/app/judging/assigned-teams/page.tsx | 87 +++++++++++++++++++++---- 2 files changed, 97 insertions(+), 34 deletions(-) diff --git a/src/app/judging/JudgingTable.tsx b/src/app/judging/JudgingTable.tsx index 76715f62..4b4cc630 100644 --- a/src/app/judging/JudgingTable.tsx +++ b/src/app/judging/JudgingTable.tsx @@ -20,7 +20,6 @@ export default function JudgingTable({ }) { const [selectedTeam, setSelectedTeamId] = useState(""); const [teamName, setTeamName] = useState(""); - const [teamsLeft, setTeamsLeft] = useState(0); const { currentUser } = useUser(); const { data: roomData, isFetching: roomIsFetching } = useQuery({ @@ -51,30 +50,31 @@ export default function JudgingTable({ return teams; }, }); - const isFetching = roomIsFetching && teamsForRoomIsFetching; + + const { data: teamsLeft = 0, isFetching: teamsLeftIsFetching } = useQuery({ + queryKey: ["TeamsLeftCount", teamsForRoomData, currentUser.username], + queryFn: async () => { + if (!teamsForRoomData) return 0; + const boolArray = await Promise.all( + teamsForRoomData.map(async (team) => { + const scores = await team?.scores(); + return ( + scores?.data.filter( + (score) => score.judgeId === currentUser.username, + ).length === 0 + ); + }), + ); + return teamsForRoomData.filter((_, i) => boolArray[i]).length; + }, + enabled: !!teamsForRoomData && !!currentUser.username, + }); + + const isFetching = + roomIsFetching || teamsForRoomIsFetching || teamsLeftIsFetching; if (isFetching || !roomData || !teamsForRoomData) { return ; } - async function getFilteredTeamsCount() { - // https://medium.com/@debbs119/array-filter-and-array-map-with-async-functions-9636e1ae8d6e --> why it needs to map to a boolean array first - if (!teamsForRoomData) { - return; - } - const boolArray = await Promise.all( - teamsForRoomData?.map(async (team) => { - const scores = await team?.scores(); - return ( - scores?.data.filter((score) => score.judgeId === currentUser.username) - .length === 0 - ); - }), - ); - setTeamsLeft( - teamsForRoomData?.filter((_, index) => boolArray[index]).length, - ); - } - - getFilteredTeamsCount(); const panelData = [ { diff --git a/src/app/judging/assigned-teams/page.tsx b/src/app/judging/assigned-teams/page.tsx index f3f80d96..d43adf34 100644 --- a/src/app/judging/assigned-teams/page.tsx +++ b/src/app/judging/assigned-teams/page.tsx @@ -1,18 +1,81 @@ +"use client"; + +import React from "react"; +import { client } from "@/app/QueryProvider"; +import { useUser } from "@/components/contexts/UserContext"; +import KevinLoadingRing from "@/components/KevinLoadingRing"; +import { useQuery } from "@tanstack/react-query"; + const AssignedTeamsPage = () => { - const assignedTeams = [ - { id: 1, name: "Team Alpha" }, - { id: 2, name: "Team Beta" }, - { id: 3, name: "Team Gamma" }, - ]; + const { currentUser } = useUser(); + + const { data: roomData, isLoading: roomLoading } = useQuery({ + queryKey: ["RoomForJudge", currentUser?.JUDGE_roomId], + queryFn: async () => { + if (!currentUser?.JUDGE_roomId) + throw new Error("No room assigned to judge"); + const { data, errors } = await client.models.Room.get({ + id: currentUser.JUDGE_roomId, + }); + if (errors) throw new Error(errors[0]?.message || "Failed to load room"); + return data; + }, + enabled: !!currentUser?.JUDGE_roomId, + }); + + const { data: teamsForRoom, isLoading: teamsLoading } = useQuery({ + queryKey: ["TeamsForRoom", roomData?.id], + queryFn: async () => { + if (!roomData) return []; + const teamRooms = (await roomData.teamRoom())?.data; + if (!teamRooms) return []; + const teams = await Promise.all( + teamRooms.map(async (tr) => (await tr.team()).data), + ); + return teams; + }, + enabled: !!roomData, + }); + + if (!currentUser) + return
    Please sign in to see assigned teams.
    ; + if (roomLoading || teamsLoading) + return ( +
    + +
    + ); + if (!roomData) + return
    You have no room assigned yet.
    ; return ( -
    -

    Put assinged teams here Assigned Teams

    -
      - {assignedTeams.map((team) => ( -
    • {team.name}
    • - ))} -
    +
    +

    + Your Teams: {roomData?.name ?? ""} +

    + {teamsForRoom && teamsForRoom.length > 0 ? ( +
    + {teamsForRoom.map((team: any) => ( +
    +
    +
    + {team.name} +
    +
    + Team ID: {team.id} +
    +
    +
    + ))} +
    + ) : ( +
    + No teams assigned to your room yet. Check back later! +
    + )}
    ); }; From 7479dceb4f4bef733e60c2917e30476cd00da35a Mon Sep 17 00:00:00 2001 From: Oluwafisayo Adabs <116133322+fisayoadabs@users.noreply.github.com> Date: Thu, 6 Nov 2025 19:27:11 -0700 Subject: [PATCH 11/16] Sidepot Totals and Clockcount down working (#265) Co-authored-by: Fiona Truong <151110138+fionaa-truong@users.noreply.github.com> Co-authored-by: burtonjong Co-authored-by: Burton Jong <108391733+burtonjong@users.noreply.github.com> Co-authored-by: simar kandola Co-authored-by: Anthony <88424536+anthonyych4n@users.noreply.github.com> Co-authored-by: Fiona --- amplify/data/resource.ts | 1 + .../ScheduleTeamsAndJudges/handler.ts | 1 + amplify/graphql/API.ts | 3 + amplify/graphql/mutations.ts | 1 + amplify/graphql/queries.ts | 2 + src/components/LandingPage/HeroSection.tsx | 4 +- .../admin/Judging/JudgingSchedule.tsx | 5 +- .../admin/Judging/JudgingTimeline.tsx | 12 ++- src/components/admin/Judging/RoomAssigner.tsx | 26 +++-- src/components/admin/RankingTable.tsx | 99 +++++++++++++------ src/components/judging/Schedule/schedule.tsx | 56 +++-------- .../teamRegistration/TeamConfirmation.tsx | 4 +- 12 files changed, 124 insertions(+), 90 deletions(-) diff --git a/amplify/data/resource.ts b/amplify/data/resource.ts index a7bb7644..abc90963 100644 --- a/amplify/data/resource.ts +++ b/amplify/data/resource.ts @@ -131,6 +131,7 @@ const schema = a id: a.id().required(), time: a.datetime().required(), zoomLink: a.string().required(), + duration: a.integer(), teamId: a.id().required(), roomId: a.id().required(), team: a.belongsTo("Team", "teamId"), diff --git a/amplify/function/BusinessLogic/ScheduleTeamsAndJudges/handler.ts b/amplify/function/BusinessLogic/ScheduleTeamsAndJudges/handler.ts index 3d8ce54c..b8352b3b 100644 --- a/amplify/function/BusinessLogic/ScheduleTeamsAndJudges/handler.ts +++ b/amplify/function/BusinessLogic/ScheduleTeamsAndJudges/handler.ts @@ -118,6 +118,7 @@ export const handler: Schema["ScheduleTeamsAndJudges"]["functionHandler"] = time: currTime.toISOString(), roomId: roomIds[column], zoomLink: "", + duration: presentationDuration, }, }, }), diff --git a/amplify/graphql/API.ts b/amplify/graphql/API.ts index 394c22af..dda5abab 100644 --- a/amplify/graphql/API.ts +++ b/amplify/graphql/API.ts @@ -122,6 +122,7 @@ export type TeamRoom = { time: string; updatedAt: string; zoomLink: string; + duration?: number | null; }; export type Room = { @@ -493,6 +494,7 @@ export type CreateTeamRoomInput = { teamId: string; time: string; zoomLink: string; + duration?: number | null; }; export type ModelUserConditionInput = { @@ -623,6 +625,7 @@ export type UpdateTeamRoomInput = { teamId?: string | null; time?: string | null; zoomLink?: string | null; + duration?: number | null; }; export type UpdateUserInput = { diff --git a/amplify/graphql/mutations.ts b/amplify/graphql/mutations.ts index 79099b55..20ddf45d 100644 --- a/amplify/graphql/mutations.ts +++ b/amplify/graphql/mutations.ts @@ -342,6 +342,7 @@ export const createTeamRoom = /* GraphQL */ `mutation CreateTeamRoom( time updatedAt zoomLink + duration __typename } } diff --git a/amplify/graphql/queries.ts b/amplify/graphql/queries.ts index f6f4ce73..3348ac36 100644 --- a/amplify/graphql/queries.ts +++ b/amplify/graphql/queries.ts @@ -186,6 +186,7 @@ export const getTeamRoom = /* GraphQL */ `query GetTeamRoom($id: ID!) { time updatedAt zoomLink + duration __typename } } @@ -427,6 +428,7 @@ export const listTeamRooms = /* GraphQL */ `query ListTeamRooms( time updatedAt zoomLink + duration __typename } nextToken diff --git a/src/components/LandingPage/HeroSection.tsx b/src/components/LandingPage/HeroSection.tsx index e9bdb6e8..3ff619eb 100644 --- a/src/components/LandingPage/HeroSection.tsx +++ b/src/components/LandingPage/HeroSection.tsx @@ -19,8 +19,8 @@ export default async function HeroSection() { return
    Hackathon hasn't been created yet
    ; } - const eventStartDate = new Date(hackathonData[0].startDate); - const eventEndDate = new Date(hackathonData[0].endDate); + const eventStartDate = new Date(2025, 10, 8, 9, 0, 0); // Month is 0-indexed → 10 = November + const eventEndDate = new Date(2025, 10, 9, 17, 0, 0); // Example: Sunday 5 PM return (
    diff --git a/src/components/admin/Judging/JudgingSchedule.tsx b/src/components/admin/Judging/JudgingSchedule.tsx index b97e81e7..8cfe9986 100644 --- a/src/components/admin/Judging/JudgingSchedule.tsx +++ b/src/components/admin/Judging/JudgingSchedule.tsx @@ -168,7 +168,10 @@ export default function JudgingSchedule() { .join(", ") || "No Team Name", room_id: teamRoom.roomId, start: new Date(teamRoom.time), - end: new Date(new Date(teamRoom.time).getTime() + 15 * 60 * 1000), + end: new Date( + new Date(teamRoom.time).getTime() + + (teamRoom.duration ?? 10) * 60 * 1000, + ), zoomLink: teamRoom.zoomLink, })) : []; diff --git a/src/components/admin/Judging/JudgingTimeline.tsx b/src/components/admin/Judging/JudgingTimeline.tsx index 7bd8f221..28ea0c12 100644 --- a/src/components/admin/Judging/JudgingTimeline.tsx +++ b/src/components/admin/Judging/JudgingTimeline.tsx @@ -1,6 +1,7 @@ "use client"; import { Scheduler } from "@aldabil/react-scheduler"; +import RedirectIcon from "../../RedirectIcon"; type JudgeRoom = { roomName: string; @@ -48,11 +49,14 @@ export default function JudgingTimeline({ deletable={false} viewerExtraComponent={(fields, event) => { return ( -

    + {/* Replace with actual zoom link not the room id */} - Zoom Link:{" "} - {event.title} -

    + Zoom Link + + ); }} /> diff --git a/src/components/admin/Judging/RoomAssigner.tsx b/src/components/admin/Judging/RoomAssigner.tsx index d2da6fda..a87dd22a 100644 --- a/src/components/admin/Judging/RoomAssigner.tsx +++ b/src/components/admin/Judging/RoomAssigner.tsx @@ -21,6 +21,8 @@ export default function RoomAssigner({ const [loading, setLoading] = useState(false); const [error, setError] = useState(null); + const ZOOM_LINK = process.env.NEXT_PUBLIC_ZOOM_LINK; + const handleInputChange = (e: React.ChangeEvent) => { setInputValue(e.target.value); }; @@ -48,13 +50,21 @@ export default function RoomAssigner({ presentationDuration: Number(duration), }); - const meetingData = await createZoomMeeting( - formattedDate, - Number(duration), - ); + // dynamically create zoom links + // const meetingData = await createZoomMeeting( + // formattedDate, + // Number(duration), + // ); + + // setMeetingLink(meetingData.join_url); + // updateTeamRoomsWithZoomLink(); + + // temporary hardcoded zoom link + if (!ZOOM_LINK) { + throw new Error("Zoom link missing in .env."); + } - setMeetingLink(meetingData.join_url); - updateTeamRoomsWithZoomLink(meetingData.join_url); + updateTeamRoomsWithZoomLink(ZOOM_LINK); } catch (err) { setError("Failed to create Zoom meeting."); } finally { @@ -72,7 +82,7 @@ export default function RoomAssigner({ >
    - +
    - + {teamName} - {Object.keys(components).map((componentId) => { - return ( - - {components[componentId]} - - ); - })} + {scoringMetrics + .filter((metric) => !metric.isSidepot) + .map((metric) => { + return ( + + {components[metric.id] || 0} + + ); + })} {total} + {scoringMetrics + .filter((metric) => metric.isSidepot) + .map((metric) => { + return ( + + {components[metric.id] || 0} + + ); + })} ); } @@ -101,7 +117,11 @@ export default function RankingTable({ Number(score.score[scoreComponentId]) : score.score[scoreComponentId]; - return total + Number(score.score[scoreComponentId]); + // Only add to total if it's not a sidepot + if (!metric.isSidepot) { + return total + Number(score.score[scoreComponentId]); + } + return total; }, 0); acc[score.teamId].total += teamScore; @@ -145,24 +165,25 @@ export default function RankingTable({
    Team
    - {scoringMetrics.map((metric) => { - return ( - -
    - {metric.friendlyName} - {metric.isSidepot ? " (Sidepot)" : null} - -
    - - ); - })} + {scoringMetrics + .filter((metric) => !metric.isSidepot) + .map((metric) => { + return ( + +
    + {metric.friendlyName} + +
    + + ); + })}
    Total @@ -176,6 +197,25 @@ export default function RankingTable({
    + {scoringMetrics + .filter((metric) => metric.isSidepot) + .map((metric) => { + return ( + +
    + {metric.friendlyName} (Sidepot) + +
    + + ); + })} @@ -185,6 +225,7 @@ export default function RankingTable({ teamName={computedScores[teamId].name} components={computedScores[teamId].components} total={computedScores[teamId].total} + scoringMetrics={scoringMetrics} key={index} index={index} /> diff --git a/src/components/judging/Schedule/schedule.tsx b/src/components/judging/Schedule/schedule.tsx index d7666d9d..396e986f 100644 --- a/src/components/judging/Schedule/schedule.tsx +++ b/src/components/judging/Schedule/schedule.tsx @@ -4,6 +4,7 @@ import { generateClient } from "aws-amplify/api"; import { useState } from "react"; import { type Schema } from "@/amplify/data/resource"; import JudgingTimeline from "@/components/admin/Judging/JudgingTimeline"; +import KevinLoadingRing from "@/components/KevinLoadingRing"; import { useQuery } from "@tanstack/react-query"; const client = generateClient(); @@ -94,62 +95,29 @@ export default function JudgingSchedule() { .join(", ") || "No Team Name", room_id: teamRoom.roomId, start: new Date(teamRoom.time), - end: new Date(new Date(teamRoom.time).getTime() + 15 * 60 * 1000), + end: new Date( + new Date(teamRoom.time).getTime() + + (teamRoom.duration ?? 10) * 60 * 1000, + ), zoomLink: teamRoom.zoomLink, })) : []; - // State to manage the filter (all teams or assigned teams) - const [filter, setFilter] = useState<"all" | "assigned">("all"); - - // Filtered events based on the selected filter - const filteredEvents = - filter === "all" - ? judgingEvents - : judgingEvents.filter((event) => - judgeData?.some((judge) => judge.JUDGE_roomId === event.room_id), - ); - return isLoading ? ( -
    - Loading schedule... +
    +
    ) : (
    - {/* Filter Buttons */}
    - - +
    Judging Schedule
    - {/* Schedule Display */}
    - {filteredEvents.length > 0 ? ( - - ) : ( -
    Schedule not made yet
    - )} +
    ); diff --git a/src/components/teamRegistration/TeamConfirmation.tsx b/src/components/teamRegistration/TeamConfirmation.tsx index e44bb4bc..14093447 100644 --- a/src/components/teamRegistration/TeamConfirmation.tsx +++ b/src/components/teamRegistration/TeamConfirmation.tsx @@ -23,8 +23,8 @@ export default async function TeamConfirmation({ return
    Hackathon hasn't been created yet
    ; } - const eventStartDate = new Date(hackathonData[0].startDate); - const eventEndDate = new Date(hackathonData[0].endDate); + const eventStartDate = new Date(2025, 10, 8, 9, 0, 0); // Month is 0-indexed → 10 = November + const eventEndDate = new Date(2025, 10, 9, 17, 0, 0); // Example: Sunday 5 PM return ( <> From 1d9ae294ec0a36d67492973191e71f4dbc71a556 Mon Sep 17 00:00:00 2001 From: Oluwafisayo Adabs <116133322+fisayoadabs@users.noreply.github.com> Date: Thu, 6 Nov 2025 19:41:14 -0700 Subject: [PATCH 12/16] Cognito User Update (#268) Co-authored-by: Fiona Truong <151110138+fionaa-truong@users.noreply.github.com> Co-authored-by: burtonjong Co-authored-by: Burton Jong <108391733+burtonjong@users.noreply.github.com> Co-authored-by: simar kandola Co-authored-by: Anthony <88424536+anthonyych4n@users.noreply.github.com> Co-authored-by: Fiona --- src/app/admin/components/UsersTable.tsx | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/app/admin/components/UsersTable.tsx b/src/app/admin/components/UsersTable.tsx index 23d1c2a6..5ad38e0f 100644 --- a/src/app/admin/components/UsersTable.tsx +++ b/src/app/admin/components/UsersTable.tsx @@ -19,11 +19,21 @@ export default function UsersTable({ users }: { users: User[] }) { const deleteUser = async (id: Schema["User"]["deleteType"]) => client.models.User.delete(id); const updateUser = async (updatedData: Schema["User"]["updateType"]) => { + if (updatedData.role) { + const roleUpdateResult = await client.mutations.AddUserToGroup({ + userId: updatedData.id, + groupName: updatedData.role, + }); + + if (roleUpdateResult.errors) { + throw new Error("Failed to update user role in Cognito"); + } + } + return client.models.User.update({ id: updatedData.id, firstName: updatedData.firstName, lastName: updatedData.lastName, - role: updatedData.role, teamId: updatedData.teamId, }); }; From 24460326009eccceee5bbad3a904c3a1dffe7247 Mon Sep 17 00:00:00 2001 From: Oluwafisayo Adabs <116133322+fisayoadabs@users.noreply.github.com> Date: Sat, 8 Nov 2025 02:12:40 -0700 Subject: [PATCH 13/16] Merge conflict prod to main (#273) - Lowkey bypassed main so I probably should merge prod into main Co-authored-by: Anthony <88424536+anthonyych4n@users.noreply.github.com> Co-authored-by: Burton Jong <108391733+burtonjong@users.noreply.github.com> Co-authored-by: Fiona Truong <151110138+fionaa-truong@users.noreply.github.com> Co-authored-by: burtonjong Co-authored-by: simar kandola Co-authored-by: Fiona --- src/app/admin/users/UserTablePage.tsx | 29 ++++++++++++++--- src/app/participant/resources/page.tsx | 4 +-- src/components/Dashboard/UserBasedNav.tsx | 3 +- src/components/LandingPage/HeroSection.tsx | 4 +-- src/components/LandingPage/JudgeShowcase.tsx | 3 -- src/components/resources/eventsMembers.tsx | 30 +++++++---------- src/components/resources/generalMembers.tsx | 15 ++++++--- src/components/resources/industryMembers.tsx | 32 +++++++++++++++++-- src/components/resources/memberCards.tsx | 2 +- src/components/resources/mentors.tsx | 6 ++-- src/components/resources/techMembers.tsx | 18 ++++++----- .../teamRegistration/TeamConfirmation.tsx | 4 +-- 12 files changed, 97 insertions(+), 53 deletions(-) diff --git a/src/app/admin/users/UserTablePage.tsx b/src/app/admin/users/UserTablePage.tsx index 428dd1d4..d18b6f3e 100644 --- a/src/app/admin/users/UserTablePage.tsx +++ b/src/app/admin/users/UserTablePage.tsx @@ -14,9 +14,28 @@ const selectionSet = [ export type User = Pick; export default async function UserTablePage() { - const { data: users } = await client.models.User.list({ - selectionSet, - }); - if (!users || !Array.isArray(users)) return "No participants were found"; - return ; + //paginate incoming data + let allUsers: User[] = []; + let nextToken: string | null | undefined = undefined; + + do { + const { + data: users, + nextToken: token, + }: { data?: User[]; nextToken?: string | null } = + await client.models.User.list({ + selectionSet, + nextToken, + limit: 1000, + }); + + if (users && Array.isArray(users)) { + allUsers = [...allUsers, ...users]; + } + + nextToken = token; + } while (nextToken); + + if (!allUsers || allUsers.length === 0) return "No participants were found"; + return ; } diff --git a/src/app/participant/resources/page.tsx b/src/app/participant/resources/page.tsx index b94dfe6c..c4131b50 100644 --- a/src/app/participant/resources/page.tsx +++ b/src/app/participant/resources/page.tsx @@ -21,13 +21,13 @@ export default function ResourcePage() { src="/svgs/resources/pinkSquiggly.svg" alt="Pink Squiggly" fill - className="pointer-events-none opacity-0 md:mt-[540px] md:opacity-100 lg:mt-[600px] xl:mt-[400px] 2xl:mt-52" + className="pointer-events-none opacity-0 md:mt-[540px] md:opacity-100 lg:mt-[600px] xl:mt-[400px] 2xl:mt-64" /> Orange Squiggly
    diff --git a/src/components/Dashboard/UserBasedNav.tsx b/src/components/Dashboard/UserBasedNav.tsx index 0dcdb299..fccd2add 100644 --- a/src/components/Dashboard/UserBasedNav.tsx +++ b/src/components/Dashboard/UserBasedNav.tsx @@ -30,8 +30,7 @@ const navigationMap: Record = { { name: "Dashboard", route: "/participant" }, { name: "Food Ticket", route: "/participant/profile/food-ticket" }, { name: "Important Information", route: "/participant/important-info" }, - // ADD RESOURCES BACK IN NEAR THE HACKATHON DATE - // { name: "Resources", route: "/participant/resources" }, + { name: "Resources", route: "/participant/resources" }, ], }; diff --git a/src/components/LandingPage/HeroSection.tsx b/src/components/LandingPage/HeroSection.tsx index 3ff619eb..968f6c7c 100644 --- a/src/components/LandingPage/HeroSection.tsx +++ b/src/components/LandingPage/HeroSection.tsx @@ -19,8 +19,8 @@ export default async function HeroSection() { return
    Hackathon hasn't been created yet
    ; } - const eventStartDate = new Date(2025, 10, 8, 9, 0, 0); // Month is 0-indexed → 10 = November - const eventEndDate = new Date(2025, 10, 9, 17, 0, 0); // Example: Sunday 5 PM + const eventStartDate = new Date(2025, 10, 8, 9, 30, 0); // Month is 0-indexed → 10 = November + const eventEndDate = new Date(2025, 10, 9, 18, 0, 0); // Example: Sunday 5 PM return (
    diff --git a/src/components/LandingPage/JudgeShowcase.tsx b/src/components/LandingPage/JudgeShowcase.tsx index 555cf217..a95ef9ad 100644 --- a/src/components/LandingPage/JudgeShowcase.tsx +++ b/src/components/LandingPage/JudgeShowcase.tsx @@ -50,9 +50,6 @@ export default async function JudgeShowcase() {
    ))}
    -

    - Full List Coming Soon! -

    ); } diff --git a/src/components/resources/eventsMembers.tsx b/src/components/resources/eventsMembers.tsx index 6ad0f577..6bc1d606 100644 --- a/src/components/resources/eventsMembers.tsx +++ b/src/components/resources/eventsMembers.tsx @@ -2,34 +2,28 @@ import MemberCards from "./memberCards"; export default function EventsMembers() { const eventsMembers = [ - { name: "Simar Kandola", discord: "coming soon", role: "VP Events" }, - { name: "Tanvi Mahal", discord: "coming soon", role: "Jr VP Events" }, - { name: "May Liu", discord: "coming soon", role: "Events Commissioner" }, + { name: "Simar Kandola", discord: "_the_real_ninja", role: "VP Events" }, + { name: "Tanvi Mahal", discord: "tm.88", role: "Jr VP Events" }, + { name: "May Liu", discord: "pickupmay", role: "Event Coordinator" }, { name: "Adithya Sagar", - discord: "coming soon", - role: "Events Commissioner", + discord: "adithyasagar778", + role: "Event Coordinator", }, { name: "Anthony Chan", - discord: "coming soon", - role: "Events Commissioner", + discord: "anthonyych4n", + role: "Event Coordinator", }, { - name: "Sebastian Nieto", - discord: "coming soon", - role: "Events Commissioner", + name: "Hira Asad", + discord: "purplebarney84", + role: "Event Coordinator", }, - { name: "Hira Asad", discord: "coming soon", role: "Events Commissioner" }, { name: "Abudllah Yousaf", - discord: "coming soon", - role: "Events Commissioner", - }, - { - name: "Ana DuCristea", - discord: "coming soon", - role: "Events Commissioner", + discord: "nicetrylilbro", + role: "Event Coordinator", }, ]; diff --git a/src/components/resources/generalMembers.tsx b/src/components/resources/generalMembers.tsx index 52180b5a..a90c4f9c 100644 --- a/src/components/resources/generalMembers.tsx +++ b/src/components/resources/generalMembers.tsx @@ -2,11 +2,16 @@ import MemberCards from "./memberCards"; export default function GeneralMembers() { const generalMembers = [ - { name: "Fiona Truong", discord: "coming soon", role: "Co-President" }, - { name: "Nathan Phan", discord: "coming soon", role: "Co-President" }, - { name: "Victoria Wong", discord: "coming soon", role: "VP Design" }, - { name: "Ryan Obiar", discord: "coming soon", role: "VP Marketing" }, - { name: "Grace Ilori", discord: "coming soon", role: "VP External" }, + { name: "Fiona Truong", discord: ".fionaaa", role: "Co-President" }, + { name: "Nathan Phan", discord: "natphaan", role: "Co-President" }, + { name: "Victoria Wong", discord: "shib3", role: "VP Design" }, + { name: "Ryan Obiar", discord: "", role: "VP Marketing" }, + { name: "Grace Ilori", discord: "g542_542", role: "VP External" }, + { + name: "Hanna Cho", + discord: "hannagracec", + role: "Marketing Commissioner", + }, ]; const generalBackground = "bg-pastel-pink"; diff --git a/src/components/resources/industryMembers.tsx b/src/components/resources/industryMembers.tsx index 1bd37ef4..1568e21e 100644 --- a/src/components/resources/industryMembers.tsx +++ b/src/components/resources/industryMembers.tsx @@ -2,8 +2,36 @@ import MemberCards from "./memberCards"; export default function IndustryMembers() { const industryMembers = [ - { name: "Kevin", discord: "KevinTheKeycap", role: "Organizer" }, - { name: "Kevin", discord: "KevinTheKeycap", role: "Organizer" }, + { + name: "Alexandru Parcioaga", + discord: "alexandrumentor_87981_83719", + role: "Arcurve", + }, + { name: "Karam Baroud", discord: "yeezy.yeezus", role: "ZeroKey" }, + { + name: "Sankar Achary Jankoti", + discord: "sankarjankoti_38615", + role: "Infosys Limited", + }, + { name: "Anthony Dam", discord: "anthony.cs", role: "Prev @ IBM" }, + { + name: "Sidrah Abdullah", + discord: "degr8sid", + role: "University of Calgary", + }, + { + name: "Farnaz Sheikhi", + discord: "", + role: "University of Calgary", + }, + { + name: "Miti Mazmudar", + discord: "dettanym", + role: "University of Calgary", + }, + { name: "Burton Jong", discord: "j05ng", role: "Pason" }, + { name: "Anthony Chan", discord: "anthonyych4n", role: "Cisco" }, + { name: "Matthew Liu", discord: "degr8sid", role: "Enbridge" }, ]; const industryBackground = "bg-medium-grey"; diff --git a/src/components/resources/memberCards.tsx b/src/components/resources/memberCards.tsx index ceb05c72..1381dfe1 100644 --- a/src/components/resources/memberCards.tsx +++ b/src/components/resources/memberCards.tsx @@ -15,7 +15,7 @@ export default function MemberCards({ }: memberProps) { return (

    {name}

    diff --git a/src/components/resources/mentors.tsx b/src/components/resources/mentors.tsx index 018e323f..3e5e3b98 100644 --- a/src/components/resources/mentors.tsx +++ b/src/components/resources/mentors.tsx @@ -7,8 +7,8 @@ import IndustryMembers from "./industryMembers"; import TechMembers from "./techMembers"; export default function Mentors() { - const roles = ["events", "tech", "general", "industry"]; - const [isSelected, setIsSelected] = useState("events"); + const roles = ["event", "tech", "general", "industry"]; + const [isSelected, setIsSelected] = useState("event"); return (
    @@ -24,7 +24,7 @@ export default function Mentors() {
    ))}
    - {isSelected === "events" && } + {isSelected === "event" && } {isSelected === "tech" && } {isSelected === "general" && } {isSelected === "industry" && } diff --git a/src/components/resources/techMembers.tsx b/src/components/resources/techMembers.tsx index 18cadf9b..52fe5a52 100644 --- a/src/components/resources/techMembers.tsx +++ b/src/components/resources/techMembers.tsx @@ -2,14 +2,16 @@ import MemberCards from "./memberCards"; export default function TechMembers() { const techMembers = [ - { name: "Burton Jong", discord: "coming soon", role: "VP Tech" }, - { name: "Fisayo Adabs", discord: "coming soon", role: "Tech Lead" }, - { name: "Justin Pham", discord: "coming soon", role: "Developer" }, - { name: "Anthony Chan", discord: "coming soon", role: "Developer" }, - { name: "Ajay Sallh", discord: "coming soon", role: "Developer" }, - { name: "Hooriya Khan", discord: "coming soon", role: "Developer" }, - { name: "Simar Kandola", discord: "coming soon", role: "Developer" }, - { name: "Fiona Truong", discord: "coming soon", role: "Developer" }, + { name: "Burton Jong", discord: "j05ng", role: "VP Tech" }, + { + name: "Simar Kandola", + discord: "_the_real_ninja", + role: "HTC Developer", + }, + { name: "Fiona Truong", discord: ".fionaaa", role: "HTC Developer" }, + { name: "Matthew Liu", discord: "degr8sid", role: "Tech Lead" }, + { name: "Yahya Asmara", discord: "aphva", role: "Developer" }, + { name: "Jason Duong", discord: "plehhelp", role: "Developer" }, ]; const techBackground = "bg-fuzzy-peach"; diff --git a/src/components/teamRegistration/TeamConfirmation.tsx b/src/components/teamRegistration/TeamConfirmation.tsx index 14093447..e16a6638 100644 --- a/src/components/teamRegistration/TeamConfirmation.tsx +++ b/src/components/teamRegistration/TeamConfirmation.tsx @@ -23,8 +23,8 @@ export default async function TeamConfirmation({ return
    Hackathon hasn't been created yet
    ; } - const eventStartDate = new Date(2025, 10, 8, 9, 0, 0); // Month is 0-indexed → 10 = November - const eventEndDate = new Date(2025, 10, 9, 17, 0, 0); // Example: Sunday 5 PM + const eventStartDate = new Date(2025, 10, 8, 9, 30, 0); // Month is 0-indexed → 10 = November + const eventEndDate = new Date(2025, 10, 9, 18, 0, 0); // Example: Sunday 5 PM return ( <> From f1615390ebc6ae1f4c89b1afc7ac00dd1ba4000c Mon Sep 17 00:00:00 2001 From: fisayoadabs Date: Sat, 8 Nov 2025 03:25:13 -0600 Subject: [PATCH 14/16] feat: added 7 hours --- src/components/LandingPage/HeroSection.tsx | 4 ++-- src/components/teamRegistration/TeamConfirmation.tsx | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/LandingPage/HeroSection.tsx b/src/components/LandingPage/HeroSection.tsx index 968f6c7c..c7a41313 100644 --- a/src/components/LandingPage/HeroSection.tsx +++ b/src/components/LandingPage/HeroSection.tsx @@ -19,8 +19,8 @@ export default async function HeroSection() { return
    Hackathon hasn't been created yet
    ; } - const eventStartDate = new Date(2025, 10, 8, 9, 30, 0); // Month is 0-indexed → 10 = November - const eventEndDate = new Date(2025, 10, 9, 18, 0, 0); // Example: Sunday 5 PM + const eventStartDate = new Date(2025, 10, 8, 17, 30, 0); // Month is 0-indexed → 10 = November + const eventEndDate = new Date(2025, 10, 9, 25, 0, 0); // Example: Sunday 5 PM return (
    diff --git a/src/components/teamRegistration/TeamConfirmation.tsx b/src/components/teamRegistration/TeamConfirmation.tsx index e16a6638..76a6545c 100644 --- a/src/components/teamRegistration/TeamConfirmation.tsx +++ b/src/components/teamRegistration/TeamConfirmation.tsx @@ -23,8 +23,8 @@ export default async function TeamConfirmation({ return
    Hackathon hasn't been created yet
    ; } - const eventStartDate = new Date(2025, 10, 8, 9, 30, 0); // Month is 0-indexed → 10 = November - const eventEndDate = new Date(2025, 10, 9, 18, 0, 0); // Example: Sunday 5 PM + const eventStartDate = new Date(2025, 10, 8, 17, 30, 0); // Month is 0-indexed → 10 = November + const eventEndDate = new Date(2025, 10, 9, 25, 0, 0); // Example: Sunday 5 PM return ( <> From 9f9652034caff2561cb4205755e51c2bf9180f5e Mon Sep 17 00:00:00 2001 From: fisayoadabs Date: Sat, 8 Nov 2025 03:36:34 -0600 Subject: [PATCH 15/16] fix: countdown timer --- src/components/LandingPage/HeroSection.tsx | 2 +- src/components/teamRegistration/TeamConfirmation.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/LandingPage/HeroSection.tsx b/src/components/LandingPage/HeroSection.tsx index c7a41313..1e1149a4 100644 --- a/src/components/LandingPage/HeroSection.tsx +++ b/src/components/LandingPage/HeroSection.tsx @@ -19,7 +19,7 @@ export default async function HeroSection() { return
    Hackathon hasn't been created yet
    ; } - const eventStartDate = new Date(2025, 10, 8, 17, 30, 0); // Month is 0-indexed → 10 = November + const eventStartDate = new Date(2025, 10, 8, 17, 0, 0); // Month is 0-indexed → 10 = November const eventEndDate = new Date(2025, 10, 9, 25, 0, 0); // Example: Sunday 5 PM return ( diff --git a/src/components/teamRegistration/TeamConfirmation.tsx b/src/components/teamRegistration/TeamConfirmation.tsx index 76a6545c..a4a868c6 100644 --- a/src/components/teamRegistration/TeamConfirmation.tsx +++ b/src/components/teamRegistration/TeamConfirmation.tsx @@ -23,7 +23,7 @@ export default async function TeamConfirmation({ return
    Hackathon hasn't been created yet
    ; } - const eventStartDate = new Date(2025, 10, 8, 17, 30, 0); // Month is 0-indexed → 10 = November + const eventStartDate = new Date(2025, 10, 8, 17, 0, 0); // Month is 0-indexed → 10 = November const eventEndDate = new Date(2025, 10, 9, 25, 0, 0); // Example: Sunday 5 PM return ( From d826dfdbb974dd4de963efc15c8c0d9834e63ebf Mon Sep 17 00:00:00 2001 From: fisayoadabs Date: Sat, 8 Nov 2025 03:52:47 -0600 Subject: [PATCH 16/16] idk anymore --- src/components/LandingPage/HeroSection.tsx | 2 +- src/components/teamRegistration/TeamConfirmation.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/LandingPage/HeroSection.tsx b/src/components/LandingPage/HeroSection.tsx index 1e1149a4..250efd95 100644 --- a/src/components/LandingPage/HeroSection.tsx +++ b/src/components/LandingPage/HeroSection.tsx @@ -19,7 +19,7 @@ export default async function HeroSection() { return
    Hackathon hasn't been created yet
    ; } - const eventStartDate = new Date(2025, 10, 8, 17, 0, 0); // Month is 0-indexed → 10 = November + const eventStartDate = new Date(2025, 10, 8, 16, 0, 0); // Month is 0-indexed → 10 = November const eventEndDate = new Date(2025, 10, 9, 25, 0, 0); // Example: Sunday 5 PM return ( diff --git a/src/components/teamRegistration/TeamConfirmation.tsx b/src/components/teamRegistration/TeamConfirmation.tsx index a4a868c6..45732ae4 100644 --- a/src/components/teamRegistration/TeamConfirmation.tsx +++ b/src/components/teamRegistration/TeamConfirmation.tsx @@ -23,7 +23,7 @@ export default async function TeamConfirmation({ return
    Hackathon hasn't been created yet
    ; } - const eventStartDate = new Date(2025, 10, 8, 17, 0, 0); // Month is 0-indexed → 10 = November + const eventStartDate = new Date(2025, 10, 8, 16, 0, 0); // Month is 0-indexed → 10 = November const eventEndDate = new Date(2025, 10, 9, 25, 0, 0); // Example: Sunday 5 PM return (