diff --git a/apps/web/public/img/SWIVEL Knockout-b.svg b/apps/web/public/img/SWIVEL Knockout-b.svg
new file mode 100644
index 00000000..9fa59080
--- /dev/null
+++ b/apps/web/public/img/SWIVEL Knockout-b.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/web/public/img/SWIVEL Knockout-p.svg b/apps/web/public/img/SWIVEL Knockout-p.svg
new file mode 100644
index 00000000..13a4492b
--- /dev/null
+++ b/apps/web/public/img/SWIVEL Knockout-p.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/web/public/img/SWIVEL Knockout-w.svg b/apps/web/public/img/SWIVEL Knockout-w.svg
new file mode 100644
index 00000000..e74a82f8
--- /dev/null
+++ b/apps/web/public/img/SWIVEL Knockout-w.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/web/public/img/SWIVEL RGB.svg b/apps/web/public/img/SWIVEL RGB.svg
new file mode 100644
index 00000000..2b0dfca3
--- /dev/null
+++ b/apps/web/public/img/SWIVEL RGB.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/web/public/img/dash/pass/bg.png b/apps/web/public/img/dash/pass/bg.png
index 646062c6..9fa91c6f 100644
Binary files a/apps/web/public/img/dash/pass/bg.png and b/apps/web/public/img/dash/pass/bg.png differ
diff --git a/apps/web/public/img/team/personality/alejandro-mugica.jpg b/apps/web/public/img/team/personality/alejandro-mugica.jpg
new file mode 100644
index 00000000..ce4de724
Binary files /dev/null and b/apps/web/public/img/team/personality/alejandro-mugica.jpg differ
diff --git a/apps/web/public/img/team/personality/alesia-tonegari.jpg b/apps/web/public/img/team/personality/alesia-tonegari.jpg
new file mode 100644
index 00000000..3603336f
Binary files /dev/null and b/apps/web/public/img/team/personality/alesia-tonegari.jpg differ
diff --git a/apps/web/public/img/team/personality/alessandro-espinosa.jpg b/apps/web/public/img/team/personality/alessandro-espinosa.jpg
new file mode 100644
index 00000000..ae5c6003
Binary files /dev/null and b/apps/web/public/img/team/personality/alessandro-espinosa.jpg differ
diff --git a/apps/web/public/img/team/personality/atticus-ramirez.jpg b/apps/web/public/img/team/personality/atticus-ramirez.jpg
new file mode 100644
index 00000000..0c5636a0
Binary files /dev/null and b/apps/web/public/img/team/personality/atticus-ramirez.jpg differ
diff --git a/apps/web/public/img/team/personality/carter-lavigne.jpeg b/apps/web/public/img/team/personality/carter-lavigne.jpeg
new file mode 100644
index 00000000..6a1e959a
Binary files /dev/null and b/apps/web/public/img/team/personality/carter-lavigne.jpeg differ
diff --git a/apps/web/public/img/team/personality/christian-walker.jpg b/apps/web/public/img/team/personality/christian-walker.jpg
new file mode 100644
index 00000000..2a74fcf8
Binary files /dev/null and b/apps/web/public/img/team/personality/christian-walker.jpg differ
diff --git a/apps/web/public/img/team/personality/daniel-ruiz.jpg b/apps/web/public/img/team/personality/daniel-ruiz.jpg
new file mode 100644
index 00000000..a237d560
Binary files /dev/null and b/apps/web/public/img/team/personality/daniel-ruiz.jpg differ
diff --git a/apps/web/public/img/team/personality/eddie-ortiz.jpeg b/apps/web/public/img/team/personality/eddie-ortiz.jpeg
new file mode 100644
index 00000000..a8696c32
Binary files /dev/null and b/apps/web/public/img/team/personality/eddie-ortiz.jpeg differ
diff --git a/apps/web/public/img/team/personality/inor-wang.jpg b/apps/web/public/img/team/personality/inor-wang.jpg
new file mode 100644
index 00000000..2ff4e8fd
Binary files /dev/null and b/apps/web/public/img/team/personality/inor-wang.jpg differ
diff --git a/apps/web/public/img/team/personality/jacob-ellerbrock.jpg b/apps/web/public/img/team/personality/jacob-ellerbrock.jpg
new file mode 100644
index 00000000..2b18c0fd
Binary files /dev/null and b/apps/web/public/img/team/personality/jacob-ellerbrock.jpg differ
diff --git a/apps/web/public/img/team/personality/jibril-pascua.jpg b/apps/web/public/img/team/personality/jibril-pascua.jpg
new file mode 100644
index 00000000..e215f399
Binary files /dev/null and b/apps/web/public/img/team/personality/jibril-pascua.jpg differ
diff --git a/apps/web/public/img/team/personality/kailey-perrino.jpg b/apps/web/public/img/team/personality/kailey-perrino.jpg
new file mode 100644
index 00000000..0632cce9
Binary files /dev/null and b/apps/web/public/img/team/personality/kailey-perrino.jpg differ
diff --git a/apps/web/public/img/team/personality/kathy-nguyen.jpg b/apps/web/public/img/team/personality/kathy-nguyen.jpg
new file mode 100644
index 00000000..f43433ad
Binary files /dev/null and b/apps/web/public/img/team/personality/kathy-nguyen.jpg differ
diff --git a/apps/web/public/img/team/personality/kelinda-shen.jpg b/apps/web/public/img/team/personality/kelinda-shen.jpg
new file mode 100644
index 00000000..3c3eb675
Binary files /dev/null and b/apps/web/public/img/team/personality/kelinda-shen.jpg differ
diff --git a/apps/web/public/img/team/personality/liam-murray.jpg b/apps/web/public/img/team/personality/liam-murray.jpg
new file mode 100644
index 00000000..2baa4ed5
Binary files /dev/null and b/apps/web/public/img/team/personality/liam-murray.jpg differ
diff --git a/apps/web/public/img/team/personality/mei-sullum.jpeg b/apps/web/public/img/team/personality/mei-sullum.jpeg
new file mode 100644
index 00000000..a5989dae
Binary files /dev/null and b/apps/web/public/img/team/personality/mei-sullum.jpeg differ
diff --git a/apps/web/public/img/team/personality/miguel-oseguera.JPG b/apps/web/public/img/team/personality/miguel-oseguera.JPG
new file mode 100644
index 00000000..7f3995c0
Binary files /dev/null and b/apps/web/public/img/team/personality/miguel-oseguera.JPG differ
diff --git a/apps/web/public/img/team/personality/natasha-blussick.jpeg b/apps/web/public/img/team/personality/natasha-blussick.jpeg
new file mode 100644
index 00000000..273c2e44
Binary files /dev/null and b/apps/web/public/img/team/personality/natasha-blussick.jpeg differ
diff --git a/apps/web/public/img/team/personality/natasha-blussick.jpg b/apps/web/public/img/team/personality/natasha-blussick.jpg
new file mode 100644
index 00000000..a28e854a
Binary files /dev/null and b/apps/web/public/img/team/personality/natasha-blussick.jpg differ
diff --git a/apps/web/public/img/team/personality/nathan-zuniga.jpg b/apps/web/public/img/team/personality/nathan-zuniga.jpg
new file mode 100644
index 00000000..da5e6479
Binary files /dev/null and b/apps/web/public/img/team/personality/nathan-zuniga.jpg differ
diff --git a/apps/web/public/img/team/personality/paolo-lay.jpg b/apps/web/public/img/team/personality/paolo-lay.jpg
new file mode 100644
index 00000000..1b2f2b2e
Binary files /dev/null and b/apps/web/public/img/team/personality/paolo-lay.jpg differ
diff --git a/apps/web/public/img/team/personality/rahul-paul.jpg b/apps/web/public/img/team/personality/rahul-paul.jpg
new file mode 100644
index 00000000..0d035aeb
Binary files /dev/null and b/apps/web/public/img/team/personality/rahul-paul.jpg differ
diff --git a/apps/web/public/img/team/personality/reese-sylvester.JPG b/apps/web/public/img/team/personality/reese-sylvester.JPG
new file mode 100644
index 00000000..7838d964
Binary files /dev/null and b/apps/web/public/img/team/personality/reese-sylvester.JPG differ
diff --git a/apps/web/public/img/team/personality/sean-jauregui.jpg b/apps/web/public/img/team/personality/sean-jauregui.jpg
new file mode 100644
index 00000000..300a3163
Binary files /dev/null and b/apps/web/public/img/team/personality/sean-jauregui.jpg differ
diff --git a/apps/web/public/img/team/personality/sean-otoole.jpg b/apps/web/public/img/team/personality/sean-otoole.jpg
new file mode 100644
index 00000000..e14bdf33
Binary files /dev/null and b/apps/web/public/img/team/personality/sean-otoole.jpg differ
diff --git a/apps/web/public/img/team/personality/tosin-adefashe.jpg b/apps/web/public/img/team/personality/tosin-adefashe.jpg
new file mode 100644
index 00000000..8742165f
Binary files /dev/null and b/apps/web/public/img/team/personality/tosin-adefashe.jpg differ
diff --git a/apps/web/public/img/team/personality/trae-ramirez.jpg b/apps/web/public/img/team/personality/trae-ramirez.jpg
new file mode 100644
index 00000000..11c2241e
Binary files /dev/null and b/apps/web/public/img/team/personality/trae-ramirez.jpg differ
diff --git a/apps/web/public/img/team/personality/vivian-tran.jpg b/apps/web/public/img/team/personality/vivian-tran.jpg
new file mode 100644
index 00000000..aff09f6d
Binary files /dev/null and b/apps/web/public/img/team/personality/vivian-tran.jpg differ
diff --git a/apps/web/public/img/team/professional/alejandro-mugica.jpeg b/apps/web/public/img/team/professional/alejandro-mugica.jpeg
new file mode 100644
index 00000000..58d84008
Binary files /dev/null and b/apps/web/public/img/team/professional/alejandro-mugica.jpeg differ
diff --git a/apps/web/public/img/team/professional/alesia-tonegari.jpg b/apps/web/public/img/team/professional/alesia-tonegari.jpg
new file mode 100644
index 00000000..93b3e527
Binary files /dev/null and b/apps/web/public/img/team/professional/alesia-tonegari.jpg differ
diff --git a/apps/web/public/img/team/professional/alessandro-espinosa.jpg b/apps/web/public/img/team/professional/alessandro-espinosa.jpg
new file mode 100644
index 00000000..a442fe60
Binary files /dev/null and b/apps/web/public/img/team/professional/alessandro-espinosa.jpg differ
diff --git a/apps/web/public/img/team/professional/atticus-ramirez.jpg b/apps/web/public/img/team/professional/atticus-ramirez.jpg
new file mode 100644
index 00000000..5a0d5134
Binary files /dev/null and b/apps/web/public/img/team/professional/atticus-ramirez.jpg differ
diff --git a/apps/web/public/img/team/professional/carter-lavigne.jpeg b/apps/web/public/img/team/professional/carter-lavigne.jpeg
new file mode 100644
index 00000000..4d78e750
Binary files /dev/null and b/apps/web/public/img/team/professional/carter-lavigne.jpeg differ
diff --git a/apps/web/public/img/team/professional/christian-walker.jpg b/apps/web/public/img/team/professional/christian-walker.jpg
new file mode 100644
index 00000000..27215675
Binary files /dev/null and b/apps/web/public/img/team/professional/christian-walker.jpg differ
diff --git a/apps/web/public/img/team/professional/daniel-ruiz.jpg b/apps/web/public/img/team/professional/daniel-ruiz.jpg
new file mode 100644
index 00000000..9a11eb7b
Binary files /dev/null and b/apps/web/public/img/team/professional/daniel-ruiz.jpg differ
diff --git a/apps/web/public/img/team/professional/eddie-ortiz.jpeg b/apps/web/public/img/team/professional/eddie-ortiz.jpeg
new file mode 100644
index 00000000..8b563a31
Binary files /dev/null and b/apps/web/public/img/team/professional/eddie-ortiz.jpeg differ
diff --git a/apps/web/public/img/team/professional/inor-wang.jpg b/apps/web/public/img/team/professional/inor-wang.jpg
new file mode 100644
index 00000000..df5a657b
Binary files /dev/null and b/apps/web/public/img/team/professional/inor-wang.jpg differ
diff --git a/apps/web/public/img/team/professional/jacob-ellerbrock.jpg b/apps/web/public/img/team/professional/jacob-ellerbrock.jpg
new file mode 100644
index 00000000..b31ecfae
Binary files /dev/null and b/apps/web/public/img/team/professional/jacob-ellerbrock.jpg differ
diff --git a/apps/web/public/img/team/professional/jibril-pascua.jpg b/apps/web/public/img/team/professional/jibril-pascua.jpg
new file mode 100644
index 00000000..81f380e8
Binary files /dev/null and b/apps/web/public/img/team/professional/jibril-pascua.jpg differ
diff --git a/apps/web/public/img/team/professional/kailey-perrino.jpg b/apps/web/public/img/team/professional/kailey-perrino.jpg
new file mode 100644
index 00000000..592643f5
Binary files /dev/null and b/apps/web/public/img/team/professional/kailey-perrino.jpg differ
diff --git a/apps/web/public/img/team/professional/kathy-nguyen.jpg b/apps/web/public/img/team/professional/kathy-nguyen.jpg
new file mode 100644
index 00000000..b47352c7
Binary files /dev/null and b/apps/web/public/img/team/professional/kathy-nguyen.jpg differ
diff --git a/apps/web/public/img/team/professional/kelinda-shen.jpg b/apps/web/public/img/team/professional/kelinda-shen.jpg
new file mode 100644
index 00000000..d08f755e
Binary files /dev/null and b/apps/web/public/img/team/professional/kelinda-shen.jpg differ
diff --git a/apps/web/public/img/team/professional/liam-murray.jpeg b/apps/web/public/img/team/professional/liam-murray.jpeg
new file mode 100644
index 00000000..0d1802bc
Binary files /dev/null and b/apps/web/public/img/team/professional/liam-murray.jpeg differ
diff --git a/apps/web/public/img/team/professional/mei-sullum.jpeg b/apps/web/public/img/team/professional/mei-sullum.jpeg
new file mode 100644
index 00000000..b26fb791
Binary files /dev/null and b/apps/web/public/img/team/professional/mei-sullum.jpeg differ
diff --git a/apps/web/public/img/team/professional/miguel-oseguera.JPG b/apps/web/public/img/team/professional/miguel-oseguera.JPG
new file mode 100644
index 00000000..e161319a
Binary files /dev/null and b/apps/web/public/img/team/professional/miguel-oseguera.JPG differ
diff --git a/apps/web/public/img/team/professional/natasha-blussick.jpg b/apps/web/public/img/team/professional/natasha-blussick.jpg
new file mode 100644
index 00000000..4a28f67e
Binary files /dev/null and b/apps/web/public/img/team/professional/natasha-blussick.jpg differ
diff --git a/apps/web/public/img/team/professional/nathan-zuniga.jpg b/apps/web/public/img/team/professional/nathan-zuniga.jpg
new file mode 100644
index 00000000..805229df
Binary files /dev/null and b/apps/web/public/img/team/professional/nathan-zuniga.jpg differ
diff --git a/apps/web/public/img/team/professional/paolo-lay.jpg b/apps/web/public/img/team/professional/paolo-lay.jpg
new file mode 100644
index 00000000..aed34a35
Binary files /dev/null and b/apps/web/public/img/team/professional/paolo-lay.jpg differ
diff --git a/apps/web/public/img/team/professional/rahul-paul.jpg b/apps/web/public/img/team/professional/rahul-paul.jpg
new file mode 100644
index 00000000..91297ca0
Binary files /dev/null and b/apps/web/public/img/team/professional/rahul-paul.jpg differ
diff --git a/apps/web/public/img/team/professional/reese-sylvester.JPG b/apps/web/public/img/team/professional/reese-sylvester.JPG
new file mode 100644
index 00000000..48a78aa9
Binary files /dev/null and b/apps/web/public/img/team/professional/reese-sylvester.JPG differ
diff --git a/apps/web/public/img/team/professional/sean-jauregui.jpeg b/apps/web/public/img/team/professional/sean-jauregui.jpeg
new file mode 100644
index 00000000..77b728b4
Binary files /dev/null and b/apps/web/public/img/team/professional/sean-jauregui.jpeg differ
diff --git a/apps/web/public/img/team/professional/sean-otoole.JPG b/apps/web/public/img/team/professional/sean-otoole.JPG
new file mode 100644
index 00000000..6f6222bb
Binary files /dev/null and b/apps/web/public/img/team/professional/sean-otoole.JPG differ
diff --git a/apps/web/public/img/team/professional/tosin-adefashe.jpg b/apps/web/public/img/team/professional/tosin-adefashe.jpg
new file mode 100644
index 00000000..9fec77d4
Binary files /dev/null and b/apps/web/public/img/team/professional/tosin-adefashe.jpg differ
diff --git a/apps/web/public/img/team/professional/trae-ramirez.jpg b/apps/web/public/img/team/professional/trae-ramirez.jpg
new file mode 100644
index 00000000..2cc1210c
Binary files /dev/null and b/apps/web/public/img/team/professional/trae-ramirez.jpg differ
diff --git a/apps/web/public/img/team/professional/vivian-tran.png b/apps/web/public/img/team/professional/vivian-tran.png
new file mode 100644
index 00000000..7461d089
Binary files /dev/null and b/apps/web/public/img/team/professional/vivian-tran.png differ
diff --git a/apps/web/public/team.json b/apps/web/public/team.json
new file mode 100644
index 00000000..125e113d
--- /dev/null
+++ b/apps/web/public/team.json
@@ -0,0 +1,544 @@
+{
+ "team": [
+ {
+ "name": "Nathan Zuniga",
+ "nameSize": 3,
+ "team": "Director",
+ "professionalPicture": {
+ "link": "/img/team/professional/nathan-zuniga.jpg",
+ "zoom": 2.5,
+ "x": 15,
+ "y": 80
+ },
+ "personalityPicture": {
+ "link": "/img/team/personality/nathan-zuniga.jpg",
+ "zoom": 1.7,
+ "x": 0,
+ "y": 100
+ },
+ "linkedin": "",
+ "github": "",
+ "personal": ""
+ },
+ {
+ "name": "Liam Murray",
+ "nameSize": 3,
+ "team": "Co-Director",
+ "professionalPicture": {
+ "link": "/img/team/professional/liam-murray.jpeg",
+ "zoom": 1.7,
+ "x": -20,
+ "y": 0
+ },
+ "personalityPicture": {
+ "link": "/img/team/personality/liam-murray.jpg",
+ "zoom": 2.4,
+ "x": 96,
+ "y": 80
+ },
+ "linkedin": "",
+ "github": "",
+ "personal": ""
+ },
+ {
+ "name": "Mei Sullum",
+ "nameSize": 3,
+ "team": "Logistics",
+ "professionalPicture": {
+ "link": "/img/team/professional/mei-sullum.jpeg",
+ "zoom": 1.3,
+ "x": 0,
+ "y": 15
+ },
+ "personalityPicture": {
+ "link": "/img/team/personality/mei-sullum.jpeg",
+ "zoom": 1.1,
+ "x": 0,
+ "y": -15
+ },
+ "linkedin": "https://www.linkedin.com/in/meira-sullum-55198521b/",
+ "github": "",
+ "personal": ""
+ },
+ {
+ "name": "Natasha Blussick",
+ "nameSize": 2,
+ "team": "Logistics / PR",
+ "professionalPicture": {
+ "link": "/img/team/professional/natasha-blussick.jpg",
+ "zoom": 1.4,
+ "x": 0,
+ "y": -10
+ },
+ "personalityPicture": {
+ "link": "/img/team/personality/natasha-blussick.jpeg",
+ "zoom": 1.2,
+ "x": 0,
+ "y": 0
+ },
+ "linkedin": "https://www.linkedin.com/in/natasha-blussick/",
+ "github": "",
+ "personal": ""
+ },
+ {
+ "name": "Alejandro Mugica",
+ "nameSize": 2,
+ "team": "Logistics",
+ "professionalPicture": {
+ "link": "/img/team/professional/alejandro-mugica.jpeg",
+ "zoom": 1.5,
+ "x": -28,
+ "y": 0
+ },
+ "personalityPicture": {
+ "link": "/img/team/personality/alejandro-mugica.jpg",
+ "zoom": 1.2,
+ "x": 0,
+ "y": 0
+ },
+ "linkedin": "www.linkedin.com/in/alejandromugica",
+ "github": "",
+ "personal": ""
+ },
+ {
+ "name": "Paolo Lay",
+ "nameSize": 3,
+ "team": "Logistics",
+ "professionalPicture": {
+ "link": "/img/team/professional/paolo-lay.jpg",
+ "zoom": 1.3,
+ "x": 30,
+ "y": 0
+ },
+ "personalityPicture": {
+ "link": "/img/team/personality/paolo-lay.jpg",
+ "zoom": 2.3,
+ "x": 5,
+ "y": 86
+ },
+ "linkedin": "",
+ "github": "",
+ "personal": ""
+ },
+ {
+ "name": "Trae Ramirez",
+ "nameSize": 3,
+ "team": "Hacker Experience",
+ "professionalPicture": {
+ "link": "/img/team/professional/trae-ramirez.jpg",
+ "zoom": 2.3,
+ "x": 90,
+ "y": 80
+ },
+ "personalityPicture": {
+ "link": "/img/team/personality/trae-ramirez.jpg",
+ "zoom": 2.3,
+ "x": 90,
+ "y": 80
+ },
+ "linkedin": "",
+ "github": "",
+ "personal": ""
+ },
+ {
+ "name": "Vivian Tran",
+ "nameSize": 3,
+ "team": "Hacker Experience",
+ "professionalPicture": {
+ "link": "/img/team/professional/vivian-tran.png",
+ "zoom": 2,
+ "x": 0,
+ "y": 8
+ },
+ "personalityPicture": {
+ "link": "/img/team/personality/vivian-tran.jpg",
+ "zoom": 2.3,
+ "x": -80,
+ "y": 90
+ },
+ "linkedin": "https://www.linkedin.com/in/vivtratx/",
+ "github": "",
+ "personal": ""
+ },
+ {
+ "name": "Christian Walker",
+ "nameSize": 2,
+ "team": "Tech",
+ "professionalPicture": {
+ "link": "/img/team/professional/christian-walker.jpg",
+ "zoom": 2.6,
+ "x": 10,
+ "y": 70
+ },
+ "personalityPicture": {
+ "link": "/img/team/personality/christian-walker.jpg",
+ "zoom": 1.1,
+ "x": 0,
+ "y": 0
+ },
+ "linkedin": "",
+ "github": "",
+ "personal": ""
+ },
+ {
+ "name": "Jacob Ellerbrock",
+ "nameSize": 2,
+ "team": "Tech / Logistics",
+ "professionalPicture": {
+ "link": "/img/team/professional/jacob-ellerbrock.jpg",
+ "zoom": 2,
+ "x": -10,
+ "y": 80
+ },
+ "personalityPicture": {
+ "link": "/img/team/personality/jacob-ellerbrock.jpg",
+ "zoom": 2.3,
+ "x": 70,
+ "y": 89
+ },
+ "linkedin": "https://www.linkedin.com/in/jacobellerbrock",
+ "github": "https://github.com/jacobellerbrock",
+ "personal": ""
+ },
+ {
+ "name": "Carter LaVigne",
+ "nameSize": 3,
+ "team": "Tech",
+ "professionalPicture": {
+ "link": "/img/team/professional/carter-lavigne.jpeg",
+ "zoom": 1.8,
+ "x": 55,
+ "y": 85
+ },
+ "personalityPicture": {
+ "link": "/img/team/personality/carter-lavigne.jpeg",
+ "zoom": 1.3,
+ "x": 30,
+ "y": 0
+ },
+ "linkedin": "https://www.linkedin.com/in/carter-m-lavigne",
+ "github": "https://github.com/spiderCSman",
+ "personal": ""
+ },
+ {
+ "name": "Alessandro Espinosa",
+ "nameSize": 1.8,
+ "team": "Media",
+ "professionalPicture": {
+ "link": "/img/team/professional/alessandro-espinosa.jpg",
+ "zoom": 1.2,
+ "x": 0,
+ "y": 15
+ },
+ "personalityPicture": {
+ "link": "/img/team/personality/alessandro-espinosa.jpg",
+ "zoom": 1,
+ "x": 0,
+ "y": 0
+ },
+ "linkedin": "",
+ "github": "",
+ "personal": ""
+ },
+ {
+ "name": "Daniel Ruiz",
+ "nameSize": 3,
+ "team": "Media",
+ "professionalPicture": {
+ "link": "/img/team/professional/daniel-ruiz.jpg",
+ "zoom": 1.4,
+ "x": -40,
+ "y": 30
+ },
+ "personalityPicture": {
+ "link": "/img/team/personality/daniel-ruiz.jpg",
+ "zoom": 1,
+ "x": 0,
+ "y": 0
+ },
+ "linkedin": "",
+ "github": "",
+ "personal": ""
+ },
+ {
+ "name": "Sean O'Toole",
+ "nameSize": 3,
+ "team": "Media",
+ "professionalPicture": {
+ "link": "/img/team/professional/sean-otoole.JPG",
+ "zoom": 1.4,
+ "x": 20,
+ "y": -50
+ },
+ "personalityPicture": {
+ "link": "/img/team/personality/sean-otoole.jpg",
+ "zoom": 1.2,
+ "x": 0,
+ "y": 10
+ },
+ "linkedin": "https://www.linkedin.com/in/seanotoole04/",
+ "github": "https://github.com/SeanAidanOToole",
+ "personal": ""
+ },
+ {
+ "name": "Inor Wang",
+ "nameSize": 3,
+ "team": "Media",
+ "professionalPicture": {
+ "link": "/img/team/professional/inor-wang.jpg",
+ "zoom": 1.4,
+ "x": 41,
+ "y": 40
+ },
+ "personalityPicture": {
+ "link": "/img/team/personality/inor-wang.jpg",
+ "zoom": 1.2,
+ "x": 0,
+ "y": 0
+ },
+ "linkedin": "https://www.linkedin.com/in/inorwang",
+ "github": "https://github.com/inor-w",
+ "personal": ""
+ },
+ {
+ "name": "Sean Jauregui",
+ "nameSize": 3,
+ "team": "Media",
+ "professionalPicture": {
+ "link": "/img/team/professional/sean-jauregui.jpeg",
+ "zoom": 1.2,
+ "x": 0,
+ "y": 10
+ },
+ "personalityPicture": {
+ "link": "/img/team/personality/sean-jauregui.jpg",
+ "zoom": 2.35,
+ "x": -33,
+ "y": 90
+ },
+ "linkedin": "https://www.linkedin.com/in/seanjauregui",
+ "github": "",
+ "personal": "https://www.instagram.com/scottish_artist3379/"
+ },
+ {
+ "name": "Jibril Pascua",
+ "nameSize": 3,
+ "team": "Media",
+ "professionalPicture": {
+ "link": "/img/team/professional/jibril-pascua.jpg",
+ "zoom": 1.3,
+ "x": 0,
+ "y": 40
+ },
+ "personalityPicture": {
+ "link": "/img/team/personality/jibril-pascua.jpg",
+ "zoom": 1.3,
+ "x": 0,
+ "y": 30
+ },
+ "linkedin": "",
+ "github": "",
+ "personal": ""
+ },
+ {
+ "name": "Atticus Ramirez",
+ "nameSize": 3,
+ "team": "Media",
+ "professionalPicture": {
+ "link": "/img/team/professional/atticus-ramirez.jpg",
+ "zoom": 1.5,
+ "x": 0,
+ "y": 35
+ },
+ "personalityPicture": {
+ "link": "/img/team/personality/atticus-ramirez.jpg",
+ "zoom": 1.2,
+ "x": 0,
+ "y": 0
+ },
+ "linkedin": "",
+ "github": "",
+ "personal": ""
+ },
+ {
+ "name": "Tosin Adefashe",
+ "nameSize": 3,
+ "team": "Media",
+ "professionalPicture": {
+ "link": "/img/team/professional/tosin-adefashe.jpg",
+ "zoom": 1.7,
+ "x": 10,
+ "y": 0
+ },
+ "personalityPicture": {
+ "link": "/img/team/personality/tosin-adefashe.jpg",
+ "zoom": 1.5,
+ "x": 10,
+ "y": 40
+ },
+ "linkedin": "",
+ "github": "",
+ "personal": ""
+ },
+ {
+ "name": "Alesia Tonegari",
+ "nameSize": 3,
+ "team": "Media",
+ "professionalPicture": {
+ "link": "/img/team/professional/alesia-tonegari.jpg",
+ "zoom": 1.4,
+ "x": -40,
+ "y": 30
+ },
+ "personalityPicture": {
+ "link": "/img/team/personality/alesia-tonegari.jpg",
+ "zoom": 1.2,
+ "x": 0,
+ "y": 10
+ },
+ "linkedin": "https://www.linkedin.com/in/alesia-tonegari-436aa72b0?utm_source=share&utm_campaign=share_via&utm_content=profile&utm_medium=ios_app",
+ "github": "",
+ "personal": ""
+ },
+ {
+ "name": "Kelinda Shen",
+ "nameSize": 3,
+ "team": "Public Relations",
+ "professionalPicture": {
+ "link": "/img/team/professional/kelinda-shen.jpg",
+ "zoom": 2.3,
+ "x": -70,
+ "y": 89
+ },
+ "personalityPicture": {
+ "link": "/img/team/personality/kelinda-shen.jpg",
+ "zoom": 2.3,
+ "x": -70,
+ "y": 89
+ },
+ "linkedin": "www.linkedin.com/in/reese-sylvester-234490242",
+ "github": "",
+ "personal": "https://www.instagram.com/sawinez/"
+ },
+ {
+ "name": "Kailey Perrino",
+ "nameSize": 3,
+ "team": "Public Relations",
+ "professionalPicture": {
+ "link": "/img/team/professional/kailey-perrino.jpg",
+ "zoom": 1.1,
+ "x": 0,
+ "y": 0
+ },
+ "personalityPicture": {
+ "link": "/img/team/personality/kailey-perrino.jpg",
+ "zoom": 2.3,
+ "x": 100,
+ "y": 90
+ },
+ "linkedin": "https://www.linkedin.com/in/kailey-perrino/",
+ "github": "",
+ "personal": ""
+ },
+ {
+ "name": "Reese Sylvester",
+ "nameSize": 3,
+ "team": "Public Relations",
+ "professionalPicture": {
+ "link": "/img/team/professional/reese-sylvester.JPG",
+ "zoom": 2,
+ "x": 0,
+ "y": 20
+ },
+ "personalityPicture": {
+ "link": "/img/team/personality/reese-sylvester.JPG",
+ "zoom": 2.55,
+ "x": 0,
+ "y": 70
+ },
+ "linkedin": "https://www.linkedin.com/in/reese-sylvester-234490242",
+ "github": "",
+ "personal": "https://www.instagram.com/sawinez/"
+ },
+ {
+ "name": "Miguel Oseguera",
+ "nameSize": 2,
+ "team": "Public Relations",
+ "professionalPicture": {
+ "link": "/img/team/professional/miguel-oseguera.JPG",
+ "zoom": 1.2,
+ "x": 0,
+ "y": -25
+ },
+ "personalityPicture": {
+ "link": "/img/team/personality/miguel-oseguera.JPG",
+ "zoom": 1.2,
+ "x": 0,
+ "y": 0
+ },
+ "linkedin": "https://www.linkedin.com/in/miguel-oseguera-0b5306281",
+ "github": "",
+ "personal": ""
+ },
+ {
+ "name": "Kathy Nguyen",
+ "nameSize": 2,
+ "team": "Design",
+ "professionalPicture": {
+ "link": "/img/team/professional/kathy-nguyen.jpg",
+ "zoom": 1.5,
+ "x": 0,
+ "y": 13
+ },
+ "personalityPicture": {
+ "link": "/img/team/personality/kathy-nguyen.jpg",
+ "zoom": 2.4,
+ "x": 55,
+ "y": 82
+ },
+ "linkedin": "",
+ "github": "",
+ "personal": ""
+ },
+ {
+ "name": "Rahul Paul",
+ "nameSize": 3,
+ "team": "Design",
+ "professionalPicture": {
+ "link": "/img/team/professional/rahul-paul.jpg",
+ "zoom": 1.3,
+ "x": 0,
+ "y": 10
+ },
+ "personalityPicture": {
+ "link": "/img/team/personality/rahul-paul.jpg",
+ "zoom": 1.5,
+ "x": 10,
+ "y": 30
+ },
+ "linkedin": "",
+ "github": "",
+ "personal": ""
+ },
+ {
+ "name": "Eddie Ortiz",
+ "nameSize": 3,
+ "team": "Outreach",
+ "professionalPicture": {
+ "link": "/img/team/professional/eddie-ortiz.jpeg",
+ "zoom": 1.3,
+ "x": 0,
+ "y": 0
+ },
+ "personalityPicture": {
+ "link": "/img/team/personality/eddie-ortiz.jpeg",
+ "zoom": 1,
+ "x": 0,
+ "y": 0
+ },
+ "linkedin": "http://linkedin.com/in/joseortiz-jeo",
+ "github": "https://github.com/Buffet936",
+ "personal": ""
+ }
+ ]
+}
\ No newline at end of file
diff --git a/apps/web/src/app/api/registration/create/route.ts b/apps/web/src/app/api/registration/create/route.ts
index 783dc742..f41821af 100644
--- a/apps/web/src/app/api/registration/create/route.ts
+++ b/apps/web/src/app/api/registration/create/route.ts
@@ -38,19 +38,6 @@ export async function POST(req: Request) {
);
}
- if (user.publicMetadata.registrationComplete) {
- console.log("already registered");
- return NextResponse.json(
- {
- success: false,
- message: "You are already registered.",
- },
- { status: 400 },
- );
- }
-
- // TODO: Might be removable? Not sure if this is needed. In every case, the sure should have a piece of metadata that says if they are registered or not.
-
const lookupByUserID = await getUser(user.id);
if (lookupByUserID) {
@@ -104,9 +91,9 @@ export async function POST(req: Request) {
skills: body.skills.map((v) => v.text.toLowerCase()),
profilePhoto: user.imageUrl,
isFullyRegistered: true,
- phoneNumber:body.phoneNumber,
+ phoneNumber: body.phoneNumber,
isSearchable: body.profileIsSearchable,
- countryOfResidence:body.countryOfResidence,
+ countryOfResidence: body.countryOfResidence,
});
await tx.insert(userHackerData).values({
@@ -129,13 +116,6 @@ export async function POST(req: Request) {
});
});
- clerkClient.users.updateUser(user.id, {
- publicMetadata: {
- ...user.publicMetadata,
- registrationComplete: true,
- },
- });
-
// sendEmail({
// to: body.email,
// subject: `You are now registered for ${c.hackathonName} ${c.itteration}!`,
diff --git a/apps/web/src/app/dash/layout.tsx b/apps/web/src/app/dash/layout.tsx
index 4b84510b..dd79cb58 100644
--- a/apps/web/src/app/dash/layout.tsx
+++ b/apps/web/src/app/dash/layout.tsx
@@ -19,7 +19,7 @@ interface DashLayoutProps {
export default async function DashLayout({ children }: DashLayoutProps) {
const clerkUser = await currentUser();
- if (!clerkUser || !clerkUser.publicMetadata.registrationComplete) {
+ if (!clerkUser || (await getUser(clerkUser.id)) == undefined) {
return redirect("/register");
}
diff --git a/apps/web/src/app/dash/pass/page.tsx b/apps/web/src/app/dash/pass/page.tsx
index cf75abd6..0dc16f3f 100644
--- a/apps/web/src/app/dash/pass/page.tsx
+++ b/apps/web/src/app/dash/pass/page.tsx
@@ -51,8 +51,8 @@ function EventPass({ qrPayload, user, clerk, guild }: EventPassProps) {
return (
-
-
+
-
-
-
-
-
- {/*
*/}
+
+
+
+
+
+
+
{c.hackathonName}{" "}
-
+
{c.itteration}
@@ -106,10 +102,10 @@ function EventPass({ qrPayload, user, clerk, guild }: EventPassProps) {
-
+
-
+
-
+
Account Settings
diff --git a/apps/web/src/app/favicon.ico b/apps/web/src/app/favicon.ico
index 4246b4ca..48136672 100644
Binary files a/apps/web/src/app/favicon.ico and b/apps/web/src/app/favicon.ico differ
diff --git a/apps/web/src/app/globals.css b/apps/web/src/app/globals.css
index afd26021..9755fa02 100644
--- a/apps/web/src/app/globals.css
+++ b/apps/web/src/app/globals.css
@@ -140,4 +140,4 @@
.register-clip {
clip-path: polygon(10% 0, 100% 0, 90% 100%, 0 100%);
-}
\ No newline at end of file
+}
diff --git a/apps/web/src/app/page.tsx b/apps/web/src/app/page.tsx
index f7825e31..414c1019 100644
--- a/apps/web/src/app/page.tsx
+++ b/apps/web/src/app/page.tsx
@@ -6,13 +6,13 @@ import About from "@/components/landing/About";
import Partners from "@/components/landing/Partners";
import Footer from "@/components/landing/Footer";
import MLHBadge from "@/components/landing/MLHBadge";
-
+import Team from "@/components/landing/Team";
import { Oswald } from "next/font/google";
import WorkWithUs from "@/components/landing/WorkWithUs";
import TrailerSection from "@/components/landing/TrailerSection";
import { Suspense } from "react";
import { Skeleton } from "@/components/shadcn/ui/skeleton";
-import {WavyBackground} from "@/components/landing/WavyBackground";
+import { WavyBackground } from "@/components/landing/WavyBackground";
const oswald = Oswald({
variable: "--font-oswald",
@@ -21,43 +21,46 @@ const oswald = Oswald({
export default function Home() {
return (
-
+
}>
-
-
-
-
-
-
+
+
+
+
+
+
{/* */}
-
-
-
+
+
+
+
);
}
export const runtime = "edge";
-export const revalidate = 30;
\ No newline at end of file
+export const revalidate = 30;
diff --git a/apps/web/src/app/settings/layout.tsx b/apps/web/src/app/settings/layout.tsx
index fbfb40d2..f0497ab5 100644
--- a/apps/web/src/app/settings/layout.tsx
+++ b/apps/web/src/app/settings/layout.tsx
@@ -5,6 +5,7 @@ import SettingsSection from "@/components/settings/SettingsSection";
import Navbar from "@/components/shared/Navbar";
import { Settings } from "lucide-react";
import ClientToast from "@/components/shared/ClientToast";
+import { getUser } from "db/functions/user";
export default async function ({ children }: { children: ReactNode }) {
const { userId } = await auth();
@@ -14,7 +15,7 @@ export default async function ({ children }: { children: ReactNode }) {
return redirect("/sign-in");
}
- if (!user.publicMetadata.registrationComplete) {
+ if ((await getUser(userId)) == undefined) {
return redirect("/register");
}
diff --git a/apps/web/src/app/user/[tag]/page.tsx b/apps/web/src/app/user/[tag]/page.tsx
index f4d0c5ed..eb8bb538 100644
--- a/apps/web/src/app/user/[tag]/page.tsx
+++ b/apps/web/src/app/user/[tag]/page.tsx
@@ -18,7 +18,7 @@ export default async function ({ params }: { params: { tag: string } }) {
-
+
+
+
+
About:
+
+ {user.bio}
+
+
+ {user.skills &&
+ (user.skills as string[]).length > 0 ? (
+
+
Skills:
+
+ {(user.skills as string[]).join(", ")}
+
+
+ ) : null}
+
{user.hackerData.GitHub &&
user.hackerData.GitHub.length > 0 && (
)}
-
-
About
-
- {user.bio}
-
- {user.skills && (user.skills as string[]).length > 0 ? (
- <>
-
Skills
-
{(user.skills as string[]).join(", ")}
- >
- ) : null}
-
>
diff --git a/apps/web/src/components/dash/overview/ServerBubbles.tsx b/apps/web/src/components/dash/overview/ServerBubbles.tsx
index e01e995b..b694789f 100644
--- a/apps/web/src/components/dash/overview/ServerBubbles.tsx
+++ b/apps/web/src/components/dash/overview/ServerBubbles.tsx
@@ -32,7 +32,7 @@ export function TitleBubble() {
-
+
{c.hackathonName}
diff --git a/apps/web/src/components/dash/shared/ProfileButton.tsx b/apps/web/src/components/dash/shared/ProfileButton.tsx
index 2ae43017..3b47e860 100644
--- a/apps/web/src/components/dash/shared/ProfileButton.tsx
+++ b/apps/web/src/components/dash/shared/ProfileButton.tsx
@@ -115,7 +115,7 @@ export default async function ProfileButton() {
Report a Bug
-
+
Settings
diff --git a/apps/web/src/components/dash/shared/TiltWrapper.tsx b/apps/web/src/components/dash/shared/TiltWrapper.tsx
index 5b8e531b..2a04d502 100644
--- a/apps/web/src/components/dash/shared/TiltWrapper.tsx
+++ b/apps/web/src/components/dash/shared/TiltWrapper.tsx
@@ -18,7 +18,7 @@ export default function TiltWrapper({ children }: { children: ReactNode }) {
tiltReverse={true}
glareEnable={doTilt}
glareMaxOpacity={0.2}
- glareColor="hsl(var(--hackathon-primary))"
+ glareColor="#94a3b8"
glarePosition="all"
glareBorderRadius="1.5rem"
tiltEnable={doTilt}
diff --git a/apps/web/src/components/landing/About.tsx b/apps/web/src/components/landing/About.tsx
index f7dbfafd..d5d802ee 100644
--- a/apps/web/src/components/landing/About.tsx
+++ b/apps/web/src/components/landing/About.tsx
@@ -6,13 +6,15 @@ import Balancer from "react-wrap-balancer";
export default function About() {
const [isExpanded, setIsExpanded] = useState(false);
const buttonRef = useRef(null);
+ const firstLoad = useRef(false);
const toggleExpand = () => {
+ if (!firstLoad.current) firstLoad.current = true;
setIsExpanded(!isExpanded);
};
useEffect(() => {
- if (!isExpanded && buttonRef.current) {
+ if (!isExpanded && buttonRef.current && firstLoad.current) {
buttonRef.current.scrollIntoView({
behavior: "smooth",
block: "end",
@@ -22,12 +24,12 @@ export default function About() {
return (
-
+
{/* ABOUT US Section */}
-
+
ABOUT US
@@ -43,7 +45,7 @@ export default function About() {
{/* WHO CAN ATTEND Section */}
-
+
WHO CAN ATTEND?
@@ -60,7 +62,7 @@ export default function About() {
{/* Celebrating 10 Years Section */}
-
+
CELEBRATING 10 YEARS
@@ -69,9 +71,7 @@ export default function About() {
{/* Mobile: Truncated content with read more */}
{/* Animation for scrolling. Has to have exact heights so it knows where to animate to and from*/}
-
+
<>
{isExpanded
? "This year marks a significant milestone for RowdyHacks, as we celebrate 10 years of fostering creativity, collaboration, and mentorship right here at UTSA! Since our inception, RowdyHacks has brought together students, developers, and tech enthusiasts from all walks of life to engage in healthy competition, collaborate on innovative projects, and learn new skills they might not encounter in a traditional classroom setting. Over the past decade, we've witnessed incredible growth. We take pride in our inclusive community-building and empowering the next generation of tech leaders. Together, we've created an ecosystem where innovation thrives, friendships are formed, and the future is built, one hack at a time. As we celebrate this remarkable journey, we look forward to what the next 10 years hold for RowdyHacks. Whether you've been with us from the start or are joining us for the first time, let's make this milestone year one to remember. Let's hack, create, and shape the future—together!"
diff --git a/apps/web/src/components/landing/Footer.tsx b/apps/web/src/components/landing/Footer.tsx
index 7bc59c0a..3ed5013f 100644
--- a/apps/web/src/components/landing/Footer.tsx
+++ b/apps/web/src/components/landing/Footer.tsx
@@ -4,6 +4,7 @@ import { Instagram, Facebook, Twitter, Github } from "lucide-react";
import c from "config";
import { camelCaseToWords } from "@/lib/utils/shared/camelCaseToWords";
import FooterLinks from "./FooterLinks";
+import ManagedByHackkit from "./ManagedWithHackkit";
export default function Footer() {
return (
@@ -29,7 +30,7 @@ export default function Footer() {
key={idx}
/>
))}
-
+
+
+
+
@@ -66,7 +70,7 @@ export default function Footer() {
Made with </> & ♥ @ RowdyHacks
© RowdyHacks & Association of Computing Machinery
- at UTSA2024. All Rights Reserved.
+ at UTSA 2024. All Rights Reserved.
diff --git a/apps/web/src/components/landing/Hero.tsx b/apps/web/src/components/landing/Hero.tsx
index acfcd202..a1fefbce 100644
--- a/apps/web/src/components/landing/Hero.tsx
+++ b/apps/web/src/components/landing/Hero.tsx
@@ -1,5 +1,6 @@
import ShinyLogo from "./ShinyLogo";
import Link from "next/link";
+import Image from "next/image";
export default function Home() {
return (
@@ -7,33 +8,50 @@ export default function Home() {
-
+
{"HACK<"}
-
+
{"&future>"}
-
+
+
+ Presented by{" "}
+
+
+
+
October 26th - 27th 2024
-
-
-
-
-
+
+ SAN PEDRO I, UTSA
+
+
-
);
}
@@ -42,12 +60,6 @@ function Overlay() {
return (
- {/* Start Corners */}
- {/*
-
-
-
*/}
- {/* End Corners */}
ROWDYHACKS X · SAN PEDRO I, UTSA
diff --git a/apps/web/src/components/landing/ManagedWithHackkit.tsx b/apps/web/src/components/landing/ManagedWithHackkit.tsx
new file mode 100644
index 00000000..96fb73bd
--- /dev/null
+++ b/apps/web/src/components/landing/ManagedWithHackkit.tsx
@@ -0,0 +1,17 @@
+import Image from "next/image";
+import c from "config";
+import HackkitIcon from "../../../public/img/logo/hackkit.svg";
+
+export default function ManagedByHackkit() {
+ return (
+
+
+
Managed with HackKit
+
+ );
+}
diff --git a/apps/web/src/components/landing/Person.tsx b/apps/web/src/components/landing/Person.tsx
index 83e976af..5254d5e1 100644
--- a/apps/web/src/components/landing/Person.tsx
+++ b/apps/web/src/components/landing/Person.tsx
@@ -1,9 +1,21 @@
-export type Person = {
- fname: string; //picture file name must match name with .png
- lname: string;
- imgLink: string;
- role: string;
+type Picture = {
+ link: string;
+ zoom: number;
+ x: number;
+ y: number;
+};
+
+type Person = {
+ name: string;
+ nameSize: number;
+ team: string;
+ professionalPicture: Picture;
+ personalityPicture: Picture;
linkedin: string;
- website: string;
github: string;
+ personal: string;
+};
+
+type Team = {
+ team: Person[];
};
diff --git a/apps/web/src/components/landing/Team.tsx b/apps/web/src/components/landing/Team.tsx
new file mode 100644
index 00000000..994e4ceb
--- /dev/null
+++ b/apps/web/src/components/landing/Team.tsx
@@ -0,0 +1,83 @@
+"use client";
+import React, { useState, useEffect } from "react";
+import {
+ Carousel,
+ CarouselContent,
+ CarouselItem,
+ CarouselNext,
+ CarouselPrevious,
+} from "../shadcn/ui/carousel";
+import { Oswald } from "next/font/google";
+import Autoplay from "embla-carousel-autoplay";
+import TeamCard from "@/components/landing/TeamCard";
+import axios from "axios";
+
+const oswald = Oswald({
+ variable: "--font-oswald",
+ subsets: ["latin"],
+});
+
+const CarouselDefault = () => {
+ const [team, setTeam] = useState
([]);
+ const [loading, setLoading] = useState(true);
+
+ const plugin = React.useRef(
+ Autoplay({ delay: 2500, stopOnInteraction: true }),
+ );
+
+ // LOAD TEAM
+ useEffect(() => {
+ setLoading(true);
+ axios.get("/team.json").then((res) => {
+ setTeam(res.data.team);
+ });
+ setLoading(false);
+ }, []);
+
+ if (loading || team === undefined) return Loading...
;
+ if (team.length === 0) return No team members found.
;
+
+ return (
+ <>
+
+
+ {team.map((p, index) => (
+
+
+
+ ))}
+
+
+
+
+ >
+ );
+};
+
+export default function Team() {
+ return (
+
+
+
+ Meet The Team That Made RowdyHacks X Possible!
+
+
+
+
+
+
+ );
+}
diff --git a/apps/web/src/components/landing/TeamCard.tsx b/apps/web/src/components/landing/TeamCard.tsx
new file mode 100644
index 00000000..fa2ff679
--- /dev/null
+++ b/apps/web/src/components/landing/TeamCard.tsx
@@ -0,0 +1,257 @@
+import { Card } from "@/components/shadcn/ui/card";
+import Image from "next/image";
+import { Github, Instagram, Linkedin } from "lucide-react";
+import Link from "next/link";
+
+type TeamCardProps = {
+ person: Person;
+};
+
+export default function TeamCard({ person }: TeamCardProps) {
+ let borderColor, mainColor, glowColor, textColor;
+
+ switch (person.team) {
+ case "Director":
+ case "Co-Director":
+ borderColor =
+ "linear-gradient(to bottom right, #EA580C, #FDE047, #EA580C)";
+ mainColor = "#1E40AF";
+ glowColor = "#4664D7";
+ textColor = "white";
+ break;
+ case "Logistics / PR":
+ case "Logistics":
+ borderColor =
+ "linear-gradient(to bottom right, #629584, #243642, #629584)";
+ mainColor = "#387478";
+ glowColor = "#CBD9D0";
+ textColor = "white";
+ break;
+ case "Hacker Experience":
+ borderColor =
+ "linear-gradient(to bottom right, #7E60BF, #E4B1F0, #7E60BF)";
+ mainColor = "#433878";
+ glowColor = "#FFE1FF";
+ textColor = "white";
+ break;
+ case "Tech / Logistics":
+ case "Tech":
+ borderColor =
+ "linear-gradient(to bottom right, #A0153E, #5D0E41, #A0153E)";
+ mainColor = "#00224D";
+ glowColor = "#FF204E";
+ textColor = "white";
+ break;
+ case "Media":
+ borderColor =
+ "linear-gradient(to bottom right, #B17457, #D8D2C2, #B17457)";
+ mainColor = "#4A4947";
+ glowColor = "#FAF7F0";
+ textColor = "white";
+ break;
+ case "Public Relations":
+ borderColor =
+ "linear-gradient(to bottom right, #D3EE98, #A0D683, #D3EE98)";
+ mainColor = "#72BF78";
+ glowColor = "#F3C623";
+ textColor = "white";
+ break;
+ case "Design":
+ borderColor =
+ "linear-gradient(to bottom right, #FFB0B0, #FFD09B, #FFB0B0)";
+ mainColor = "#CB80AB";
+ glowColor = "#FFECC8";
+ textColor = "white";
+ break;
+ case "Outreach":
+ borderColor =
+ "linear-gradient(to bottom right, #161D6F, #0B2F9F, #161D6F)";
+ mainColor = "#98DED9";
+ glowColor = "#C7FFD8";
+ textColor = "white";
+ break;
+ }
+
+ return (
+ <>
+
+
+
+
+
+
+
+
+ {person.name}
+
+
+
+
+
+
+ {person.team}
+
+
+
+
+
+
+
+
+
+
+ {person.name}
+
+
+
+
+
+
+ {person.linkedin ? (
+
+
+
+ ) : null}
+ {person.github ? (
+
+
+
+ ) : null}
+ {person.personal ? (
+
+
+
+ ) : null}
+
+
+
+
+
+
+ >
+ );
+}
diff --git a/apps/web/src/components/landing/TeamMember.tsx b/apps/web/src/components/landing/TeamMember.tsx
deleted file mode 100644
index 870d8eeb..00000000
--- a/apps/web/src/components/landing/TeamMember.tsx
+++ /dev/null
@@ -1,145 +0,0 @@
-"use client";
-
-import { Person } from "./Person";
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "../shadcn/ui/card";
-import { Oswald } from "next/font/google";
-import Image from "next/image";
-import { useState } from "react";
-const oswald = Oswald({
- variable: "--font-oswald",
- subsets: ["latin"],
-});
-
-// Using the raw svg tag is inefficient. Will need to change later
-function LinkedIn({ fillColor }: { fillColor: string }) {
- return (
-
-
-
- );
-}
-
-function Website({ fillColor }: { fillColor: string }) {
- return (
-
-
-
- );
-}
-
-function Github({ fillColor }: { fillColor: string }) {
- return (
-
-
-
- );
-}
-
-export default function TeamMember({ person }: { person: Person }) {
- // Edit the max width and height and then set the height to auto in the styling
-
- const [src, setSrc] = useState(person.imgLink);
- const [styling, setStyling] = useState(
- "max-w-[110px] md:max-w-[140px] lg:max-w-[160px] 2xl:max-w-[200px] h-auto rounded-lg",
- );
-
- const FallBackStyling =
- "max-w-[105px] md:max-w-[132px] lg:max-w-[150px] xl:max-w-[151px] 2xl:max-w-[188px] rounded-lg";
-
- return (
-
-
-
-
- {`${person.fname}\u00A0${person.lname}`}
-
-
-
- {person.role}
-
-
-
-
- {/* This also needs to be fixed */}
- {
- setSrc("/img/logo/hackkit.svg");
- setStyling(FallBackStyling);
- }}
- />
-
-
-
-
-
-
- );
-}
diff --git a/apps/web/src/components/landing/WorkWithUs.tsx b/apps/web/src/components/landing/WorkWithUs.tsx
index 0da3ac4b..7adbba9b 100644
--- a/apps/web/src/components/landing/WorkWithUs.tsx
+++ b/apps/web/src/components/landing/WorkWithUs.tsx
@@ -4,9 +4,9 @@ import Link from "next/link";
export default function WorkWithUs() {
return (
-
-
-
+
+
+
Volunteers/Mentors
@@ -40,7 +40,7 @@ export default function WorkWithUs() {
-
+
Partners
diff --git a/apps/web/src/components/landing/team.json b/apps/web/src/components/landing/team.json
new file mode 100644
index 00000000..13c718b0
--- /dev/null
+++ b/apps/web/src/components/landing/team.json
@@ -0,0 +1,374 @@
+{
+ "team": [
+ {
+ "fname": "Liam",
+ "lname": "Murray1",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray2",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray3",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray4",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray5",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray6",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray7",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray8",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray9",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray10",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray11",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray12",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray13",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray14",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray15",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray16",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray17",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray18",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray19",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray20",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray21",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray22",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray23",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray24",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray25",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray26",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray27",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray28",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray29",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray30",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray31",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray32",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray33",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray34",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray35",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray36",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ },
+ {
+ "fname": "Liam",
+ "lname": "Murray37",
+ "photo": "",
+ "role": "Logistics Lead/Tech",
+ "linkedin": "https://www.linkedin.com/in/liamrmurray/",
+ "website": "https://www.liammurray.dev/",
+ "github": "https://github.com/Lermatroid",
+ "persona": ""
+ }
+ ]
+}
diff --git a/apps/web/src/components/registration/RegisterForm.tsx b/apps/web/src/components/registration/RegisterForm.tsx
index a78c3547..a7d81759 100644
--- a/apps/web/src/components/registration/RegisterForm.tsx
+++ b/apps/web/src/components/registration/RegisterForm.tsx
@@ -92,8 +92,8 @@ export default function RegisterForm({ defaultEmail }: RegisterFormProps) {
shirtSize: "" as any,
schoolID: "",
university: "",
- phoneNumber:"",
- countryOfResidence:"",
+ phoneNumber: "",
+ countryOfResidence: "",
},
});
@@ -116,10 +116,9 @@ export default function RegisterForm({ defaultEmail }: RegisterFormProps) {
}
}, [universityValue]);
-
- useEffect(()=>{
- console.log(countryValue)
- },[countryValue])
+ useEffect(() => {
+ console.log(countryValue);
+ }, [countryValue]);
async function onSubmit(data: z.infer
) {
console.log(data);
@@ -180,7 +179,7 @@ export default function RegisterForm({ defaultEmail }: RegisterFormProps) {
setIsLoading(false);
alert(
`Something went wrong while attempting to register. Please try again. If this is a continuing issue, please reach out to us at ${c.issueEmail}.`,
- )
+ );
return console.log(
`Recieved a unexpected response from the server. Please try again. If this is a continuing issue, please reach out to us at ${c.issueEmail}.`,
);
diff --git a/apps/web/src/components/shared/Navbar.tsx b/apps/web/src/components/shared/Navbar.tsx
index a7f212f6..c0fb23c3 100644
--- a/apps/web/src/components/shared/Navbar.tsx
+++ b/apps/web/src/components/shared/Navbar.tsx
@@ -5,11 +5,12 @@ import { Button } from "../shadcn/ui/button";
import ProfileButton from "./ProfileButton";
import { auth, currentUser } from "@clerk/nextjs";
import NavBarLinksGrouper from "./NavBarLinksGrouper";
-import { Oswald } from "next/font/google";
+import { Open_Sans } from "next/font/google";
import { cn } from "@/lib/utils/client/cn";
+import { getUser } from "db/functions";
-const oswald = Oswald({
- variable: "--font-oswald",
+const openSans = Open_Sans({
+ variable: "--font-open-sans",
subsets: ["latin"],
});
@@ -19,11 +20,13 @@ interface NavbarProps {
export default async function Navbar({ className }: NavbarProps) {
const user = await currentUser();
+ const registrationIsComplete =
+ user != null && (await getUser(user.id)) != undefined;
return (
@@ -40,7 +43,9 @@ export default async function Navbar({ className }: NavbarProps) {
height={32}
/>
{/*
*/}
-
+
{c.hackathonName}
@@ -55,8 +60,7 @@ export default async function Navbar({ className }: NavbarProps) {
<>
- {user.publicMetadata
- .registrationComplete
+ {registrationIsComplete
? "Dashboard"
: "Complete Registration"}
diff --git a/apps/web/src/components/shared/ProfileButton.tsx b/apps/web/src/components/shared/ProfileButton.tsx
index 80479377..c05dd48e 100644
--- a/apps/web/src/components/shared/ProfileButton.tsx
+++ b/apps/web/src/components/shared/ProfileButton.tsx
@@ -147,6 +147,11 @@ export default async function ProfileButton() {
Profile
+
+
+ Dashboard
+
+
Event Pass
@@ -167,7 +172,7 @@ export default async function ProfileButton() {
Report a Bug
-
+
Settings
diff --git a/apps/web/src/lib/types/events.ts b/apps/web/src/lib/types/events.ts
index 7ef29a03..010aa1a5 100644
--- a/apps/web/src/lib/types/events.ts
+++ b/apps/web/src/lib/types/events.ts
@@ -16,5 +16,5 @@ export interface NewEventFormProps {
}
export interface getAllEventsOptions {
- ascending?: boolean;
+ descending?: boolean;
}
diff --git a/apps/web/src/validators/shared/RegisterForm.ts b/apps/web/src/validators/shared/RegisterForm.ts
index 7b212037..a0a81f1d 100644
--- a/apps/web/src/validators/shared/RegisterForm.ts
+++ b/apps/web/src/validators/shared/RegisterForm.ts
@@ -9,7 +9,9 @@ const defaultPrettyError = {
const noProfanityValidator = (val: any) => !isProfane(val);
const noProfanityMessage = "Profanity is not allowed";
-const countryCodesArray = c.registration.countries.map(countryObject => countryObject.code);
+const countryCodesArray = c.registration.countries.map(
+ (countryObject) => countryObject.code,
+);
export const RegisterFormValidator = z.object({
firstName: z
@@ -49,25 +51,25 @@ export const RegisterFormValidator = z.object({
z.literal("PREFERNOTSAY", defaultPrettyError),
]),
race: z.union([
- z.literal("Asian Indian",defaultPrettyError),
- z.literal("Asian (Other)",defaultPrettyError),
- z.literal("Black or African",defaultPrettyError),
- z.literal("Chinese",defaultPrettyError),
- z.literal("Filipino",defaultPrettyError),
- z.literal("Guamanian or Chamorro",defaultPrettyError),
- z.literal("Hispanic / Latino / Spanish Origin",defaultPrettyError),
- z.literal("Japanese",defaultPrettyError),
- z.literal("Korean",defaultPrettyError),
- z.literal("Middle Eastern",defaultPrettyError),
- z.literal("Native American or Alaskan Native",defaultPrettyError),
- z.literal("Native Hawaiian",defaultPrettyError),
- z.literal("Samoan",defaultPrettyError),
- z.literal("Vietnamese",defaultPrettyError),
- z.literal("White",defaultPrettyError),
- z.literal("Other Asian (Thai, Cambodian, etc)",defaultPrettyError),
- z.literal("Other Pacific Islander",defaultPrettyError),
- z.literal("Other",defaultPrettyError),
- z.literal("Prefer Not to Answer",defaultPrettyError),
+ z.literal("Asian Indian", defaultPrettyError),
+ z.literal("Asian (Other)", defaultPrettyError),
+ z.literal("Black or African", defaultPrettyError),
+ z.literal("Chinese", defaultPrettyError),
+ z.literal("Filipino", defaultPrettyError),
+ z.literal("Guamanian or Chamorro", defaultPrettyError),
+ z.literal("Hispanic / Latino / Spanish Origin", defaultPrettyError),
+ z.literal("Japanese", defaultPrettyError),
+ z.literal("Korean", defaultPrettyError),
+ z.literal("Middle Eastern", defaultPrettyError),
+ z.literal("Native American or Alaskan Native", defaultPrettyError),
+ z.literal("Native Hawaiian", defaultPrettyError),
+ z.literal("Samoan", defaultPrettyError),
+ z.literal("Vietnamese", defaultPrettyError),
+ z.literal("White", defaultPrettyError),
+ z.literal("Other Asian (Thai, Cambodian, etc)", defaultPrettyError),
+ z.literal("Other Pacific Islander", defaultPrettyError),
+ z.literal("Other", defaultPrettyError),
+ z.literal("Prefer Not to Answer", defaultPrettyError),
]),
ethnicity: z.union([
z.literal("Hispanic or Latino", defaultPrettyError),
@@ -163,9 +165,9 @@ export const RegisterFormValidator = z.object({
})
.toLowerCase()
.refine(noProfanityValidator, noProfanityMessage),
- profileDiscordName: z
- .string()
- .max(40, { message: "Username should not be longer than 40 characters" }),
+ profileDiscordName: z.string().max(40, {
+ message: "Username should not be longer than 40 characters",
+ }),
pronouns: z.string().min(1).max(15),
bio: z
.string()
diff --git a/apps/web/tailwind.config.js b/apps/web/tailwind.config.js
index 99ce0621..6b46f11c 100644
--- a/apps/web/tailwind.config.js
+++ b/apps/web/tailwind.config.js
@@ -13,11 +13,12 @@ module.exports = {
container: {
center: true,
padding: "2rem",
+ },
+ extend: {
screens: {
+ xs: "480px",
"2xl": "1400px",
},
- },
- extend: {
backgroundImage: {
"gradient-radial":
"radial-gradient(ellipse_at_center, var(--gradient-color-stops))",
@@ -82,6 +83,15 @@ module.exports = {
oswald: ["var(--font-oswald)"],
bttf: ["var(--font-bttf)"],
},
+ fontSize: {
+ "1.5xl": [
+ "1.375rem",
+ {
+ lineHeight: "1.75rem",
+ },
+ ],
+ "1.8xl": ["1.45rem", "1.9375rem"],
+ },
},
},
plugins: [
diff --git a/packages/config/hackkit.config.ts b/packages/config/hackkit.config.ts
index f61b05d3..dfb97087 100644
--- a/packages/config/hackkit.config.ts
+++ b/packages/config/hackkit.config.ts
@@ -558,6 +558,7 @@ const dietaryRestrictionOptions = [
];
const countries = [
+ { name: "United States", code: "US" },
{ name: "Afghanistan", code: "AF" },
{ name: "Albania", code: "AL" },
{ name: "Algeria", code: "DZ" },
@@ -740,7 +741,6 @@ const countries = [
{ name: "Ukraine", code: "UA" },
{ name: "United Arab Emirates", code: "AE" },
{ name: "United Kingdom", code: "GB" },
- { name: "United States", code: "US" },
{ name: "Uruguay", code: "UY" },
{ name: "Uzbekistan", code: "UZ" },
{ name: "Vanuatu", code: "VU" },
@@ -774,11 +774,11 @@ const raceOptions = [
];
const c = {
- hackathonName: "HackKit",
- itteration: "I",
+ hackathonName: "RowdyHacks",
+ itteration: "X",
siteUrl: "https://rowdyhacks.org", // Do not have a trailing slash
defaultMetaDataDescription: "Your Metadata Description Here",
- botName: "HackKit",
+ botName: "RowdyBot",
botParticipantRole: "Participant",
hackathonTimezone: "America/Chicago",
localUniversityName: schools[0],
@@ -796,15 +796,15 @@ const c = {
resources: [
{ name: "Register", link: "/register" },
{ name: "FAQ", link: "/faq" },
- { name: "Code of Conduct", link: "/conduct" },
+ { name: "Code of Conduct", link: "https://go.rowdyhacks.org/coc" },
{ name: "Contact Us", link: "/contact" },
{ name: "ACM-W", link: "https://acmutsa.org/suborg_acmw" },
{ name: "ACM UTSA", link: "https://acmutsa.org/" },
],
links: [
{
- name: "Open Source",
- link: "https://github.com/acmutsa/CodeQuantum2023",
+ name: "Source Code",
+ link: "https://github.com/acmutsa/HackKit",
},
],
otherHackathons: [
@@ -821,34 +821,34 @@ const c = {
},
groups: {
"Guild A | Group A": {
- discordRole: "Guild A Role",
+ discordRole: "Doc Brown",
},
"Guild A | Group B": {
- discordRole: "Guild A Role",
+ discordRole: "Doc Brown",
},
"Guild B | Group A": {
- discordRole: "Guild B Role",
+ discordRole: "Marty",
},
"Guild B | Group B": {
- discordRole: "Guild B Role",
+ discordRole: "Marty",
},
"Guild C | Group A": {
- discordRole: "Guild C Role ",
+ discordRole: "Dr. Who",
},
"Guild C | Group B": {
- discordRole: "Guild C Role",
+ discordRole: "Dr. Who",
},
"Guild D | Group A": {
- discordRole: "Guild D Role",
+ discordRole: "Terminator",
},
"Guild D | Group B": {
- discordRole: "Guild D Role",
+ discordRole: "Terminator",
},
"Guild E | Group A": {
- discordRole: "Guild E Role",
+ discordRole: "Mr. Peabody and Sherman",
},
"Guild E | Group B": {
- discordRole: "Guild E Role",
+ discordRole: "Mr. Peabody and Sherman",
},
},
issueEmail: "team@rowdyhacks.org",
@@ -861,10 +861,10 @@ const c = {
guide: "https://go.rowdyhacks.org/discord",
},
icon: {
- sm: "/img/logo/hackkit.svg",
+ sm: "/img/logo/rhbttf.svg",
md: "/img/logo/hackkit-md.png",
lg: "/img/logo/hackkit-lg.png",
- svg: "/img/logo/hackkit.svg",
+ svg: "/img/logo/rhbttf.svg",
},
dashPaths: {
dash: {
@@ -878,11 +878,10 @@ const c = {
Overview: "/admin",
Users: "/admin/users",
Events: "/admin/events",
- Points: "/admin/points",
- "Check-in": "/admin/check-in",
+ // Points: "/admin/points",
+ "Hackathon Check-in": "/admin/check-in",
Toggles: "/admin/toggles",
},
- // TODO: Can remove days? Pretty sure they're dynamic now.
},
eventTypes: {
Meal: "#FFC107",
@@ -892,18 +891,18 @@ const c = {
Other: "#795548",
},
days: {
- Saturday: new Date(2023, 6, 15),
+ Saturday: new Date(2024, 10, 26),
},
- Sunday: new Date(2023, 6, 16),
+ Sunday: new Date(2024, 10, 27),
maxResumeSizeInBytes: 4194304,
maxProfilePhotoSizeInBytes: 3145728,
maxFileSizeInBytes: 4194304,
- eventPassBgImage: "/img/dash/pass/bg.png",
+ eventPassBgImage: "/img/logo/rhbttf.svg",
noResumeProvidedURL:
"https://static.acmutsa.org/No%20Resume%20Provided.pdf",
// Come in and change this date to whenever the hackathon starts
- startDate: new Date(new Date(2024, 1, 24).setHours(9)),
- prettyLocation: "Location of Hackathon",
+ startDate: new Date(new Date(2024, 9, 26).setHours(9)),
+ prettyLocation: "San Pedro I, UTSA",
roleBadges: {
hacker: {
title: "Hacker",
@@ -973,17 +972,8 @@ const publicRoutes = [
/^\/user\//,
"/404",
"/bugreport",
+ "/faq",
];
-// Generally it is reccomended to put your primary audience's university at the top of this list.
-
-
-
-
export default c;
-export {
- defaultTheme,
- bucketResumeBaseUploadUrl,
- perms,
- publicRoutes,
-};
+export { defaultTheme, bucketResumeBaseUploadUrl, perms, publicRoutes };
diff --git a/packages/db/functions/events.ts b/packages/db/functions/events.ts
index 71f7a56a..4d6934de 100644
--- a/packages/db/functions/events.ts
+++ b/packages/db/functions/events.ts
@@ -17,9 +17,9 @@ export function createNewEvent(event: eventInsertType) {
}
export function getAllEvents(options?: getAllEventsOptions) {
- const orderByClause = options?.ascending
- ? [asc(events.startTime)]
- : [desc(events.startTime)];
+ const orderByClause = options?.descending
+ ? [desc(events.startTime)]
+ : [asc(events.startTime)];
return db.query.events.findMany({
orderBy: orderByClause,
});
diff --git a/packages/db/schema.ts b/packages/db/schema.ts
index 391c674f..02f79c5c 100644
--- a/packages/db/schema.ts
+++ b/packages/db/schema.ts
@@ -76,7 +76,9 @@ export const userCommonData = pgTable("user_common_data", {
skills: json("skills").notNull().$type().default([]),
profilePhoto: varchar("profile_photo", { length: 255 }).notNull(),
phoneNumber: varchar("phone_number", { length: 30 }).notNull(),
- countryOfResidence: varchar("country_of_residence", { length: 3 }).notNull(),
+ countryOfResidence: varchar("country_of_residence", {
+ length: 3,
+ }).notNull(),
// metadata
isFullyRegistered: boolean("is_fully_registered").notNull().default(false),