-
-
- We're sorry to see you declined your spot at VandyHacks. If this was a mistake
- and you'd like to attend, please email us at{' '}
-
- info@vandyhacks.org
-
- .
-
- We hope to see you next year!
-
-
-
Signed in as {session?.user?.email}
-
-
+
+
+
+ We're sorry to see you declined your spot at VandyHacks. If this was a mistake and
+ you'd like to attend, please email us at{' '}
+
+ info@vandyhacks.org
+
+ .
+
+ We hope to see you next year!
+
+
+
Signed in as {session?.user?.email}
+
- >
+
)}
)}
diff --git a/pages/api/email/templates/accepted.ts b/pages/api/email/templates/accepted.ts
index e2eb6397..ed8b24c9 100644
--- a/pages/api/email/templates/accepted.ts
+++ b/pages/api/email/templates/accepted.ts
@@ -265,7 +265,7 @@ export default (user: UserData): SendEmailRequest => ({
- Congratulations! You’re invited to be a part of VandyHacks IX: Ocean Edition! We enjoyed reading your application and would love to see your ideas come to life during our event on October 21st-23rd!
+ Congratulations! You’re invited to be a part of VandyHacks X: Neon Edition! We enjoyed reading your application and would love to see your ideas come to life during our event on October 21st-23rd!
|
@@ -601,7 +601,7 @@ export default (user: UserData): SendEmailRequest => ({
Text: {
Charset: 'UTF-8',
Data: `Hi ${escapeChars(user.name || user.name)},
- Congratulations! You’re invited to be a part of VandyHacks IX: Ocean Edition! We enjoyed reading your application and would love to see your ideas come to life during our event on October 21st-23rd!
+ Congratulations! You’re invited to be a part of VandyHacks X: Neon Edition! We enjoyed reading your application and would love to see your ideas come to life during our event on October 21st-23rd!
Head over to the application portal here and confirm your attendance by October 20th, 12:00 PM CDT.
diff --git a/pages/api/email/templates/confirmed.ts b/pages/api/email/templates/confirmed.ts
index 54f3cd85..6248dd95 100644
--- a/pages/api/email/templates/confirmed.ts
+++ b/pages/api/email/templates/confirmed.ts
@@ -1,3 +1,4 @@
+/* eslint-disable import/no-anonymous-default-export */
import { SendEmailRequest } from '@aws-sdk/client-ses';
import { UserData } from '../../../../types/database';
import { escapeChars } from '../email';
@@ -264,7 +265,7 @@ export default (user: UserData): SendEmailRequest => ({
- We're so excited that you'll be joining us for VandyHacks IX: Ocean Edition!
+ We're so excited that you'll be joining us for VandyHacks X: Neon Edition!
|
@@ -620,7 +621,7 @@ export default (user: UserData): SendEmailRequest => ({
Text: {
Charset: 'UTF-8',
Data: `Hey ${escapeChars(user.name)},
- We're so excited that you'll be joining us for VandyHacks IX: Ocean Edition!
+ We're so excited that you'll be joining us for VandyHacks X: Neon Edition!
This email is just to confirm that you've RSVPed to our event. We'll be in touch again soon with more information on our opening ceremony, but as a reminder, festivities will start at 8:00 PM CDT Friday, October 21st, and wrap up by 3:00 PM CDT Sunday, October 23rd.
diff --git a/pages/api/email/templates/rejected.ts b/pages/api/email/templates/rejected.ts
index 1ba83a0d..01eec0aa 100644
--- a/pages/api/email/templates/rejected.ts
+++ b/pages/api/email/templates/rejected.ts
@@ -265,7 +265,7 @@ export default (user: UserData): SendEmailRequest => ({
- Thank you for your interest in VandyHacks IX: Ocean Edition. Unfortunately, we are unable to offer you a spot at this year's event.
+ Thank you for your interest in VandyHacks X: Neon Edition. Unfortunately, we are unable to offer you a spot at this year's event.
|
@@ -586,7 +586,7 @@ export default (user: UserData): SendEmailRequest => ({
Text: {
Charset: 'UTF-8',
Data: `Hi ${escapeChars(user.name)},
- Thank you for your interest in VandyHacks IX: Ocean Edition. Unfortunately, we are unable to offer you a spot at this year's event.
+ Thank you for your interest in VandyHacks X: Neon Edition. Unfortunately, we are unable to offer you a spot at this year's event.
We really appreciate your interest and hope you will apply to another VandyHacks opportunity in the future.
Best,
The VandyHacks Team`,
diff --git a/pages/api/email/templates/reminderToSubmit.ts b/pages/api/email/templates/reminderToSubmit.ts
index 5236681b..b3cc75d7 100644
--- a/pages/api/email/templates/reminderToSubmit.ts
+++ b/pages/api/email/templates/reminderToSubmit.ts
@@ -277,7 +277,7 @@ export default (user: UserData): SendEmailRequest => ({
- We would love to have you join VandyHacks IX! Make sure you apply at vandyhacks.org by October 19th, at 11:59pm to have the chance to create unique projects, win prizes, attend workshops/speaker events, network with our sponsors, receive cool swag, eat free food, and so much more!
+ We would love to have you join VandyHacks X! Make sure you apply at vandyhacks.org by October 19th, at 11:59pm to have the chance to create unique projects, win prizes, attend workshops/speaker events, network with our sponsors, receive cool swag, eat free food, and so much more!
|
@@ -451,7 +451,7 @@ export default (user: UserData): SendEmailRequest => ({
You are receiving this application update because you created an account at apply.vandyhacks.org. If you would like to opt-out of
- any future emails pertaining to VandyHacks IX: Ocean Edition applications, please click here
|
@@ -592,7 +592,7 @@ export default (user: UserData): SendEmailRequest => ({
Charset: 'UTF-8',
Data: `Applications Closing Soon!
Hi ${escapeChars(user.name)},
- We’ve noticed you’ve created an application with us, but we do not have a record of your submission. We would love to have you join VandyHacks IX!
+ We’ve noticed you’ve created an application with us, but we do not have a record of your submission. We would love to have you join VandyHacks X!
Make sure you apply at vandyhacks.org by October 19th, at 11:59pm to have the chance to create unique projects, win prizes, attend workshops/speaker events, network with our sponsors, receive cool swag, eat free food, and so much more!
Feel free to email us at info@vandyhacks.org if you have any questions
Cheers,
diff --git a/pages/api/email/templates/submitted.ts b/pages/api/email/templates/submitted.ts
index 03a0ce71..4934ee1b 100644
--- a/pages/api/email/templates/submitted.ts
+++ b/pages/api/email/templates/submitted.ts
@@ -270,7 +270,7 @@ export default (user: UserData): SendEmailRequest => ({
- Thanks for taking the time to complete your application! We’re so excited that you’re interested in being a part of VandyHacks IX: Ocean Edition.
+ Thanks for taking the time to complete your application! We're so excited that you're interested in being a part of VandyHacks X: Neon Edition.
|
@@ -449,7 +449,7 @@ export default (user: UserData): SendEmailRequest => ({
You are receiving this application update because you applied at apply.vandyhacks.org. If you would like to opt-out of
- any future emails pertaining to VandyHacks IX: Ocean Edition applications, please click here
|
@@ -590,7 +590,7 @@ export default (user: UserData): SendEmailRequest => ({
Charset: 'UTF-8',
Data: `Thank you for applying!
Hi ${escapeChars(user.name)},
- Thanks for taking the time to complete your application! We’re so excited that you’re interested in being a part of VandyHacks IX: Ocean Edition.
+ Thanks for taking the time to complete your application! We’re so excited that you’re interested in being a part of VandyHacks X: Neon Edition.
We will be reviewing your submission soon, so be on the lookout for another email regarding your status.
Until then, stay hyped about VandyHacks! Follow us on Instagram to get the latest VH updates!
Cheers,
diff --git a/pages/api/email/templates/travelForm.ts b/pages/api/email/templates/travelForm.ts
index cb17d1ab..cbc7025e 100644
--- a/pages/api/email/templates/travelForm.ts
+++ b/pages/api/email/templates/travelForm.ts
@@ -270,7 +270,7 @@ export default (user: UserData): SendEmailRequest => ({
- Thanks for taking the time to complete your application! We’re so excited that you’re interested in being a part of VandyHacks IX: Ocean Edition.
+ Thanks for taking the time to complete your application! We’re so excited that you’re interested in being a part of VandyHacks X: Neon Edition.
|
@@ -470,7 +470,7 @@ export default (user: UserData): SendEmailRequest => ({
You are receiving this application update because you applied at apply.vandyhacks.org. If you would like to opt-out of
- any future emails pertaining to VandyHacks IX: Ocean Edition applications, please click here
|
@@ -611,7 +611,7 @@ export default (user: UserData): SendEmailRequest => ({
Charset: 'UTF-8',
Data: `You've indicated you'd like to apply for a travel reimbursement!
Hi ${escapeChars(user.name)},
- Thanks for taking the time to complete your application! We’re so excited that you’re interested in being a part of VandyHacks IX: Ocean Edition.
+ Thanks for taking the time to complete your application! We’re so excited that you’re interested in being a part of VandyHacks X: Neon Edition.
We will be reviewing your submission soon, so be on the lookout for another email regarding your status.
Until then, stay hyped about VandyHacks! Follow us on Instagram to get the latest VH updates!
Cheers,
@@ -620,7 +620,7 @@ export default (user: UserData): SendEmailRequest => ({
},
Subject: {
Charset: 'UTF-8',
- Data: 'Apply for a Travel Reimbursement to VandyHacks IX!',
+ Data: 'Apply for a Travel Reimbursement to VandyHacks X!',
},
},
Source: 'VandyHacks ',
diff --git a/pages/index.tsx b/pages/index.tsx
index 7328ab17..639984b7 100644
--- a/pages/index.tsx
+++ b/pages/index.tsx
@@ -15,8 +15,8 @@ export default function Page() {
return (
<>
- VandyHacks IX
-
+ VandyHacks X
+
@@ -24,10 +24,10 @@ export default function Page() {
-
+
\ No newline at end of file
diff --git a/public/form-submit.png b/public/form-submit.png
deleted file mode 100644
index e2013bea..00000000
Binary files a/public/form-submit.png and /dev/null differ
diff --git a/public/input-background.png b/public/input-background.png
deleted file mode 100644
index 44c0fc97..00000000
Binary files a/public/input-background.png and /dev/null differ
diff --git a/public/vh-banner.png b/public/vh-banner.png
deleted file mode 100644
index 160e499f..00000000
Binary files a/public/vh-banner.png and /dev/null differ
diff --git a/public/vh-logo.png b/public/vh-logo.png
new file mode 100644
index 00000000..fe5074cc
Binary files /dev/null and b/public/vh-logo.png differ
diff --git a/public/vh.png b/public/vh.png
index 618641d2..b3371655 100644
Binary files a/public/vh.png and b/public/vh.png differ
diff --git a/public/vhlogo-brown.svg b/public/vhlogo-brown.svg
deleted file mode 100644
index 7ce93f4c..00000000
--- a/public/vhlogo-brown.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/scripts/.gitignore b/scripts/.gitignore
deleted file mode 100644
index 11542275..00000000
--- a/scripts/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-sol.dump
-output.csv
\ No newline at end of file
diff --git a/scripts/addTestUsers.ts b/scripts/addTestUsers.ts
deleted file mode 100644
index a4a06d30..00000000
--- a/scripts/addTestUsers.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-add test users for dev builds to login w/ username/password and not oauth
-*/
-
-import { config as dotenvConfig } from 'dotenv';
-import dbConnect from '../middleware/database';
-
-import User from '../models/user';
-
-dotenvConfig();
-
-const { NAME, EMAIL, USER_TYPE } = process.env;
-
-if (!(NAME && EMAIL && USER_TYPE)) {
- console.log('Usage:');
- console.log('Please log into Witness. Then, make sure that the following variables are set in your .env:');
- console.log('NAME: name for the test user');
- console.log('EMAIL: fake email address to use for the test user');
- console.log(
- 'USER_TYPE: one of JUDGE or HACKER or ORGANIZER. Set this to whatever you want your user to be assigned as.'
- );
- console.log('================================================================');
- console.log(
- 'Run the script with DATABASE_URL="..." ts-node /addTestUsers.ts where ... is your DEVELOPMENT database connection string.'
- );
- process.exit(0);
-}
-
-async function populateDatabase() {
- console.log('Connecting to DB...');
- try {
- await dbConnect();
- } catch (e) {
- console.error(
- 'Error connecting to database. Make sure you specify the DATABASE_URL env variable when you run the script.'
- );
- console.error(e);
- }
-
- // set test to true
- const user = new User({ name: NAME, email: EMAIL, userType: USER_TYPE, test: true });
- await user.save();
-
- console.log('Test user created:', user);
- process.exit(0);
-}
-
-populateDatabase();
diff --git a/scripts/convertJudgeSchedules.py b/scripts/convertJudgeSchedules.py
deleted file mode 100644
index 71f83c87..00000000
--- a/scripts/convertJudgeSchedules.py
+++ /dev/null
@@ -1,64 +0,0 @@
-import csv
-import pickle
-from datetime import datetime, timedelta
-import os
-
-dir_path = os.path.dirname(os.path.realpath(__file__))
-with open(f"{dir_path}/sol.dump", "rb") as f:
- sessions = pickle.load(f)
-
-with open(f"{dir_path}/teams.txt") as f:
- TEAMS = f.read().splitlines()
-
-JUDGES = [
- "Your Mom",
- "Your Dad",
- "Your Brother",
- "Your Sister",
- "Your Uncle",
- "Your Aunt",
- "Your Mom's Sister",
- "Your Dad's Stepson",
- "Your Wife's Boyfriend",
- "Your Wife's Boyfriend's Son",
- "Your Grandmother",
- "Your Grandmother's Boyfriend",
- "Your Grandfather",
- "Your Grandfather's Boyfriend",
- "Your Grandfather's Son",
-]
-
-START_TIME = "Mon Jan 19 1970 15:48:07 GMT-0600"
-
-TZ_EXTRA = " (Central Standard Time)"
-TIME_DELTA_10 = timedelta(minutes=10)
-TIME_FMT = "%a %b %d %Y %H:%M:%S %Z%z"
-START_TIME = datetime.strptime(START_TIME, TIME_FMT)
-
-
-fields = ["Time", "Zoom", "Judge1", "Judge2", "Judge3", "TeamName"]
-
-with open(f"{dir_path}/output.csv", "w", newline="") as f:
- writer = csv.writer(f)
- writer.writerow(fields)
-
- team_num = 0
- time = START_TIME
- done = False
- for session_num, session in enumerate(sessions):
- if session_num == len(sessions) // 2:
- time += TIME_DELTA_10 # Add to account for the break
- for i, triplet in enumerate(session):
- judge_names = [JUDGES[i] for i in triplet]
- if team_num >= len(TEAMS):
- done = True
- break
- line = [datetime.strftime(time, TIME_FMT) + TZ_EXTRA, f"https://vhl.ink/room-{i+1}", *judge_names, TEAMS[team_num]]
- writer.writerow(line)
- team_num += 1
- time += TIME_DELTA_10
- if done:
- break
-
-if team_num < len(TEAMS):
- print("Not all teams being judged")
diff --git a/scripts/createJudgeSchedules.py b/scripts/createJudgeSchedule.py
similarity index 100%
rename from scripts/createJudgeSchedules.py
rename to scripts/createJudgeSchedule.py
diff --git a/scripts/populateDb.ts b/scripts/populateDb.ts
deleted file mode 100644
index 9408981b..00000000
--- a/scripts/populateDb.ts
+++ /dev/null
@@ -1,266 +0,0 @@
-import { faker } from '@faker-js/faker';
-const { ObjectID } = require('mongodb');
-import mongoose from 'mongoose';
-import { UserData, TeamData, ScoreData, JudgingSessionData, ApplicationStatus } from '../types/database';
-import { config as dotenvConfig } from 'dotenv';
-import dbConnect from '../middleware/database';
-
-import User from '../models/user';
-import Team from '../models/team';
-import Score from '../models/scores';
-import JudgingSession from '../models/JudgingSession';
-
-import { parse } from 'ts-command-line-args';
-import { ConsoleSqlOutlined } from '@ant-design/icons';
-
-dotenvConfig();
-
-interface Arguments {
- numHackers?: number;
- numJudges?: number;
- judgingLength?: number;
- numRooms?: number;
- startTimeStamp?: number;
- email?: string;
- userType?: string;
- databaseUrl: string;
- help?: boolean;
-}
-
-export const args = {
- // Defaults
- ...{
- numHackers: 56,
- numJudges: 13,
- judgingLength: 10 * 1000 * 60, // 10 min
- numRooms: 5,
- startTimeStamp: new Date('2022-10-23T10:00:00').getTime(), // Start time
- userType: 'HACKER',
- },
- ...parse(
- {
- databaseUrl: { type: String, alias: 'D', description: '***REQUIRED***: Database connection string' },
- numHackers: {
- type: Number,
- alias: 'H',
- optional: true,
- description: 'Number of hackers to generate (default 500)',
- },
- numJudges: {
- type: Number,
- alias: 'J',
- optional: true,
- description: 'Number of judges to generate (default 20)',
- },
- judgingLength: {
- type: Number,
- alias: 'L',
- optional: true,
- description: 'Length of judging period in milliseconds (default 10 seconds)',
- },
- numRooms: {
- type: Number,
- alias: 'R',
- optional: true,
- description: 'Number of zoom rooms to generate (default 5)',
- },
- startTimeStamp: {
- type: Number,
- alias: 'S',
- optional: true,
- description: 'Unix timestamp (in milliseconds) for when judging will begin (default 1 minute from now)',
- },
- email: {
- type: String,
- alias: 'E',
- optional: true,
- description: 'Your email address (only if you want to be included in judging, default none).',
- },
- userType: {
- type: String,
- alias: 'U',
- optional: true,
- description: 'Your user type (only if you want to be included in judging, default HACKER).',
- },
- help: { type: Boolean, optional: true, alias: 'h', description: 'Prints this usage guide' },
- },
- {
- helpArg: 'help',
- headerContentSections: [{ header: 'Populate DB Config', content: 'Populates the database with fake data' }],
- }
- ),
-};
-
-function generateUser(userType: string): UserData {
- return {
- _id: new ObjectID(),
- name: faker.name.findName(),
- email: faker.internet.email(),
- image: faker.image.image(),
- userType: userType,
- applicationStatus: ApplicationStatus.CREATED,
- };
-}
-
-function generateTeam(members: mongoose.Schema.Types.ObjectId[], devPostIncrement: number): TeamData {
- return {
- _id: new ObjectID(),
- name: `${faker.commerce.productName()} ${faker.commerce.productName()}`,
- joinCode: faker.datatype.uuid(),
- devpost: `https://devpost.com/${devPostIncrement}`,
- members: members,
- scores: [],
- createdAt: new Date(),
- };
-}
-
-function generateScore(team: mongoose.Schema.Types.ObjectId, judge: mongoose.Schema.Types.ObjectId): ScoreData {
- return {
- _id: new ObjectID(),
- team: team,
- judge: judge,
- technicalAbility: faker.datatype.number(7),
- creativity: faker.datatype.number(7),
- utility: faker.datatype.number(7),
- presentation: faker.datatype.number(7),
- wowFactor: faker.datatype.number(7),
- comments: faker.lorem.sentence(),
- feedback: faker.lorem.sentence(),
- };
-}
-
-async function populateDatabase() {
- console.log('Connecting to DB...');
- try {
- await dbConnect(args.databaseUrl);
- } catch (e) {
- console.error(
- 'Error connecting to database. Make sure you specify the DATABASE_URL env variable when you run the script.'
- );
- }
-
- const you =
- args.email !== undefined
- ? await User.findOneAndUpdate({ email: args.email }, { userType: args.userType })
- : null;
- // make all judges and hackers
- console.log('Generating hackers and judges...');
- const judges = Array(args.numJudges - 1)
- .fill(null)
- .map(_ => generateUser('JUDGE'));
-
- // include yourself as a judge
- if (args.userType === 'JUDGE') {
- judges.splice(0, 1);
- judges.push(you);
- }
- const hackers = Array(args.numHackers)
- .fill(null)
- .map(_ => generateUser('HACKER'));
- if (args.userType === 'HACKER') {
- hackers.splice(0, 1);
- hackers.push(you);
- }
- // run team matching
- console.log('Putting hackers into teams...');
- const teams = [];
- const hackersCopy = hackers.slice();
- let devPostIncrement = 0;
- while (hackersCopy.length > 0) {
- const members = hackersCopy.splice(0, Math.floor(Math.random() * 4 + 1));
- if (members[0] === null) {
- break;
- }
- console.log(members);
- const team = generateTeam(
- members.map(member => member._id),
- devPostIncrement
- );
- devPostIncrement = devPostIncrement + 1;
- members.forEach(member => (member.team = team._id));
- teams.push(team);
- }
- console.log('Creating judging sessions...');
- // Get zoom rooms (this is actually how it'll be done in prod too)
- // Fill
- const judgingSessions: JudgingSessionData[] = [];
- const teamsCopy = teams.slice();
- let timestamp = args.startTimeStamp;
- while (teamsCopy.length > 0) {
- let teamsInThisTimeSlot = Math.floor(1 + Math.random() * 5);
- if (teamsInThisTimeSlot > teamsCopy.length) teamsInThisTimeSlot = teamsCopy.length;
- for (let i = 0; i < teamsInThisTimeSlot; i++) {
- const judgesCopy = judges.slice();
- const team = teamsCopy.pop() as TeamData;
- judgingSessions.push({
- _id: new ObjectID(),
- team,
- // Takes a random judge (without replacement)
- judge: judgesCopy[Math.floor(Math.random() * judgesCopy.length)],
- time: new Date(timestamp).toISOString(),
- });
- }
- timestamp += args.judgingLength;
- }
-
- // Generate scores
- console.log('Scoring...');
- const scores = judgingSessions.map(item => generateScore(item.team._id, item.judge._id));
-
- console.log('Inserting teams...');
- let teamsCount = (await Team.insertMany(teams)).length;
- console.log('Inserting users...');
- if (args.userType === 'HACKER') hackers.splice(hackers.length - 1);
- else if (args.userType === 'JUDGE') judges.splice(judges.length - 1);
- let usersCount = (await User.insertMany(hackers)).length + (await User.insertMany(judges)).length;
- console.log('Inserting scores...');
- let scoresCount = (await Score.insertMany(scores)).length;
- console.log('Inserting schedule...');
- let judgingSessionCount = (await JudgingSession.insertMany(judgingSessions)).length;
-
- console.log('==========DONE==========');
- console.log(`Teams: ${teamsCount}`);
- console.log(`Users: ${usersCount}`);
- console.log(`Scores: ${scoresCount}`);
- console.log(`JudgingSessions: ${judgingSessionCount}`);
-
- process.exit(0);
-}
-
-async function generateJudgingSessions() {
- console.log('Connecting to DB...');
- try {
- await dbConnect(args.databaseUrl);
- } catch (e) {
- console.error(
- 'Error connecting to database. Make sure you specify the DATABASE_URL env variable when you run the script.'
- );
- }
- const judgingSessions: JudgingSessionData[] = [];
- const teamsCopy = await Team.find({});
- const allJudges = await User.find({ userType: 'JUDGE' });
- console.log(allJudges);
- let timestamp = args.startTimeStamp;
- while (teamsCopy.length > 0) {
- let teamsInThisTimeSlot = Math.floor(1 + Math.random() * 5);
- if (teamsInThisTimeSlot > teamsCopy.length) teamsInThisTimeSlot = teamsCopy.length;
- for (let i = 0; i < teamsInThisTimeSlot; i++) {
- const judgesCopy = allJudges.slice();
- const team = teamsCopy.pop() as TeamData;
- judgingSessions.push({
- _id: new ObjectID(),
- team,
- // Takes a random judge (without replacement)
- judge: judgesCopy[Math.floor(Math.random() * judgesCopy.length)],
- time: new Date(timestamp).toISOString(),
- });
- }
- timestamp += args.judgingLength;
- }
- console.log('Inserting schedule...');
- let judgingSessionCount = (await JudgingSession.insertMany(judgingSessions)).length;
- process.exit(0);
-}
-
-//populateDatabase();
-generateJudgingSessions();
diff --git a/scripts/teams.txt b/scripts/teams.txt
deleted file mode 100644
index 4ddb2c53..00000000
--- a/scripts/teams.txt
+++ /dev/null
@@ -1,100 +0,0 @@
-Team 0
-Team 1
-Team 2
-Team 3
-Team 4
-Team 5
-Team 6
-Team 7
-Team 8
-Team 9
-Team 10
-Team 11
-Team 12
-Team 13
-Team 14
-Team 15
-Team 16
-Team 17
-Team 18
-Team 19
-Team 20
-Team 21
-Team 22
-Team 23
-Team 24
-Team 25
-Team 26
-Team 27
-Team 28
-Team 29
-Team 30
-Team 31
-Team 32
-Team 33
-Team 34
-Team 35
-Team 36
-Team 37
-Team 38
-Team 39
-Team 40
-Team 41
-Team 42
-Team 43
-Team 44
-Team 45
-Team 46
-Team 47
-Team 48
-Team 49
-Team 50
-Team 51
-Team 52
-Team 53
-Team 54
-Team 55
-Team 56
-Team 57
-Team 58
-Team 59
-Team 60
-Team 61
-Team 62
-Team 63
-Team 64
-Team 65
-Team 66
-Team 67
-Team 68
-Team 69
-Team 70
-Team 71
-Team 72
-Team 73
-Team 74
-Team 75
-Team 76
-Team 77
-Team 78
-Team 79
-Team 80
-Team 81
-Team 82
-Team 83
-Team 84
-Team 85
-Team 86
-Team 87
-Team 88
-Team 89
-Team 90
-Team 91
-Team 92
-Team 93
-Team 94
-Team 95
-Team 96
-Team 97
-Team 98
-Team 99
\ No newline at end of file
diff --git a/styles/Form.module.css b/styles/Form.module.css
index e982ad49..97215bb4 100644
--- a/styles/Form.module.css
+++ b/styles/Form.module.css
@@ -1,72 +1,101 @@
.Form {
- background-image: url('/input-background.png');
+ background-color: rgba(0, 0, 0, 0.5);
background-position: center;
background-size: 100% 100%;
background-repeat: no-repeat;
- padding: 5em;
+ border-radius: 40px;
+ padding: 2em 5em;
width: 70%;
margin: auto;
+ color: white;
}
.SubmittedForm {
- background-image: url('/form-background.svg');
- background-repeat: no-repeat;
- background-size: cover;
+ background-color: rgba(0, 0, 0, 0.5);
+ border-radius: 40px;
width: 60%;
text-align: center;
margin: auto;
- display: flex;
-
- flex-direction: column;
- justify-content: center;
+ color: white;
}
-.Title {
- width: 70%;
- height: 100px;
+.TitleLogo {
+ height: 200px;
margin: auto;
- margin-bottom: 1.5em;
- background-image: url('/vh-banner.png');
+ background-image: url('/vh-logo.png');
background-repeat: no-repeat;
background-position: center;
background-size: contain;
}
-.Input {
- height: 40px;
- font-size: large;
-}
-.InputAddress {
+.TitleContainer {
display: flex;
+ justify-content: center;
}
-.InputCity {
- width: 90%;
+.Title {
+ color: white;
+ font-size: 2.5rem;
+ font-weight: 550;
+ margin-bottom: 1rem;
+ text-align: center;
+ width: 300px;
}
-.InputState {
- width: 80%;
+.RadioButton {
+ background-color: rgba(117, 116, 116, 0.7);
+ color: white;
+ border: 1px solid white;
+ border-radius: 10px;
+ margin: 0 5px;
}
-.InputZip {
- width: 80%;
+.SignedInStatus {
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ margin-bottom: 30px;
}
-.Submit {
- background-image: url('/form-submit.png');
- background-repeat: no-repeat;
- background-position: center;
- background-size: contain;
- background-color: transparent;
- cursor: pointer;
+
+.Label {
+ color: white;
+ font-weight: bold;
+ font-size: medium;
+ white-space: break-spaces;
+ height: max-content;
+ width: max-content;
width: 300px;
- height: 120px;
+ padding-bottom: 10px;
+ text-align: right;
+ padding-top: 10px;
+}
+
+.TextWhite * {
+ color: white;
+ padding: 1px 0px;
+}
+
+.RadioGroup {
+ padding: 1px 0px;
+}
+
+.Input {
+ background: rgba(117, 116, 116, 0.7) !important;
+ border-radius: 15px;
border: 0;
- margin: auto;
- display: block;
+ height: 40px;
+ font-size: large;
+ color: white;
}
-.Submit:hover {
- filter: brightness(107%);
+.FormInput {
+ background-color: rgba(117, 116, 116, 0.7);
+ color: white;
+ border: 0px;
+ border-radius: 10px;
+ height: 40px;
+ padding: 10px;
}
.ThankYouMessage {
@@ -84,12 +113,179 @@
align-items: center;
}
+.SubmitButton {
+ margin-bottom: 60px;
+ border-radius: 10px;
+ background-color: rgba(100, 100, 100, 0.3);
+ border-color: gray;
+}
+
+.SubmitButton:hover {
+ background-color: rgba(100, 100, 100, 0.5);
+ border-color: gray;
+}
+
+.LabelOvernight {
+ color: white;
+ font-weight: bold;
+ font-size: medium;
+ white-space: break-spaces;
+ width: max-content;
+ text-align: right;
+ padding-top: 10px;
+ margin-bottom: 125px;
+}
+
+.LabelContact {
+ color: white;
+ font-weight: bold;
+ font-size: medium;
+ white-space: break-spaces;
+ width: max-content;
+ text-align: right;
+ padding-top: 10px;
+ margin-bottom: 125px;
+}
+
+.LabelCitizen {
+ color: white;
+ font-weight: bold;
+ font-size: medium;
+ white-space: break-spaces;
+ width: max-content;
+ text-align: right;
+ padding-top: 10px;
+ margin-bottom: 305px;
+}
+
+@media (max-width: 1550px) {
+ .Label {
+ width: 230px;
+ }
+
+ .LabelOvernight {
+ color: white;
+ font-weight: bold;
+ font-size: medium;
+ white-space: break-spaces;
+ width: max-content;
+ text-align: right;
+ padding-top: 10px;
+ margin-bottom: 125px;
+ }
+
+ .LabelContact {
+ color: white;
+ font-weight: bold;
+ font-size: medium;
+ white-space: break-spaces;
+ width: max-content;
+ text-align: right;
+ padding-top: 10px;
+ margin-bottom: 125px;
+ }
+
+ .LabelCitizen {
+ color: white;
+ font-weight: bold;
+ font-size: medium;
+ white-space: break-spaces;
+ width: max-content;
+ text-align: right;
+ padding-top: 10px;
+ margin-bottom: 305px;
+ }
+}
+
+@media (max-width: 1250px) {
+ .Label {
+ width: 180px;
+ }
+
+ .LabelOvernight {
+ color: white;
+ font-weight: bold;
+ font-size: medium;
+ white-space: break-spaces;
+ width: max-content;
+ text-align: right;
+ padding-top: 10px;
+ margin-bottom: 125px;
+ }
+
+ .LabelContact {
+ color: white;
+ font-weight: bold;
+ font-size: medium;
+ white-space: break-spaces;
+ width: max-content;
+ text-align: right;
+ padding-top: 10px;
+ margin-bottom: 125px;
+ }
+
+ .LabelCitizen {
+ color: white;
+ font-weight: bold;
+ font-size: medium;
+ white-space: break-spaces;
+ width: max-content;
+ text-align: right;
+ padding-top: 10px;
+ margin-bottom: 305px;
+ }
+}
+
+/* add media query for ipad screen */
+@media (max-width: 1024px) {
+ .Form {
+ padding: 2em;
+ }
+ .Label {
+ width: 150px;
+ }
+
+ .LabelOvernight {
+ color: white;
+ font-weight: bold;
+ font-size: medium;
+ white-space: break-spaces;
+ width: max-content;
+ text-align: right;
+ padding-top: 10px;
+ margin-bottom: 125px;
+ }
+
+ .LabelContact {
+ color: white;
+ font-weight: bold;
+ font-size: medium;
+ white-space: break-spaces;
+ width: max-content;
+ text-align: right;
+ padding-top: 10px;
+ margin-bottom: 125px;
+ }
+
+ .LabelCitizen {
+ color: white;
+ font-weight: bold;
+ font-size: medium;
+ white-space: break-spaces;
+ width: max-content;
+ text-align: right;
+ padding-top: 10px;
+ margin-bottom: 325px;
+ }
+}
+
/* add media query for mobile screen */
@media (max-width: 768px) {
.Form {
- padding: 5em;
+ padding: 4em;
width: 100%;
font-size: xx-small;
+ margin-top: 50px;
}
.Title {
margin-bottom: 0;
@@ -127,4 +323,78 @@
.SignInInfo {
font-size: 10px;
}
+ .Label {
+ width: 140px;
+ }
+ .LabelOvernight {
+ color: white;
+ font-weight: bold;
+ font-size: medium;
+ white-space: break-spaces;
+ width: max-content;
+ text-align: left;
+ padding-top: 10px;
+ margin-bottom: 70px !important;
+ }
+
+ .LabelContact {
+ color: white;
+ font-weight: bold;
+ font-size: medium;
+ white-space: break-spaces;
+ width: max-content;
+ text-align: left;
+ padding-top: 10px;
+ margin-bottom: 100px !important;
+ }
+
+ .LabelCitizen {
+ color: white;
+ font-weight: bold;
+ font-size: medium;
+ white-space: break-spaces;
+ width: max-content;
+ text-align: left;
+ padding-top: 10px;
+ margin-bottom: 300px !important;
+ }
+}
+
+@media (max-width: 578px) {
+ .Label {
+ width: max-content;
+ }
+
+ .LabelOvernight {
+ color: white;
+ font-weight: bold;
+ font-size: medium;
+ white-space: break-spaces;
+ width: max-content;
+ text-align: left;
+ padding-top: 10px;
+ margin-bottom: 10px !important;
+ }
+
+ .LabelContact {
+ color: white;
+ font-weight: bold;
+ font-size: medium;
+ white-space: break-spaces;
+ width: max-content;
+ text-align: left;
+ padding-top: 10px;
+ margin-bottom: 20px !important;
+ }
+
+ .LabelCitizen {
+ color: white;
+ font-weight: bold;
+ font-size: medium;
+ white-space: break-spaces;
+ width: max-content;
+ text-align: left;
+ padding-top: 10px;
+ margin-bottom: 100px !important;
+ }
}
diff --git a/styles/Signin.module.css b/styles/Signin.module.css
index 76b0f3e9..f476d8e0 100644
--- a/styles/Signin.module.css
+++ b/styles/Signin.module.css
@@ -11,17 +11,17 @@
.Card {
display: flex;
width: auto;
- border-radius: 8px;
+ border-radius: 30px;
padding: 1.5rem;
justify-content: center;
align-items: center;
- background-color: #e5c49b61;
+ background-color: #00000099;
}
.Logo {
- width: 170px;
- margin-top: 20px;
- margin-bottom: -20px;
+ width: 300px;
+ margin-top: 10px;
+ margin-bottom: -60px;
}
.Title {
@@ -30,12 +30,23 @@
margin-bottom: 1rem;
}
+.ButtonStyle {
+ border-radius: 10px;
+ background-color: rgba(100, 100, 100, 0.3);
+ border-color: gray;
+}
+
+.ButtonStyle:hover {
+ background-color: rgba(100, 100, 100, 0.5);
+ border-color: gray;
+}
+
/* add media query for mobile screen */
@media (max-width: 768px) {
.Logo {
margin-top: 30px;
margin-bottom: -30px;
- width: 120px;
+ width: 250px;
}
.Title {
font-size: 1.5rem;