diff --git a/apps/info/public/Content/Amey.JPG b/apps/info/public/Content/Amey.JPG
new file mode 100644
index 00000000..dbf496bd
Binary files /dev/null and b/apps/info/public/Content/Amey.JPG differ
diff --git a/apps/info/public/Content/Anushree.JPG b/apps/info/public/Content/Anushree.JPG
new file mode 100644
index 00000000..929552a4
Binary files /dev/null and b/apps/info/public/Content/Anushree.JPG differ
diff --git a/apps/info/public/Content/Apoorva.JPG b/apps/info/public/Content/Apoorva.JPG
new file mode 100644
index 00000000..e9af37a3
Binary files /dev/null and b/apps/info/public/Content/Apoorva.JPG differ
diff --git a/apps/info/public/Content/Carol.JPG b/apps/info/public/Content/Carol.JPG
new file mode 100644
index 00000000..ed2a548f
Binary files /dev/null and b/apps/info/public/Content/Carol.JPG differ
diff --git a/apps/info/public/Content/Content Funny.JPG b/apps/info/public/Content/Content Funny.JPG
new file mode 100644
index 00000000..e1543906
Binary files /dev/null and b/apps/info/public/Content/Content Funny.JPG differ
diff --git a/apps/info/public/Content/Full.JPG b/apps/info/public/Content/Full.JPG
new file mode 100644
index 00000000..3b419d41
Binary files /dev/null and b/apps/info/public/Content/Full.JPG differ
diff --git a/apps/info/public/Content/Lucy 2.JPG b/apps/info/public/Content/Lucy 2.JPG
new file mode 100644
index 00000000..7c3dfc5d
Binary files /dev/null and b/apps/info/public/Content/Lucy 2.JPG differ
diff --git a/apps/info/public/Content/Lucy.JPG b/apps/info/public/Content/Lucy.JPG
new file mode 100644
index 00000000..e1015374
Binary files /dev/null and b/apps/info/public/Content/Lucy.JPG differ
diff --git a/apps/info/public/Content/Maya.JPG b/apps/info/public/Content/Maya.JPG
new file mode 100644
index 00000000..35f53329
Binary files /dev/null and b/apps/info/public/Content/Maya.JPG differ
diff --git a/apps/info/public/Content/Rini.JPG b/apps/info/public/Content/Rini.JPG
new file mode 100644
index 00000000..1677f267
Binary files /dev/null and b/apps/info/public/Content/Rini.JPG differ
diff --git a/apps/info/public/Content/Rohan K.JPG b/apps/info/public/Content/Rohan K.JPG
new file mode 100644
index 00000000..655a115f
Binary files /dev/null and b/apps/info/public/Content/Rohan K.JPG differ
diff --git a/apps/info/public/Content/Rohan N.JPG b/apps/info/public/Content/Rohan N.JPG
new file mode 100644
index 00000000..3d315fa3
Binary files /dev/null and b/apps/info/public/Content/Rohan N.JPG differ
diff --git a/apps/info/public/Content/Samarth.JPG b/apps/info/public/Content/Samarth.JPG
new file mode 100644
index 00000000..f7278c66
Binary files /dev/null and b/apps/info/public/Content/Samarth.JPG differ
diff --git a/apps/info/public/Corporate/Adit.JPG b/apps/info/public/Corporate/Adit.JPG
new file mode 100644
index 00000000..89d038cc
Binary files /dev/null and b/apps/info/public/Corporate/Adit.JPG differ
diff --git a/apps/info/public/Corporate/Corporate Funny.JPG b/apps/info/public/Corporate/Corporate Funny.JPG
new file mode 100644
index 00000000..e6f7f85e
Binary files /dev/null and b/apps/info/public/Corporate/Corporate Funny.JPG differ
diff --git a/apps/info/public/Corporate/Full.JPG b/apps/info/public/Corporate/Full.JPG
new file mode 100644
index 00000000..3682c26d
Binary files /dev/null and b/apps/info/public/Corporate/Full.JPG differ
diff --git a/apps/info/public/Corporate/Kaavya.JPG b/apps/info/public/Corporate/Kaavya.JPG
new file mode 100644
index 00000000..8a10ed6f
Binary files /dev/null and b/apps/info/public/Corporate/Kaavya.JPG differ
diff --git a/apps/info/public/Corporate/Sarah.JPG b/apps/info/public/Corporate/Sarah.JPG
new file mode 100644
index 00000000..9d568cc4
Binary files /dev/null and b/apps/info/public/Corporate/Sarah.JPG differ
diff --git a/apps/info/public/Corporate/Shahanaa.JPG b/apps/info/public/Corporate/Shahanaa.JPG
new file mode 100644
index 00000000..b3fd1bbc
Binary files /dev/null and b/apps/info/public/Corporate/Shahanaa.JPG differ
diff --git a/apps/info/public/Corporate/Shreya G.JPG b/apps/info/public/Corporate/Shreya G.JPG
new file mode 100644
index 00000000..1fc0dd3f
Binary files /dev/null and b/apps/info/public/Corporate/Shreya G.JPG differ
diff --git a/apps/info/public/Corporate/Shreya J.JPG b/apps/info/public/Corporate/Shreya J.JPG
new file mode 100644
index 00000000..65e06ad2
Binary files /dev/null and b/apps/info/public/Corporate/Shreya J.JPG differ
diff --git a/apps/info/public/DIRECTORS.JPG b/apps/info/public/DIRECTORS.JPG
new file mode 100644
index 00000000..dabe5723
Binary files /dev/null and b/apps/info/public/DIRECTORS.JPG differ
diff --git a/apps/info/public/Design/Aashna.JPG b/apps/info/public/Design/Aashna.JPG
new file mode 100644
index 00000000..0e8f1d4f
Binary files /dev/null and b/apps/info/public/Design/Aashna.JPG differ
diff --git a/apps/info/public/Design/Cindy 2.JPG b/apps/info/public/Design/Cindy 2.JPG
new file mode 100644
index 00000000..446f5462
Binary files /dev/null and b/apps/info/public/Design/Cindy 2.JPG differ
diff --git a/apps/info/public/Design/Cindy.JPG b/apps/info/public/Design/Cindy.JPG
new file mode 100644
index 00000000..73cdf15d
Binary files /dev/null and b/apps/info/public/Design/Cindy.JPG differ
diff --git a/apps/info/public/Design/Design Funny 2.JPG b/apps/info/public/Design/Design Funny 2.JPG
new file mode 100644
index 00000000..4444775e
Binary files /dev/null and b/apps/info/public/Design/Design Funny 2.JPG differ
diff --git a/apps/info/public/Design/Design Funny.JPG b/apps/info/public/Design/Design Funny.JPG
new file mode 100644
index 00000000..a6fe1a0d
Binary files /dev/null and b/apps/info/public/Design/Design Funny.JPG differ
diff --git a/apps/info/public/Design/Full.JPG b/apps/info/public/Design/Full.JPG
new file mode 100644
index 00000000..15ec6d05
Binary files /dev/null and b/apps/info/public/Design/Full.JPG differ
diff --git a/apps/info/public/Design/Hua.JPG b/apps/info/public/Design/Hua.JPG
new file mode 100644
index 00000000..415ce30c
Binary files /dev/null and b/apps/info/public/Design/Hua.JPG differ
diff --git a/apps/info/public/Design/Leqi.JPG b/apps/info/public/Design/Leqi.JPG
new file mode 100644
index 00000000..df7fccbb
Binary files /dev/null and b/apps/info/public/Design/Leqi.JPG differ
diff --git a/apps/info/public/Design/Lily.JPG b/apps/info/public/Design/Lily.JPG
new file mode 100644
index 00000000..868f0a7e
Binary files /dev/null and b/apps/info/public/Design/Lily.JPG differ
diff --git a/apps/info/public/Design/Pari.JPG b/apps/info/public/Design/Pari.JPG
new file mode 100644
index 00000000..5cf08351
Binary files /dev/null and b/apps/info/public/Design/Pari.JPG differ
diff --git a/apps/info/public/Design/Ritsika 2.JPG b/apps/info/public/Design/Ritsika 2.JPG
new file mode 100644
index 00000000..943b1a1a
Binary files /dev/null and b/apps/info/public/Design/Ritsika 2.JPG differ
diff --git a/apps/info/public/Design/Ritsika.JPG b/apps/info/public/Design/Ritsika.JPG
new file mode 100644
index 00000000..e4bd534f
Binary files /dev/null and b/apps/info/public/Design/Ritsika.JPG differ
diff --git a/apps/info/public/Design/Sada.JPG b/apps/info/public/Design/Sada.JPG
new file mode 100644
index 00000000..5100bdcd
Binary files /dev/null and b/apps/info/public/Design/Sada.JPG differ
diff --git a/apps/info/public/Dev/Aditya.JPG b/apps/info/public/Dev/Aditya.JPG
new file mode 100644
index 00000000..eb62a385
Binary files /dev/null and b/apps/info/public/Dev/Aditya.JPG differ
diff --git a/apps/info/public/Dev/Aryan.JPG b/apps/info/public/Dev/Aryan.JPG
new file mode 100644
index 00000000..06158166
Binary files /dev/null and b/apps/info/public/Dev/Aryan.JPG differ
diff --git a/apps/info/public/Dev/Dev.jpeg b/apps/info/public/Dev/Dev.jpeg
new file mode 100644
index 00000000..615f36af
Binary files /dev/null and b/apps/info/public/Dev/Dev.jpeg differ
diff --git a/apps/info/public/Dev/Full.JPG b/apps/info/public/Dev/Full.JPG
new file mode 100644
index 00000000..42431148
Binary files /dev/null and b/apps/info/public/Dev/Full.JPG differ
diff --git a/apps/info/public/Dev/Jacob.JPG b/apps/info/public/Dev/Jacob.JPG
new file mode 100644
index 00000000..499b38bd
Binary files /dev/null and b/apps/info/public/Dev/Jacob.JPG differ
diff --git a/apps/info/public/Dev/Miguel.JPG b/apps/info/public/Dev/Miguel.JPG
new file mode 100644
index 00000000..bc3961c8
Binary files /dev/null and b/apps/info/public/Dev/Miguel.JPG differ
diff --git a/apps/info/public/Dev/Nathan.JPG b/apps/info/public/Dev/Nathan.JPG
new file mode 100644
index 00000000..3f8a4277
Binary files /dev/null and b/apps/info/public/Dev/Nathan.JPG differ
diff --git a/apps/info/public/Dev/Quinten 2.JPG b/apps/info/public/Dev/Quinten 2.JPG
new file mode 100644
index 00000000..42ab31b2
Binary files /dev/null and b/apps/info/public/Dev/Quinten 2.JPG differ
diff --git a/apps/info/public/Dev/Ritam.JPG b/apps/info/public/Dev/Ritam.JPG
new file mode 100644
index 00000000..bd72d4d7
Binary files /dev/null and b/apps/info/public/Dev/Ritam.JPG differ
diff --git a/apps/info/public/Dev/Ronit.JPG b/apps/info/public/Dev/Ronit.JPG
new file mode 100644
index 00000000..d13b1448
Binary files /dev/null and b/apps/info/public/Dev/Ronit.JPG differ
diff --git a/apps/info/public/Dev/Siri.png b/apps/info/public/Dev/Siri.png
new file mode 100644
index 00000000..8a2d1d2b
Binary files /dev/null and b/apps/info/public/Dev/Siri.png differ
diff --git a/apps/info/public/Dev/Timothy.JPG b/apps/info/public/Dev/Timothy.JPG
new file mode 100644
index 00000000..b1363e87
Binary files /dev/null and b/apps/info/public/Dev/Timothy.JPG differ
diff --git a/apps/info/public/Dev/Vani.JPG b/apps/info/public/Dev/Vani.JPG
new file mode 100644
index 00000000..3427ea23
Binary files /dev/null and b/apps/info/public/Dev/Vani.JPG differ
diff --git a/apps/info/public/Directors/Cole.JPG b/apps/info/public/Directors/Cole.JPG
new file mode 100644
index 00000000..e76b5e75
Binary files /dev/null and b/apps/info/public/Directors/Cole.JPG differ
diff --git a/apps/info/public/Directors/Shreenija.JPG b/apps/info/public/Directors/Shreenija.JPG
new file mode 100644
index 00000000..1012274f
Binary files /dev/null and b/apps/info/public/Directors/Shreenija.JPG differ
diff --git a/apps/info/public/Marketing/Angelina 2.JPG b/apps/info/public/Marketing/Angelina 2.JPG
new file mode 100644
index 00000000..64f9e2c3
Binary files /dev/null and b/apps/info/public/Marketing/Angelina 2.JPG differ
diff --git a/apps/info/public/Marketing/Angelina.JPG b/apps/info/public/Marketing/Angelina.JPG
new file mode 100644
index 00000000..e4ba6eac
Binary files /dev/null and b/apps/info/public/Marketing/Angelina.JPG differ
diff --git a/apps/info/public/Marketing/Atharva.JPG b/apps/info/public/Marketing/Atharva.JPG
new file mode 100644
index 00000000..12d90ce8
Binary files /dev/null and b/apps/info/public/Marketing/Atharva.JPG differ
diff --git a/apps/info/public/Marketing/Full.JPG b/apps/info/public/Marketing/Full.JPG
new file mode 100644
index 00000000..82ac2456
Binary files /dev/null and b/apps/info/public/Marketing/Full.JPG differ
diff --git a/apps/info/public/Marketing/Jenica 2.JPG b/apps/info/public/Marketing/Jenica 2.JPG
new file mode 100644
index 00000000..5d59ba6d
Binary files /dev/null and b/apps/info/public/Marketing/Jenica 2.JPG differ
diff --git a/apps/info/public/Marketing/Jenica.JPG b/apps/info/public/Marketing/Jenica.JPG
new file mode 100644
index 00000000..7323f719
Binary files /dev/null and b/apps/info/public/Marketing/Jenica.JPG differ
diff --git a/apps/info/public/Marketing/Mahnoor.JPG b/apps/info/public/Marketing/Mahnoor.JPG
new file mode 100644
index 00000000..7014a7c9
Binary files /dev/null and b/apps/info/public/Marketing/Mahnoor.JPG differ
diff --git a/apps/info/public/Marketing/Marketing Funny.JPG b/apps/info/public/Marketing/Marketing Funny.JPG
new file mode 100644
index 00000000..2c366e86
Binary files /dev/null and b/apps/info/public/Marketing/Marketing Funny.JPG differ
diff --git a/apps/info/public/Marketing/Savannah 2.JPG b/apps/info/public/Marketing/Savannah 2.JPG
new file mode 100644
index 00000000..fcdbd071
Binary files /dev/null and b/apps/info/public/Marketing/Savannah 2.JPG differ
diff --git a/apps/info/public/Marketing/Savannah.JPG b/apps/info/public/Marketing/Savannah.JPG
new file mode 100644
index 00000000..1b09e57a
Binary files /dev/null and b/apps/info/public/Marketing/Savannah.JPG differ
diff --git a/apps/info/public/Marketing/Yash.png b/apps/info/public/Marketing/Yash.png
new file mode 100644
index 00000000..619f241c
Binary files /dev/null and b/apps/info/public/Marketing/Yash.png differ
diff --git a/apps/info/public/Ops/Full.JPG b/apps/info/public/Ops/Full.JPG
new file mode 100644
index 00000000..146bfa4d
Binary files /dev/null and b/apps/info/public/Ops/Full.JPG differ
diff --git a/apps/info/public/Ops/Hazel 2.JPG b/apps/info/public/Ops/Hazel 2.JPG
new file mode 100644
index 00000000..d6015ccf
Binary files /dev/null and b/apps/info/public/Ops/Hazel 2.JPG differ
diff --git a/apps/info/public/Ops/Hazel.JPG b/apps/info/public/Ops/Hazel.JPG
new file mode 100644
index 00000000..2b8c7f1b
Binary files /dev/null and b/apps/info/public/Ops/Hazel.JPG differ
diff --git a/apps/info/public/Ops/Madhav 2.JPG b/apps/info/public/Ops/Madhav 2.JPG
new file mode 100644
index 00000000..699fb712
Binary files /dev/null and b/apps/info/public/Ops/Madhav 2.JPG differ
diff --git a/apps/info/public/Ops/Madhav 3.JPG b/apps/info/public/Ops/Madhav 3.JPG
new file mode 100644
index 00000000..7d2d2b9d
Binary files /dev/null and b/apps/info/public/Ops/Madhav 3.JPG differ
diff --git a/apps/info/public/Ops/Madhav.JPG b/apps/info/public/Ops/Madhav.JPG
new file mode 100644
index 00000000..e0194343
Binary files /dev/null and b/apps/info/public/Ops/Madhav.JPG differ
diff --git a/apps/info/public/Ops/Ops Funny 1.JPG b/apps/info/public/Ops/Ops Funny 1.JPG
new file mode 100644
index 00000000..1d063523
Binary files /dev/null and b/apps/info/public/Ops/Ops Funny 1.JPG differ
diff --git a/apps/info/public/Ops/Ops Funny 2.JPG b/apps/info/public/Ops/Ops Funny 2.JPG
new file mode 100644
index 00000000..5f2e05f3
Binary files /dev/null and b/apps/info/public/Ops/Ops Funny 2.JPG differ
diff --git a/apps/info/public/Ops/Ops Funny 3.JPG b/apps/info/public/Ops/Ops Funny 3.JPG
new file mode 100644
index 00000000..b5661c00
Binary files /dev/null and b/apps/info/public/Ops/Ops Funny 3.JPG differ
diff --git a/apps/info/public/Ops/Ranjana.JPG b/apps/info/public/Ops/Ranjana.JPG
new file mode 100644
index 00000000..d1ec9cf1
Binary files /dev/null and b/apps/info/public/Ops/Ranjana.JPG differ
diff --git a/apps/info/public/Ops/Rishit 1.JPG b/apps/info/public/Ops/Rishit 1.JPG
new file mode 100644
index 00000000..94d17c0b
Binary files /dev/null and b/apps/info/public/Ops/Rishit 1.JPG differ
diff --git a/apps/info/public/Ops/Rishit 2.JPG b/apps/info/public/Ops/Rishit 2.JPG
new file mode 100644
index 00000000..a40f756a
Binary files /dev/null and b/apps/info/public/Ops/Rishit 2.JPG differ
diff --git a/apps/info/public/Ops/Rishit 3.JPG b/apps/info/public/Ops/Rishit 3.JPG
new file mode 100644
index 00000000..8cafe791
Binary files /dev/null and b/apps/info/public/Ops/Rishit 3.JPG differ
diff --git a/apps/info/public/Ops/Vidipta.JPG b/apps/info/public/Ops/Vidipta.JPG
new file mode 100644
index 00000000..79c2e690
Binary files /dev/null and b/apps/info/public/Ops/Vidipta.JPG differ
diff --git a/apps/info/public/TOP.png b/apps/info/public/TOP.png
new file mode 100644
index 00000000..3b07f811
Binary files /dev/null and b/apps/info/public/TOP.png differ
diff --git a/apps/info/public/TOP.svg b/apps/info/public/TOP.svg
new file mode 100644
index 00000000..f87ce80d
--- /dev/null
+++ b/apps/info/public/TOP.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/apps/info/public/build_future.svg b/apps/info/public/build_future.svg
new file mode 100644
index 00000000..735f22a9
--- /dev/null
+++ b/apps/info/public/build_future.svg
@@ -0,0 +1,9 @@
+
diff --git a/apps/info/public/card_icon_1.svg b/apps/info/public/card_icon_1.svg
new file mode 100644
index 00000000..6beba271
--- /dev/null
+++ b/apps/info/public/card_icon_1.svg
@@ -0,0 +1,5 @@
+
diff --git a/apps/info/public/card_icon_2.svg b/apps/info/public/card_icon_2.svg
new file mode 100644
index 00000000..5f6a2135
--- /dev/null
+++ b/apps/info/public/card_icon_2.svg
@@ -0,0 +1,3 @@
+
diff --git a/apps/info/public/card_icon_3.svg b/apps/info/public/card_icon_3.svg
new file mode 100644
index 00000000..9be2fa6a
--- /dev/null
+++ b/apps/info/public/card_icon_3.svg
@@ -0,0 +1,3 @@
+
diff --git a/apps/info/public/exhibit_background.png b/apps/info/public/exhibit_background.png
new file mode 100644
index 00000000..c677316c
Binary files /dev/null and b/apps/info/public/exhibit_background.png differ
diff --git a/apps/info/public/exhibit_background.svg b/apps/info/public/exhibit_background.svg
new file mode 100644
index 00000000..d72c6c70
--- /dev/null
+++ b/apps/info/public/exhibit_background.svg
@@ -0,0 +1,9 @@
+
diff --git a/apps/info/public/footer/1.svg b/apps/info/public/footer/1.svg
new file mode 100644
index 00000000..16f95adf
--- /dev/null
+++ b/apps/info/public/footer/1.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/apps/info/public/footer/2.svg b/apps/info/public/footer/2.svg
new file mode 100644
index 00000000..9ef61ab2
--- /dev/null
+++ b/apps/info/public/footer/2.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/apps/info/public/footer/CONTACT.svg b/apps/info/public/footer/CONTACT.svg
new file mode 100644
index 00000000..aa4b3763
--- /dev/null
+++ b/apps/info/public/footer/CONTACT.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/apps/info/public/icon_building.svg b/apps/info/public/icon_building.svg
new file mode 100644
index 00000000..126b7dfa
--- /dev/null
+++ b/apps/info/public/icon_building.svg
@@ -0,0 +1,278 @@
+
diff --git a/apps/info/public/icon_calendar.svg b/apps/info/public/icon_calendar.svg
new file mode 100644
index 00000000..332883d4
--- /dev/null
+++ b/apps/info/public/icon_calendar.svg
@@ -0,0 +1,182 @@
+
diff --git a/apps/info/public/icon_location.svg b/apps/info/public/icon_location.svg
new file mode 100644
index 00000000..5496c990
--- /dev/null
+++ b/apps/info/public/icon_location.svg
@@ -0,0 +1,185 @@
+
diff --git a/apps/info/public/icon_person.svg b/apps/info/public/icon_person.svg
new file mode 100644
index 00000000..6d3695b9
--- /dev/null
+++ b/apps/info/public/icon_person.svg
@@ -0,0 +1,164 @@
+
diff --git a/apps/info/public/icon_speaker.svg b/apps/info/public/icon_speaker.svg
new file mode 100644
index 00000000..3b0bb966
--- /dev/null
+++ b/apps/info/public/icon_speaker.svg
@@ -0,0 +1,298 @@
+
diff --git a/apps/info/public/instagram_logo.png b/apps/info/public/instagram_logo.png
new file mode 100644
index 00000000..1ba06941
Binary files /dev/null and b/apps/info/public/instagram_logo.png differ
diff --git a/apps/info/public/logo_2018.svg b/apps/info/public/logo_2018.svg
new file mode 100644
index 00000000..5f4e7179
--- /dev/null
+++ b/apps/info/public/logo_2018.svg
@@ -0,0 +1,63 @@
+
+
+
diff --git a/apps/info/public/logo_2019.svg b/apps/info/public/logo_2019.svg
new file mode 100644
index 00000000..18019b26
--- /dev/null
+++ b/apps/info/public/logo_2019.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/apps/info/public/logo_2020.svg b/apps/info/public/logo_2020.svg
new file mode 100644
index 00000000..659fa97c
--- /dev/null
+++ b/apps/info/public/logo_2020.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/apps/info/public/logo_2021.svg b/apps/info/public/logo_2021.svg
new file mode 100644
index 00000000..d7d5f090
--- /dev/null
+++ b/apps/info/public/logo_2021.svg
@@ -0,0 +1,12 @@
+
+
\ No newline at end of file
diff --git a/apps/info/public/logo_2022.svg b/apps/info/public/logo_2022.svg
new file mode 100644
index 00000000..d54cd07e
--- /dev/null
+++ b/apps/info/public/logo_2022.svg
@@ -0,0 +1,12 @@
+
+
\ No newline at end of file
diff --git a/apps/info/public/logo_2023.svg b/apps/info/public/logo_2023.svg
new file mode 100644
index 00000000..5fd6df68
--- /dev/null
+++ b/apps/info/public/logo_2023.svg
@@ -0,0 +1,12 @@
+
+
diff --git a/apps/info/public/logo_2024.svg b/apps/info/public/logo_2024.svg
new file mode 100644
index 00000000..2236be55
--- /dev/null
+++ b/apps/info/public/logo_2024.svg
@@ -0,0 +1,22 @@
+
diff --git a/apps/info/public/logo_2025.svg b/apps/info/public/logo_2025.svg
new file mode 100644
index 00000000..c9ebca2f
--- /dev/null
+++ b/apps/info/public/logo_2025.svg
@@ -0,0 +1,12 @@
+
+
\ No newline at end of file
diff --git a/apps/info/public/rp2024shine_logo.png b/apps/info/public/rp2024shine_logo.png
new file mode 100644
index 00000000..5287b43a
Binary files /dev/null and b/apps/info/public/rp2024shine_logo.png differ
diff --git a/apps/info/public/site.mov b/apps/info/public/site.mov
new file mode 100644
index 00000000..8fd97955
Binary files /dev/null and b/apps/info/public/site.mov differ
diff --git a/apps/info/public/site.png b/apps/info/public/site.png
new file mode 100644
index 00000000..49037f1b
Binary files /dev/null and b/apps/info/public/site.png differ
diff --git a/apps/info/public/socials/email_red.svg b/apps/info/public/socials/email_red.svg
new file mode 100644
index 00000000..f9cfade2
--- /dev/null
+++ b/apps/info/public/socials/email_red.svg
@@ -0,0 +1,3 @@
+
diff --git a/apps/info/public/socials/facebook_red.svg b/apps/info/public/socials/facebook_red.svg
new file mode 100644
index 00000000..582b0596
--- /dev/null
+++ b/apps/info/public/socials/facebook_red.svg
@@ -0,0 +1,10 @@
+
diff --git a/apps/info/public/socials/github_red.svg b/apps/info/public/socials/github_red.svg
new file mode 100644
index 00000000..6faf309e
--- /dev/null
+++ b/apps/info/public/socials/github_red.svg
@@ -0,0 +1,3 @@
+
diff --git a/apps/info/public/socials/instagram_red.svg b/apps/info/public/socials/instagram_red.svg
new file mode 100644
index 00000000..55f8be5f
--- /dev/null
+++ b/apps/info/public/socials/instagram_red.svg
@@ -0,0 +1,3 @@
+
diff --git a/apps/info/public/socials/linkedin_red.svg b/apps/info/public/socials/linkedin_red.svg
new file mode 100644
index 00000000..7c239a58
--- /dev/null
+++ b/apps/info/public/socials/linkedin_red.svg
@@ -0,0 +1,3 @@
+
diff --git a/apps/info/public/socials/tiktok_red.svg b/apps/info/public/socials/tiktok_red.svg
new file mode 100644
index 00000000..07c0a53a
--- /dev/null
+++ b/apps/info/public/socials/tiktok_red.svg
@@ -0,0 +1,5 @@
+
diff --git a/apps/info/public/spotlight.svg b/apps/info/public/spotlight.svg
new file mode 100644
index 00000000..83e62ca2
--- /dev/null
+++ b/apps/info/public/spotlight.svg
@@ -0,0 +1,12 @@
+
diff --git a/apps/info/public/team_bg.png b/apps/info/public/team_bg.png
new file mode 100644
index 00000000..3f41fde6
Binary files /dev/null and b/apps/info/public/team_bg.png differ
diff --git a/apps/info/public/vite.svg b/apps/info/public/vite.svg
deleted file mode 100644
index e7b8dfb1..00000000
--- a/apps/info/public/vite.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/apps/info/src/App.tsx b/apps/info/src/App.tsx
index f22e5c70..f514985e 100644
--- a/apps/info/src/App.tsx
+++ b/apps/info/src/App.tsx
@@ -1,9 +1,10 @@
// src/App.tsx
import { BrowserRouter as Router, Routes, Route } from "react-router-dom";
import { Home } from "./routes/Home";
-import { Archive } from "./routes/Archive";
-import { FAQ } from "./routes/FAQ";
+// import { Archive } from "./routes/Archive";
+// import { FAQ } from "./routes/FAQ";
import { Navbar } from "./components/Navbar";
+import TeamPage from "./routes/Team";
function App() {
return (
@@ -11,8 +12,9 @@ function App() {
} />
- } />
- } />
+ {/* } /> */}
+ {/* } /> */}
+ } />
);
diff --git a/apps/info/src/assets/react.svg b/apps/info/src/assets/react.svg
deleted file mode 100644
index 6c87de9b..00000000
--- a/apps/info/src/assets/react.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/apps/info/src/components/AnimatedLogo.tsx b/apps/info/src/components/AnimatedLogo.tsx
new file mode 100644
index 00000000..0106991d
--- /dev/null
+++ b/apps/info/src/components/AnimatedLogo.tsx
@@ -0,0 +1,182 @@
+import { motion } from "framer-motion";
+import { useCallback, useEffect, useRef, useState } from "react";
+
+export const AnimatedLogoConstant = () => {
+ const changeImageFnRef = useRef<() => void>(() => {});
+ const [rotation, setRotation] = useState(0);
+ const [topOpacity, setTopOpacity] = useState(1);
+ const [topCurrentImage, setTopCurrentImage] = useState(0);
+ const [bottomCurrentImage, setBottomCurrentImage] = useState(-1);
+ const intervalRef = useRef(null);
+
+ const images = [
+ "logo_2025.svg",
+ "logo_2024.svg",
+ "logo_2023.svg",
+ "logo_2022.svg",
+ "logo_2021.svg",
+ "logo_2020.svg",
+ "logo_2019.svg",
+ "logo_2018.svg"
+ ];
+
+ // this updates every render so the ref always has a fresh function
+ changeImageFnRef.current = () => {
+ // switch to bottom
+ if (topOpacity) {
+ setRotation((prev) => prev + 360);
+ setBottomCurrentImage((prev) => (prev + 2) % images.length); // bottom switches by 2
+ setTopOpacity((prev) => (prev + 1) % 2); // top fades out
+ }
+ // switch to top
+ else {
+ setRotation((prev) => prev + 360);
+ setTopCurrentImage((prev) => (prev + 2) % images.length); // top switches by 2
+ setTopOpacity((prev) => (prev + 1) % 2); // top fades in
+ }
+ };
+
+ const stopRotation = () => {
+ if (intervalRef.current) {
+ clearInterval(intervalRef.current);
+ }
+ };
+
+ const startRotation = useCallback(() => {
+ // if the browser 'focus' event fires twice, just
+ // stop the extra trigger here
+ stopRotation();
+ intervalRef.current = window.setInterval(() => {
+ changeImageFnRef.current();
+ }, 6000);
+ }, []);
+
+ useEffect(() => {
+ console.log("setting window listeners...");
+ startRotation();
+ window.addEventListener("blur", stopRotation);
+ window.addEventListener("focus", startRotation);
+
+ return () => {
+ stopRotation();
+ window.removeEventListener("blur", stopRotation);
+ window.removeEventListener("focus", startRotation);
+ };
+ }, [startRotation]); // happy linter... (and just in case)
+
+ return (
+ <>
+
+
+ >
+ );
+};
+
+export const AnimatedLogoHover = () => {
+ const [isHovered, setIsHovered] = useState(false);
+ const changeImageFnRef = useRef<() => void>(() => {});
+ const [rotation, setRotation] = useState(0);
+ const [topOpacity, setTopOpacity] = useState(1);
+ const [topCurrentImage, setTopCurrentImage] = useState(0);
+ const [bottomCurrentImage, setBottomCurrentImage] = useState(-1);
+ const intervalRef = useRef(null);
+
+ const images = [
+ "logo_info.svg",
+ "logo_2025.svg",
+ "logo_2024.svg",
+ "logo_2023.svg",
+ "logo_2022.svg",
+ "logo_2021.svg",
+ "logo_2020.svg",
+ "logo_2019.svg",
+ "logo_2018.svg"
+ ];
+
+ // this updates every render so the ref always has a fresh function
+ changeImageFnRef.current = () => {
+ // switch to bottom
+ if (topOpacity) {
+ setRotation((prev) => prev + 360);
+ setBottomCurrentImage((prev) => (prev + 2) % images.length); // bottom switches by 2
+ setTopOpacity((prev) => (prev + 1) % 2); // top fades out
+ }
+ // switch to top
+ else {
+ setRotation((prev) => prev + 360);
+ setTopCurrentImage((prev) => (prev + 2) % images.length); // top switches by 2
+ setTopOpacity((prev) => (prev + 1) % 2); // top fades in
+ }
+ };
+
+ // runs on hover on/off - either enabling or disabling the rotation interval
+ useEffect(() => {
+ if (isHovered) {
+ changeImageFnRef.current();
+ intervalRef.current = window.setInterval(() => {
+ changeImageFnRef.current();
+ }, 2000);
+ } else {
+ if (intervalRef.current) {
+ clearInterval(intervalRef.current);
+ }
+ }
+ // every time isHovered becomes false, useEffect runs here,
+ // hitting the else statement and killing the active interval.
+
+ return () => {
+ if (intervalRef.current) {
+ clearInterval(intervalRef.current);
+ }
+ };
+ }, [isHovered]);
+
+ return (
+ <>
+ setIsHovered(true)}
+ onMouseLeave={() => setIsHovered(false)}
+ animate={{ rotate: rotation, opacity: topOpacity }}
+ transition={{ duration: 0.5, ease: "easeInOut" }}
+ width="100%"
+ height="100%"
+ style={{
+ zIndex: 2,
+ position: "absolute"
+ }}
+ src={images[topCurrentImage]}
+ />
+
+ >
+ );
+};
diff --git a/apps/info/src/components/AnimatedPillar.tsx b/apps/info/src/components/AnimatedPillar.tsx
new file mode 100644
index 00000000..9b8b1010
--- /dev/null
+++ b/apps/info/src/components/AnimatedPillar.tsx
@@ -0,0 +1,88 @@
+import { Box } from "@chakra-ui/react";
+import { motion, useInView } from "framer-motion";
+import { useRef } from "react";
+
+const MotionBox = motion(Box);
+
+type AnimatedCounterProps = {
+ // icon?: string;
+ baseHeight: number;
+ heightDelta: number;
+ time: number;
+ children: React.ReactNode;
+};
+
+const AnimatedPillar: React.FC = ({
+ baseHeight,
+ heightDelta,
+ time,
+ children
+}) => {
+ const viewMarkerRef = useRef(null);
+ const isInView = useInView(viewMarkerRef);
+
+ return (
+
+
+ {/* pillar */}
+
+ {children}
+
+
+
+
+
+
+
+
+ );
+};
+
+export default AnimatedPillar;
diff --git a/apps/info/src/components/AnimatedPillarsSection.tsx b/apps/info/src/components/AnimatedPillarsSection.tsx
new file mode 100644
index 00000000..1aeb4103
--- /dev/null
+++ b/apps/info/src/components/AnimatedPillarsSection.tsx
@@ -0,0 +1,146 @@
+import { Box, VStack, Image, Flex, Container } from "@chakra-ui/react";
+import { motion, useScroll, useTransform } from "framer-motion";
+import { createPortal } from "react-dom";
+import { useRef } from "react";
+import AnimatedPillar from "./AnimatedPillar";
+
+interface AnimatedPillarsSectionProps {
+ icons: string[];
+}
+
+const MotionBox = motion(Box);
+const MotionContainer = motion(Container);
+const spotlightHeight = "975px";
+
+export const AnimatedPillarsSection: React.FC = ({
+ icons
+}) => {
+ const containerRef = useRef(null);
+
+ const { scrollY } = useScroll();
+
+ const offset = 2000; // Increased from 950 to account for Header + ExhibitSection height
+
+ const shadowOpacity = useTransform(
+ scrollY,
+ [-350 + offset, -60 + offset, 350 + offset, 650 + offset],
+ [0, 0.35, 0.35, 0]
+ );
+
+ const heightDiff = useTransform(
+ scrollY,
+ [-250 + offset, 700 + offset],
+ [200, -750]
+ );
+
+ const translateY = useTransform(heightDiff, (h) => `translateY(${h}px)`);
+
+ return (
+
+ {/* portal */}
+ {createPortal(
+
+
+
+
+ {Array.from({ length: 5 }).map((_, index) => (
+
+
+
+ ))}
+
+
+
+ ,
+ document.body
+ )}
+
+ {/* pillars */}
+
+ {icons.map((icon, index) => {
+ const baseHeights = [-55, 25, -5, 45, -35];
+ return (
+
+
+
+
+
+ );
+ })}
+
+
+ );
+};
diff --git a/apps/info/src/components/Carousel.tsx b/apps/info/src/components/Carousel.tsx
index 7ae950ad..04c41922 100644
--- a/apps/info/src/components/Carousel.tsx
+++ b/apps/info/src/components/Carousel.tsx
@@ -1,5 +1,5 @@
import React, { useState } from "react";
-import { Box, Heading, Flex, Image, Text, Button } from "@chakra-ui/react";
+import { Box, Flex, Image, Text, Button } from "@chakra-ui/react";
interface CarouselItem {
title: string;
@@ -8,9 +8,13 @@ interface CarouselItem {
interface CircularCarouselProps {
items: CarouselItem[];
+ centerItem?: CarouselItem;
}
-const CircularCarousel: React.FC = ({ items }) => {
+const CircularCarousel: React.FC = ({
+ items,
+ centerItem
+}) => {
const [activeIndex, setActiveIndex] = useState(0);
const [isAnimating, setIsAnimating] = useState(false);
@@ -67,20 +71,21 @@ const CircularCarousel: React.FC = ({ items }) => {
setTimeout(() => setIsAnimating(false), 500);
};
- const getItemStyle = (index: number) => {
+ const getItemStyle = (index: number, isMobile: boolean = false) => {
const totalItems = items.length;
const angleDegree = 360 / totalItems;
const baseAngle = angleDegree * (index - activeIndex);
const radians = (baseAngle * Math.PI) / 180;
- const horizontalRadius = 300;
- const verticalRadius = 180;
+ // Use fixed values that work well for the responsive design
+ const horizontalRadius = isMobile ? 180 : 300;
+ const verticalRadius = isMobile ? 120 : 180;
const x = horizontalRadius * Math.sin(radians);
const y = verticalRadius * Math.cos(radians);
const zIndex = Math.round(50 - y / 10);
- const scale = 0.8 + ((y + verticalRadius) / (verticalRadius * 2)) * 0.3;
+ const scale = 0.7 + ((y + verticalRadius) / (verticalRadius * 2)) * 0.25;
const isFrontItem = index === activeIndex;
return {
@@ -99,84 +104,187 @@ const CircularCarousel: React.FC = ({ items }) => {
align="center"
position="relative"
w="100%"
- h="700px"
- pt={8}
+ h={{ base: "600px", md: "700px" }}
+ pt={{ base: 4, md: 8 }}
>
-
- Meet the Team
-
-
+
+ {/* Responsive dashed border */}
- {items.map((item, index) => (
+ {/* Center Image */}
+ {centerItem && (
handleItemClick(index)}
+ boxShadow="0 8px 25px rgba(0,0,0,0.3)"
+ zIndex={100}
+ border="3px solid white"
>
- {item.title}
+ {centerItem.title}
- ))}
+ )}
+
+ {/* Mobile Carousel Items */}
+
+ {items.map((item, index) => (
+ handleItemClick(index)}
+ >
+
+
+ {item.title}
+
+
+ ))}
+
+
+ {/* Desktop Carousel Items */}
+
+ {items.map((item, index) => (
+ handleItemClick(index)}
+ >
+
+
+ {item.title}
+
+
+ ))}
+
-
+ {/* Navigation Buttons */}
+
+
+
+
@@ -171,6 +217,7 @@ export const Archive = () => {
);
};
+
const YearContent: React.FC<{
year: number;
}> = ({ year }) => {
@@ -304,7 +351,7 @@ const SpeakerOval: React.FC<{
-
-
+ boxShadow="0 4px 16px rgba(0,0,0,0.1)"
+ />
+
+
{speakerName}
-
+
{companyName}
diff --git a/apps/info/src/routes/FAQ.tsx b/apps/info/src/routes/FAQ.tsx
index 7792e661..8ad033fd 100644
--- a/apps/info/src/routes/FAQ.tsx
+++ b/apps/info/src/routes/FAQ.tsx
@@ -1,7 +1,7 @@
import { Box } from "@chakra-ui/react";
import FoldableFAQ from "../components/Foldable";
export const FAQ = () => (
-
+
);
diff --git a/apps/info/src/routes/Home.tsx b/apps/info/src/routes/Home.tsx
index 5e08c035..08f64072 100644
--- a/apps/info/src/routes/Home.tsx
+++ b/apps/info/src/routes/Home.tsx
@@ -1,14 +1,49 @@
// src/routes/Home.tsx
-import { ExhibitSection } from "../pages/Home/ExhibitSection";
-import { Header } from "../pages/Home/Header";
-import Stats from "../pages/Home/Stats";
+import { ExhibitSection } from "@/components/Home/ExhibitSection";
+import { Footer } from "@/components/Footer";
+import { Header } from "@/components/Home/Header";
+import { SponsorSection } from "@/components/Home/SponsorSection";
+import { Stats } from "@/components/Home/Stats";
+import { TeamSection } from "@/components/Home/TeamSection";
+
+import { Box, Divider } from "@chakra-ui/react";
+import { useEffect } from "react";
+import { useLocation } from "react-router-dom";
export const Home = () => {
+ const { hash } = useLocation();
+
+ useEffect(() => {
+ const section = document.getElementById(hash.slice(1));
+ if (section) {
+ section.scrollIntoView({
+ behavior: "smooth",
+ block: "start"
+ });
+ }
+ }, [hash]);
+
return (
<>
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+ {" "}
+
+
>
);
};
diff --git a/apps/info/src/routes/Team.tsx b/apps/info/src/routes/Team.tsx
new file mode 100644
index 00000000..fed5b0e5
--- /dev/null
+++ b/apps/info/src/routes/Team.tsx
@@ -0,0 +1,635 @@
+import { useEffect } from "react";
+import {
+ Box,
+ Container,
+ Text,
+ VStack,
+ Heading,
+ SimpleGrid,
+ Divider,
+ useBreakpointValue,
+ Image,
+ Flex,
+ Wrap,
+ WrapItem,
+ Stack
+} from "@chakra-ui/react";
+
+const TeamSidebar = ({ teamName }: { teamName: string }) => {
+ const sidebarWidth = useBreakpointValue({
+ base: "0px",
+ md: "70px",
+ lg: "80px"
+ });
+ const sidebarLeft = useBreakpointValue({
+ base: "0px",
+ md: "20px",
+ lg: "50px"
+ });
+ const showSidebar = useBreakpointValue({ base: false, md: true });
+
+ if (!showSidebar) return null;
+
+ return (
+
+
+ {teamName}
+
+
+ );
+};
+
+const TeamHeader = ({ teamName }: { teamName: string }) => {
+ const showHeader = useBreakpointValue({ base: true, md: false });
+
+ if (!showHeader) return null;
+
+ return (
+
+
+ {teamName}
+
+
+ );
+};
+
+const ProfileBox = ({
+ name,
+ imagePath,
+ isLead = false
+}: {
+ name: string;
+ imagePath: string;
+ isLead?: boolean;
+}) => {
+ const boxSize = useBreakpointValue({
+ base: "120px",
+ md: "140px",
+ lg: "160px"
+ });
+
+ const imageSize = useBreakpointValue({
+ base: isLead ? "100px" : "80px",
+ md: isLead ? "120px" : "90px",
+ lg: isLead ? "140px" : "100px"
+ });
+
+ const leadBoxSize = useBreakpointValue({
+ base: "140px",
+ md: "160px",
+ lg: "180px"
+ });
+
+ const fontSize = useBreakpointValue({
+ base: "xs",
+ md: isLead ? "sm" : "xs",
+ lg: isLead ? "md" : "sm"
+ });
+
+ return (
+
+
+
+ {name}
+
+
+ );
+};
+
+const TeamPage = () => {
+ const sidebarOffset = useBreakpointValue({
+ base: "0px",
+ md: "100px",
+ lg: "140px"
+ });
+
+ useEffect(() => {
+ window.scrollTo(0, 0);
+ }, []);
+
+ return (
+
+
+
+
+
+
+
+ 2025
+
+
+ Meet the team
+
+
+
+
+
+
+ Co-Directors
+
+
+
+
+
+
+ Shreenija
+
+
+
+
+ Cole
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+export default TeamPage;