├── .gitignore
├── README.md
├── app
├── clash_grotesk.css
├── contact
│ ├── page.css
│ └── page.jsx
├── faq
│ ├── page.css
│ └── page.jsx
├── favicon.ico
├── firebase
│ └── config.js
├── gallery
│ └── page.jsx
├── globals.css
├── humans
│ └── page.jsx
├── layout.js
├── not-found.jsx
├── page.js
├── partners
│ └── page.jsx
├── prizes
│ └── page.jsx
├── robots.txt
├── schedule
│ └── page.jsx
└── sitemap.xml
├── components.json
├── components
├── CountAnimation
│ └── index.jsx
├── CountDownAnim
│ ├── RollingNumber.jsx
│ └── index.jsx
├── Footer
│ └── index.jsx
├── FooterAnimation
│ ├── index.jsx
│ └── index.module.css
├── HackbyteLogo
│ ├── index.jsx
│ ├── sktech.js
│ └── style.css
├── HumansCard
│ └── index.jsx
├── ImageGrid
│ └── index.jsx
├── LogitechTrackCard
│ └── index.jsx
├── Navbar
│ ├── index.jsx
│ └── index.module.css
├── NewsLetter
│ └── index.jsx
├── PrizeCard
│ └── index.jsx
├── StatisticCard
│ └── index.jsx
├── TSPrizeCard
│ └── index.jsx
├── TextAnimation
│ └── index.jsx
├── ThemeTitle
│ └── index.jsx
├── Timer
│ └── index.jsx
├── TitleSponsorCard
│ └── index.jsx
└── ui
│ ├── accordion.jsx
│ ├── button.jsx
│ ├── cards.jsx
│ ├── dialog.jsx
│ ├── scroll-area.jsx
│ ├── table.jsx
│ └── tabs.jsx
├── jsconfig.json
├── lib
└── utils.js
├── next.config.mjs
├── package-lock.json
├── package.json
├── postcss.config.js
├── public
├── HBMobileLogo.svg
├── aboutPage
│ ├── about_img2.png
│ ├── checkIcon.svg
│ ├── img1.svg
│ ├── img2.svg
│ ├── img3.svg
│ ├── img4.svg
│ ├── img5.svg
│ └── img6.svg
├── background.png
├── behanceLogo.svg
├── comingSoon.svg
├── contactPage
│ ├── busIcon.svg
│ ├── planeIcon.svg
│ └── trainIcon.svg
├── footer
│ ├── img1.svg
│ ├── img2.svg
│ ├── img3.svg
│ └── img4.svg
├── galleryPage
│ ├── DSC_2626-min.webp
│ ├── banner.jpg
│ ├── img1.webp
│ ├── img13.webp
│ ├── img14.webp
│ ├── img2.webp
│ ├── img3.webp
│ ├── img4.webp
│ ├── img5.webp
│ ├── img6.webp
│ ├── img7.webp
│ ├── img8.webp
│ └── img9.webp
├── getInTouchImage.svg
├── hackbyte.png
├── hackbyte2Logo.png
├── hackbytenew.png
├── humansPage
│ ├── aanchal.jpeg
│ ├── aditya.jpg
│ ├── aish.jpg
│ ├── akshat.jpg
│ ├── aman.jpeg
│ ├── aryan.jpg
│ ├── ashish.jpg
│ ├── ashu.jpg
│ ├── bhavik.jpg
│ ├── chaitanaya.jpg
│ ├── deepanshu.jpg
│ ├── divyansh.jpeg
│ ├── gautam.jpg
│ ├── khushi.jpg
│ ├── manan.jpg
│ ├── manoj.jpeg
│ ├── nitya.jpg
│ ├── prajjwal.jpg
│ ├── prajwal.jpg
│ ├── priyansh.jpg
│ ├── priyansh_garg.jpeg
│ ├── sagar.jpg
│ ├── sambhav.jpg
│ ├── samyak.jpeg
│ ├── sanskriti.jpg
│ ├── siddhant.jpeg
│ ├── tushir.jpeg
│ ├── vansh.jpeg
│ ├── varun.jpg
│ ├── vedant.jpeg
│ └── yashika.jpeg
├── iiitdmjLogo.png
├── iiitdmjLogo.svg
├── partnersPage
│ ├── auth0.webp
│ ├── balsamiq.webp
│ ├── bobble.webp
│ ├── devfolio.webp
│ ├── edubard.webp
│ ├── finlatics.webp
│ ├── github.jpg
│ ├── godSpeed.jpg
│ ├── godaddy.webp
│ ├── jdoodle.png
│ ├── logitech.jpg
│ ├── mlh.webp
│ ├── mongodb.webp
│ ├── nextgen.jpg
│ ├── postman.jpg
│ ├── taipy.jpg
│ ├── virtualProtocol.jpg
│ └── wolfram.webp
├── prizesPage
│ ├── auth0Logo.svg
│ ├── best_beginner.png
│ ├── best_girls.png
│ ├── godSpeedLogo.png
│ ├── godaddyLogo.svg
│ ├── img1.svg
│ ├── img2.svg
│ ├── img3.svg
│ ├── img4.svg
│ ├── mongodbLogo.svg
│ ├── postmanLogo.jpg
│ ├── prizeImg1.webp
│ ├── prizeImg2.webp
│ ├── prizeImg3.webp
│ ├── taipyLogo.svg
│ ├── virtualProtocolLogo.png
│ └── wolframLogo.png
├── schedulePage
│ ├── leftLeaf.svg
│ └── rightLeaf.svg
└── tpcLogo.svg
└── tailwind.config.js
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | *.next
12 | dist
13 | dist-ssr
14 | *.local
15 |
16 | # Editor directories and files
17 | .vscode/*
18 | !.vscode/extensions.json
19 | .idea
20 | .DS_Store
21 | *.suo
22 | *.ntvs*
23 | *.njsproj
24 | *.sln
25 | *.sw?
26 |
27 | # Environment variables
28 | .env
29 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
2 |
3 | ## Getting Started
4 |
5 | First, run the development server:
6 |
7 | ```bash
8 | npm run dev
9 | # or
10 | yarn dev
11 | # or
12 | pnpm dev
13 | # or
14 | bun dev
15 | ```
16 |
17 | Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
18 |
19 | You can start editing the page by modifying `app/page.js`. The page auto-updates as you edit the file.
20 |
21 | This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
22 |
23 | ## Learn More
24 |
25 | To learn more about Next.js, take a look at the following resources:
26 |
27 | - [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
28 | - [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
29 |
30 | You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
31 |
32 | ## Deploy on Vercel
33 |
34 | The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
35 |
36 | Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
37 |
--------------------------------------------------------------------------------
/app/clash_grotesk.css:
--------------------------------------------------------------------------------
1 | /* Clash Grotesk */
2 | @font-face {
3 | font-family: "Clash Grotesk";
4 | src: url("//cdn.fontshare.com/wf/5TRO2J3HJNIQODLQ4CTSMGSLAWSE5YUY/GHXENXHZCDIOE5E73364PNNASRNO3JVW/GLZTRU2GIKPV5HYT3E6HDLWOXAWPNZDV.woff2")
5 | format("woff2"),
6 | url("//cdn.fontshare.com/wf/5TRO2J3HJNIQODLQ4CTSMGSLAWSE5YUY/GHXENXHZCDIOE5E73364PNNASRNO3JVW/GLZTRU2GIKPV5HYT3E6HDLWOXAWPNZDV.woff")
7 | format("woff"),
8 | url("//cdn.fontshare.com/wf/5TRO2J3HJNIQODLQ4CTSMGSLAWSE5YUY/GHXENXHZCDIOE5E73364PNNASRNO3JVW/GLZTRU2GIKPV5HYT3E6HDLWOXAWPNZDV.ttf")
9 | format("truetype");
10 | font-weight: 200 700;
11 | font-display: swap;
12 | font-style: normal;
13 | }
14 |
15 | @font-face {
16 | font-family: "Clash Grotesk";
17 | src: url("//cdn.fontshare.com/wf/4LBWQBEAT7WMBLPYHDTSGFMVYM7YP52X/7KPUND2QF7YEOZXDNBOHQRJKQWHIG2TW/O7I6PUTWFICZ67CVKIGGMX2EF3RHEAKS.woff2")
18 | format("woff2"),
19 | url("//cdn.fontshare.com/wf/4LBWQBEAT7WMBLPYHDTSGFMVYM7YP52X/7KPUND2QF7YEOZXDNBOHQRJKQWHIG2TW/O7I6PUTWFICZ67CVKIGGMX2EF3RHEAKS.woff")
20 | format("woff"),
21 | url("//cdn.fontshare.com/wf/4LBWQBEAT7WMBLPYHDTSGFMVYM7YP52X/7KPUND2QF7YEOZXDNBOHQRJKQWHIG2TW/O7I6PUTWFICZ67CVKIGGMX2EF3RHEAKS.ttf")
22 | format("truetype");
23 | font-weight: 200;
24 | font-display: swap;
25 | font-style: normal;
26 | }
27 |
28 | @font-face {
29 | font-family: "Clash Grotesk";
30 | src: url("//cdn.fontshare.com/wf/SINQ57HHHPFVR2H2M32ZNEFSVLE2LFD2/7IAKEQYNYVZZQGJW7R4Y7C5IZ7XHSFQO/DKSXVIDJANOLWNE4OACLWSGITSUTBGB3.woff2")
31 | format("woff2"),
32 | url("//cdn.fontshare.com/wf/SINQ57HHHPFVR2H2M32ZNEFSVLE2LFD2/7IAKEQYNYVZZQGJW7R4Y7C5IZ7XHSFQO/DKSXVIDJANOLWNE4OACLWSGITSUTBGB3.woff")
33 | format("woff"),
34 | url("//cdn.fontshare.com/wf/SINQ57HHHPFVR2H2M32ZNEFSVLE2LFD2/7IAKEQYNYVZZQGJW7R4Y7C5IZ7XHSFQO/DKSXVIDJANOLWNE4OACLWSGITSUTBGB3.ttf")
35 | format("truetype");
36 | font-weight: 300;
37 | font-display: swap;
38 | font-style: normal;
39 | }
40 |
41 | @font-face {
42 | font-family: "Clash Grotesk";
43 | src: url("//cdn.fontshare.com/wf/O462VY6O6FTQCS72XVMTQHXAM4NN5CY3/TWF57ITZORMJ3MEWLQQIVO6BMXIB6FUR/MJQFMMOTEGNXDVM7HBBDTQHTVB2M7Y6G.woff2")
44 | format("woff2"),
45 | url("//cdn.fontshare.com/wf/O462VY6O6FTQCS72XVMTQHXAM4NN5CY3/TWF57ITZORMJ3MEWLQQIVO6BMXIB6FUR/MJQFMMOTEGNXDVM7HBBDTQHTVB2M7Y6G.woff")
46 | format("woff"),
47 | url("//cdn.fontshare.com/wf/O462VY6O6FTQCS72XVMTQHXAM4NN5CY3/TWF57ITZORMJ3MEWLQQIVO6BMXIB6FUR/MJQFMMOTEGNXDVM7HBBDTQHTVB2M7Y6G.ttf")
48 | format("truetype");
49 | font-weight: 400;
50 | font-display: swap;
51 | font-style: normal;
52 | }
53 |
54 | @font-face {
55 | font-family: "Clash Grotesk";
56 | src: url("//cdn.fontshare.com/wf/2SAK53YLUN7RMYJU4MYLSBV6SSSJEJZB/RXS4DPGJRKOUFZMF5X5BVUGNNKJT65XZ/DJS4RYGIUYUXJQOHY5VCZPKSTXUSHTSP.woff2")
57 | format("woff2"),
58 | url("//cdn.fontshare.com/wf/2SAK53YLUN7RMYJU4MYLSBV6SSSJEJZB/RXS4DPGJRKOUFZMF5X5BVUGNNKJT65XZ/DJS4RYGIUYUXJQOHY5VCZPKSTXUSHTSP.woff")
59 | format("woff"),
60 | url("//cdn.fontshare.com/wf/2SAK53YLUN7RMYJU4MYLSBV6SSSJEJZB/RXS4DPGJRKOUFZMF5X5BVUGNNKJT65XZ/DJS4RYGIUYUXJQOHY5VCZPKSTXUSHTSP.ttf")
61 | format("truetype");
62 | font-weight: 500;
63 | font-display: swap;
64 | font-style: normal;
65 | }
66 |
67 | @font-face {
68 | font-family: "Clash Grotesk";
69 | src: url("//cdn.fontshare.com/wf/MKEEQN57GWBZOSYWCRODNJOOZNPLMAKN/5SPTSZGHEACWWLF34DQ4WAA4OGU6PQIF/KN7DX4F6PXB74R6L2K2Y4NH3CB7FC53Q.woff2")
70 | format("woff2"),
71 | url("//cdn.fontshare.com/wf/MKEEQN57GWBZOSYWCRODNJOOZNPLMAKN/5SPTSZGHEACWWLF34DQ4WAA4OGU6PQIF/KN7DX4F6PXB74R6L2K2Y4NH3CB7FC53Q.woff")
72 | format("woff"),
73 | url("//cdn.fontshare.com/wf/MKEEQN57GWBZOSYWCRODNJOOZNPLMAKN/5SPTSZGHEACWWLF34DQ4WAA4OGU6PQIF/KN7DX4F6PXB74R6L2K2Y4NH3CB7FC53Q.ttf")
74 | format("truetype");
75 | font-weight: 600;
76 | font-display: swap;
77 | font-style: normal;
78 | }
79 |
80 | @font-face {
81 | font-family: "Clash Grotesk";
82 | src: url("//cdn.fontshare.com/wf/P6VJ47S3OYMUC7HYSJLTK7PEIK5O2NPQ/TK62VLUWA76PMTK2XWBNDZB7QVXJGYE3/I5W5NEJGYVFUC5I4XOXVET63OE5PSVHJ.woff2")
83 | format("woff2"),
84 | url("//cdn.fontshare.com/wf/P6VJ47S3OYMUC7HYSJLTK7PEIK5O2NPQ/TK62VLUWA76PMTK2XWBNDZB7QVXJGYE3/I5W5NEJGYVFUC5I4XOXVET63OE5PSVHJ.woff")
85 | format("woff"),
86 | url("//cdn.fontshare.com/wf/P6VJ47S3OYMUC7HYSJLTK7PEIK5O2NPQ/TK62VLUWA76PMTK2XWBNDZB7QVXJGYE3/I5W5NEJGYVFUC5I4XOXVET63OE5PSVHJ.ttf")
87 | format("truetype");
88 | font-weight: 700;
89 | font-display: swap;
90 | font-style: normal;
91 | }
92 |
--------------------------------------------------------------------------------
/app/contact/page.css:
--------------------------------------------------------------------------------
1 | .rotatingContainer {
2 | animation: rotateAnimation 8s linear infinite;
3 | }
4 |
5 | @keyframes rotateAnimation {
6 | 0% {
7 | transform: rotate(0deg);
8 | }
9 | 100% {
10 | transform: rotate(360deg);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/contact/page.jsx:
--------------------------------------------------------------------------------
1 | import Navbar from "@/components/Navbar";
2 | import TextAnimation from "@/components/TextAnimation";
3 |
4 | import FooterAnimation from "@/components/FooterAnimation";
5 | import Footer from "@/components/Footer";
6 | import "./page.css";
7 |
8 | export const metadata = {
9 | title: "Contact | HackByte",
10 | description:
11 | "Connect with us at HackByte! Reach out for assistance, questions, or just to say hello. Find information on reaching IIIT Jabalpur, including travel options.",
12 | keywords: "contact, hackbyte, reach us, get in touch",
13 | openGraph: {
14 | title: "Contact | HackByte",
15 | description:
16 | "Connect with us at HackByte! Reach out for assistance, questions, or just to say hello. Find information on reaching IIIT Jabalpur, including travel options.",
17 | url: "https://hackbyte.in/contact",
18 | images:
19 | "https://res.cloudinary.com/drtmfrghg/image/upload/v1708016443/opengraph-image_vkiopn.jpg",
20 | siteName: "HackByte - IIITDMJ Hackathon",
21 | type: "website",
22 | locale: "en_US",
23 | },
24 | };
25 |
26 | export default function Contact() {
27 | return (
28 | <>
29 |
30 |
34 |
38 |
42 |
43 |
44 |
49 | Hacker Experience is what we prioritize! Have questions, need
50 | assistance, or just want to connect? Feel free to reach out!
51 |
52 |
53 |
54 |
59 |
60 |
61 |
62 |
63 | Reaching IIIT Jabalpur
64 |
65 |
72 |
73 |
74 |
75 |
83 |
88 |
89 |
90 | By Train
91 |
92 |
93 | Book tickets from IRCTC : The campus is 10kms from the Railway
94 | Terminal and auto fare is usually around ₹200-₹250.
95 |
96 |
97 |
98 |
99 |
107 |
112 |
113 |
114 | By Air
115 |
116 |
117 | Daily flights from{" "}
118 |
119 | Delhi, Mumbai, Hyderabad, Indore and Bilaspur.
120 | {" "}
121 | From Bangalore , connecting
122 | flights are available.
123 |
124 |
125 |
126 |
127 |
135 |
140 |
141 |
142 | By Bus
143 |
144 |
145 | Only suggested if you live around{" "}
146 | 8-10hrs from Jabalpur.{" "}
147 |
148 | ISBT (Pandit Deen Dayal Bus Stand)
149 | {" "}
150 | is around 13km from the venue, auto fare is usually around{" "}
151 | ₹400-₹450 .
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 | Call Us
161 |
162 |
166 |
167 |
+91 98692 61132
168 |
Uttara Kamat
169 |
170 |
171 |
+91 93196 74300
172 |
Akshay Behl
173 |
174 |
175 |
176 |
177 |
178 | Address
179 |
180 |
184 | IIITDM Jabalpur, Near Dumna Airport, Jabalpur, Madhya Pradesh
185 | 482005
186 |
187 |
188 |
189 |
190 |
191 |
192 |
196 |
201 | Empower
202 | Your Digital
203 | Odyssey!
204 |
205 |
206 |
207 |
208 |
209 |
210 | >
211 | );
212 | }
213 |
--------------------------------------------------------------------------------
/app/faq/page.css:
--------------------------------------------------------------------------------
1 | .rotatingContainer {
2 | animation: rotateAnimation 8s linear infinite;
3 | }
4 |
5 | @keyframes rotateAnimation {
6 | 0% {
7 | transform: rotate(0deg);
8 | }
9 | 100% {
10 | transform: rotate(360deg);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/faq/page.jsx:
--------------------------------------------------------------------------------
1 | import Navbar from "@/components/Navbar";
2 | import {
3 | Accordion,
4 | AccordionContent,
5 | AccordionItem,
6 | AccordionTrigger,
7 | } from "@/components/ui/accordion";
8 | import TextAnimation from "@/components/TextAnimation";
9 |
10 | import FooterAnimation from "@/components/FooterAnimation";
11 | import Footer from "@/components/Footer";
12 | import "./page.css";
13 |
14 | export const metadata = {
15 | title: "FAQ | HackByte",
16 | description: "Frequently asked questions about HackByte.",
17 | keywords: "FAQ, HackByte, IIITDMJ, Hackathon",
18 | openGraph: {
19 | title: "FAQ | HackByte",
20 | description: "Frequently asked questions about HackByte.",
21 | url: "https://hackbyte.in/faq",
22 | images:
23 | "https://res.cloudinary.com/drtmfrghg/image/upload/v1708016443/opengraph-image_vkiopn.jpg",
24 | siteName: "HackByte - IIITDMJ Hackathon",
25 | type: "website",
26 | locale: "en_US",
27 | },
28 | };
29 |
30 | export default function FAQ() {
31 | const data = [
32 | {
33 | title: "How do I register ?",
34 | content: "Pre-registration will be opening in January 2025",
35 | },
36 | {
37 | title: "How many team members do I need ?",
38 | content:
39 | "You can participate individually or in teams of 2 to 4 members. If you are participating in the hackathon individually and looking for a team, we will help you in connecting to other individual participants to get you a team.",
40 | },
41 | {
42 | title: "How much are the participation fees?",
43 | content:
44 | "Participation is absolutely free inclusive of food and accomodation. Isnt that great? So register ASAP!!",
45 | },
46 | {
47 | title: "Will the Hackathon be in person or online ?",
48 | content: "HackByte will be conducted in complete offline/in-person mode.",
49 | },
50 | {
51 | title: "What is the venue for HackByte 3.0 ?",
52 | content:
53 | "IIITDM Jabalpur, explore our beautiful campus while thinking about innovating some crazy thing.",
54 | },
55 | {
56 | title: "What are the prerequisites to participate in this hackathon ?",
57 | content:
58 | "No prerequisites are required to participate in this hackathon. This event is open to participants of all skill levels.",
59 | },
60 | {
61 | title:
62 | "Is the food and accommodation provided free of charge or are there any associated costs ?",
63 | content:
64 | "We've got you covered when it comes to food, water, and coffee – they're on us. However, any additional snacks can be purchased separately. As for accommodation, we will provide arrangements similar to those found in other hackathons, which typically involve a set of mattresses in a common hall.",
65 | },
66 | {
67 | title:
68 | "Can my friend join our team after we have already submitted the application for review ?",
69 | content:
70 | "Yes, your friend can join the team by submitting an individual application. Once both your friend's individual application and your team's application are accepted, you will be able to add your friend to the team.",
71 | },
72 | ];
73 |
74 | return (
75 | <>
76 |
77 |
81 |
85 |
89 |
90 |
91 |
96 | Hacker Experience is what we prioritize! Have questions, need
97 | assistance, or just want to connect? Feel free to reach out!
98 |
99 |
100 |
105 |
106 |
107 |
108 |
112 |
113 |
117 | FAQs
118 |
119 |
120 |
121 | Everything you need to know about the product and billing. Can't
122 | find the answer you're looking for? Please{" "}
123 |
124 |
125 | chat to our friendly team.
126 |
127 |
128 |
129 |
130 | {data.map((item, index) => (
131 |
132 |
133 |
137 | {item.title}
138 |
139 |
143 | {item.content}
144 |
145 |
146 |
147 | ))}
148 |
149 |
150 |
151 |
152 |
153 |
157 |
162 | Empower
163 | Your Digital
164 | Odyssey!
165 |
166 |
167 |
168 |
169 |
170 |
171 | >
172 | );
173 | }
174 |
--------------------------------------------------------------------------------
/app/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/app/favicon.ico
--------------------------------------------------------------------------------
/app/firebase/config.js:
--------------------------------------------------------------------------------
1 | import { initializeApp, getApps, getApp } from "firebase/app";
2 | import { getFirestore } from "firebase/firestore";
3 |
4 | const firebaseConfig = {
5 | apiKey: process.env.NEXT_PUBLIC_FIREBASE_API_KEY,
6 | authDomain: process.env.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN,
7 | projectId: process.env.NEXT_PUBLIC_FIREBASE_PROJECT_ID,
8 | storageBucket: process.env.NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET,
9 | messagingSenderId: process.env.NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID,
10 | appId: process.env.NEXT_PUBLIC_FIREBASE_APP_ID,
11 | };
12 |
13 | // Initialize Firebase
14 | const app = !getApps().length ? initializeApp(firebaseConfig) : getApp();
15 |
16 | export default app;
17 | export const db = getFirestore(app);
18 |
--------------------------------------------------------------------------------
/app/gallery/page.jsx:
--------------------------------------------------------------------------------
1 | import Navbar from "@/components/Navbar";
2 | import banner from "@/public/galleryPage/banner.jpg";
3 | import { GridImage, BannerImage } from "@/components/ImageGrid";
4 |
5 | import FooterAnimation from "@/components/FooterAnimation";
6 | import Footer from "@/components/Footer";
7 |
8 | export const metadata = {
9 | title: "Gallery | HackByte",
10 | description:
11 | "Discover memorable moments from past HackByte events at IIITDMJ, explore images, and feel the excitement of the coding community.",
12 | keywords:
13 | "Hackathon, IIITDMJ, Hackbyte, Coding, Programming, Tech, Gallery, Photos, Videos, Past Events, Previous Events",
14 | openGraph: {
15 | title: "Gallery | HackByte",
16 | description:
17 | "Discover memorable moments from past HackByte events at IIITDMJ, explore images, and feel the excitement of the coding community.",
18 | url: "https://hackbyte.in/gallery",
19 | images:
20 | "https://res.cloudinary.com/drtmfrghg/image/upload/v1708016443/opengraph-image_vkiopn.jpg",
21 | siteName: "HackByte - IIITDMJ Hackathon",
22 | type: "website",
23 | locale: "en_US",
24 | },
25 | };
26 |
27 | const Gallery = () => {
28 | return (
29 | <>
30 |
31 |
32 |
33 |
34 |
35 | Gallery
36 |
37 |
41 | Explore our gallery of memorable moments from HackByte 2.0 event at
42 | IIITDMJ. Immerse in the vibrant coding community, witness
43 | innovation, and get inspired.
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
55 | COMMITTEE CREW
56 |
57 |
58 |
59 |
66 |
67 |
68 |
72 |
77 | Empower
78 | Your Digital
79 | Odyssey!
80 |
81 |
82 |
83 |
84 |
85 |
86 | >
87 | );
88 | };
89 | export default Gallery;
90 |
--------------------------------------------------------------------------------
/app/globals.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
5 | * {
6 | box-sizing: border-box;
7 | margin: 0;
8 | padding: 0;
9 | font-family: "Clash Grotesk", sans-serif;
10 | }
11 |
12 | /* Scrollbar */
13 | ::-webkit-scrollbar {
14 | width: 6px;
15 | height: 6px;
16 | }
17 |
18 | scrollbar {
19 | width: 6px;
20 | height: 6px;
21 | }
22 |
23 | ::-webkit-scrollbar-thumb {
24 | background-color: rgba(127, 125, 125, 0.5);
25 | border-radius: 10px;
26 | }
27 |
28 | scrollbar-thumb {
29 | background-color: rgba(127, 125, 125, 0.5);
30 | border-radius: 10px;
31 | }
32 |
33 | .cursor {
34 | position: fixed;
35 | top: 0;
36 | left: 0;
37 | width: 20px;
38 | height: 20px;
39 | border-radius: 50%;
40 | background: #fff;
41 | transition: 0.1s;
42 | transform: translate(-50%, -50%);
43 | pointer-events: none;
44 | mix-blend-mode: difference;
45 | }
46 |
--------------------------------------------------------------------------------
/app/layout.js:
--------------------------------------------------------------------------------
1 | import "./globals.css";
2 | import Script from "next/script";
3 | import "react-toastify/dist/ReactToastify.css";
4 | import "./clash_grotesk.css";
5 |
6 | export const metadata = {
7 | title: "HackByte - IIITDMJ Hackathon",
8 | description:
9 | "HackByte is the IIITDMJ's student-run hackathon, which centers on bringing developers and problem solvers from different foundations together and enables them to develop projects that can bring out an impact.",
10 | keywords: "hackathon, IIITDMJ, hackbyte, coding, programming, tech",
11 | url: "https://hackbyte.in",
12 | openGraph: {
13 | title: "HackByte - IIITDMJ Hackathon",
14 | description:
15 | "HackByte is the IIITDMJ's student-run hackathon, which centers on bringing developers and problem solvers from different foundations together and enables them to develop projects that can bring out an impact.",
16 | url: "https://hackbyte.in",
17 | images:
18 | "https://res.cloudinary.com/drtmfrghg/image/upload/v1708016443/opengraph-image_vkiopn.jpg",
19 | siteName: "HackByte - IIITDMJ Hackathon",
20 | locale: "en_US",
21 | type: "website",
22 | },
23 | };
24 |
25 | export default function RootLayout({ children }) {
26 | return (
27 |
28 |
29 |
33 |
41 |
42 | {children}
43 |
44 | );
45 | }
46 |
--------------------------------------------------------------------------------
/app/not-found.jsx:
--------------------------------------------------------------------------------
1 | import Navbar from "@/components/Navbar";
2 | import { Button } from "@/components/ui/button";
3 | import { ArrowTopRightIcon } from "@radix-ui/react-icons";
4 | import Link from "next/link";
5 |
6 | import FooterAnimation from "@/components/FooterAnimation";
7 | import Footer from "@/components/Footer";
8 |
9 | export default function NotFound() {
10 | return (
11 | <>
12 |
13 |
17 |
21 |
22 |
26 |
27 | ERROR 404
28 |
29 |
30 |
34 | Sorry, but the page you are looking for might have been removed or
35 | is temporarily unavailable.
36 |
37 |
38 |
39 |
40 |
49 | BACK TO HOME
50 |
51 |
52 |
53 |
54 |
55 |
56 |
60 |
65 | Empower
66 | Your Digital
67 | Odyssey!
68 |
69 |
70 |
71 |
72 |
73 |
74 | >
75 | );
76 | }
77 |
--------------------------------------------------------------------------------
/app/page.js:
--------------------------------------------------------------------------------
1 | import Navbar from "@/components/Navbar";
2 | import ThemeTitle from "@/components/ThemeTitle";
3 | import { Button } from "@/components/ui/button";
4 | import { ArrowTopRightIcon } from "@radix-ui/react-icons";
5 | import { HackbyteLogo } from "@/components/HackbyteLogo";
6 | import {
7 | TwitterLogoIcon,
8 | InstagramLogoIcon,
9 | LinkedInLogoIcon,
10 | DiscordLogoIcon,
11 | } from "@radix-ui/react-icons";
12 | import Link from "next/link";
13 | import StatisticCard from "@/components/StatisticCard";
14 | import NewsLetter from "@/components/NewsLetter";
15 |
16 | import FooterAnimation from "@/components/FooterAnimation";
17 | import Footer from "@/components/Footer";
18 |
19 | const SocialMediaIcon = ({ Icon, href }) => (
20 |
21 |
22 |
23 | );
24 |
25 | export default function Home() {
26 | const statisticsData = [
27 | {
28 | number: 2400,
29 | label: "Registrations",
30 | description: "2400+ registrations from across the country.",
31 | },
32 | {
33 | number: 400,
34 | label: "Offline Participants",
35 | description: "400+ participants joined the offline hackathon!",
36 | },
37 | {
38 | number: 100,
39 | label: "Volunteers",
40 | description: "To help you, get the best out of HackByte.",
41 | },
42 | {
43 | number: 100,
44 | label: "Projects",
45 | description: "Innovative submissions from various domains.",
46 | },
47 | ];
48 |
49 | const aboutData = [
50 | {
51 | imgSrc: "/aboutPage/img1.svg",
52 | title: "Collaborate and skill up",
53 | description:
54 | "Connect with people, form a team, learn new skills and develop amazing projects!",
55 | },
56 | {
57 | imgSrc: "/aboutPage/img2.svg",
58 | title: "Exciting Prizes",
59 | description:
60 | "Top 3 teams plus best projects of each domain will win prizes which will be disclosed soon!",
61 | },
62 | {
63 | imgSrc: "/aboutPage/img3.svg",
64 | title: "Engaging Workshops",
65 | description:
66 | "Technical workshops and events like no-light event will keep the participants engaged throughout.",
67 | },
68 | {
69 | imgSrc: "/aboutPage/img4.svg",
70 | title: "Mentorship sessions",
71 | description:
72 | "Get mentorship and guidance from prominent technocrats of the industry.",
73 | },
74 | {
75 | imgSrc: "/aboutPage/img5.svg",
76 | title: "Recruitment offers",
77 | description:
78 | "Best performers will get recruitment offers from prestigious companies.",
79 | },
80 | {
81 | imgSrc: "/aboutPage/img6.svg",
82 | title: "Expand network",
83 | description:
84 | "Connect with industry professionals and recruiters and other teams to learn and grow more.",
85 | },
86 | ];
87 |
88 | return (
89 |
90 |
91 |
95 |
99 |
100 |
101 |
102 |
103 |
107 | Join us on 4th-6th April 2025,
108 | at IIIT Jabalpur for the hackathon.{" "}
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
122 |
123 |
128 |
129 | Organised by
130 | The Programming Club of
131 | IIITDMJ
132 |
133 |
134 |
135 |
139 |
140 |
145 |
146 |
147 |
148 |
149 |
153 | We Think to Innovate
154 |
155 |
156 |
160 |
164 |
168 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
183 | {statisticsData.map((statistic, index) => (
184 |
185 | ))}
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
197 | Opportunities for Participants
198 |
199 |
203 | Why participate in Hackbyte 3.0?
204 |
205 |
206 |
210 | HackByte 3.0 promises a wonderful experience to the
211 | participants.
212 |
213 |
214 |
215 |
222 |
223 | {aboutData.map((item, index) => (
224 |
= 3 ? "xl:mt-9" : ""
228 | }`}
229 | >
230 |
235 |
236 |
237 | {item.title}
238 |
239 |
240 | {item.description}
241 |
242 |
243 |
244 | ))}
245 |
246 |
247 |
248 |
249 |
250 |
251 |
255 |
256 |
257 |
258 |
262 | Join our mailing list!
263 |
264 |
268 | To stay up-to-date with HackByte 3.0, consider subscribing to
269 | our mailing list. Helps us share important updates right away
270 | with hackers and enthusiasts alike !
271 |
272 |
273 |
274 |
275 |
276 |
280 |
284 | Get updates about your application status
285 |
286 |
287 |
288 |
292 |
296 | Get notified for exciting events!
297 |
298 |
299 |
300 |
304 |
308 | Be the first ones to register for HackByte 3.0
309 |
310 |
311 |
312 |
313 |
314 |
315 |
316 |
317 |
318 |
319 |
320 |
321 |
322 |
323 |
324 |
328 |
333 | Empower
334 | Your Digital
335 | Odyssey!
336 |
337 |
338 |
339 |
340 |
341 |
342 |
343 | );
344 | }
345 |
--------------------------------------------------------------------------------
/app/partners/page.jsx:
--------------------------------------------------------------------------------
1 | import Navbar from "@/components/Navbar";
2 | import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
3 | import TitleSponsorCard from "@/components/TitleSponsorCard";
4 | import SponsorCard from "@/components/ui/cards";
5 |
6 | import mlh from "@/public/partnersPage/mlh.webp";
7 | import github from "@/public/partnersPage/github.jpg";
8 | import postman from "@/public/partnersPage/postman.jpg";
9 | import bobble from "@/public/partnersPage/bobble.webp";
10 | import godspeed from "@/public/partnersPage/godSpeed.jpg";
11 | import devfolio from "@/public/partnersPage/devfolio.webp";
12 | import virtualProtocol from "@/public/partnersPage/virtualProtocol.jpg";
13 | import nextgen from "@/public/partnersPage/nextgen.jpg";
14 | import auth0 from "@/public/partnersPage/auth0.webp";
15 | import taipy from "@/public/partnersPage/taipy.jpg";
16 | import godaddy from "@/public/partnersPage/godaddy.webp";
17 |
18 | import balsamiq from "@/public/partnersPage/balsamiq.webp";
19 | import edubard from "@/public/partnersPage/edubard.webp";
20 | import wolfram from "@/public/partnersPage/wolfram.webp";
21 | import mongodb from "@/public/partnersPage/mongodb.webp";
22 | import finlatics from "@/public/partnersPage/finlatics.webp";
23 | import jdoodle from "@/public/partnersPage/jdoodle.png";
24 | import FooterAnimation from "@/components/FooterAnimation";
25 | import Footer from "@/components/Footer";
26 |
27 | export const metadata = {
28 | title: "Partners | HackByte",
29 | description:
30 | "Explore the invaluable support from our esteemed sponsors and partners at HackByte – the premier hackathon hosted by IIITDMJ. Discover their contributions and partnerships, playing a pivotal role in empowering the coding community.",
31 | keywords:
32 | "Sponsors, Partners, Hackathon, IIITDMJ, Hackbyte, Coding, Programming, Tech, Collaboration, Innovation, Community Support, Technology Events",
33 | openGraph: {
34 | title: "Partners | HackByte",
35 | description:
36 | "Explore the invaluable support from our esteemed sponsors and partners at HackByte – the premier hackathon hosted by IIITDMJ. Discover their contributions and partnerships, playing a pivotal role in empowering the coding community.",
37 | url: "https://hackbyte.in/partners",
38 | images:
39 | "https://res.cloudinary.com/drtmfrghg/image/upload/v1708016443/opengraph-image_vkiopn.jpg",
40 | siteName: "HackByte - IIITDMJ Hackathon",
41 | type: "website",
42 | locale: "en_US",
43 | },
44 | };
45 |
46 | const normalSponsorsData = [
47 | {
48 | sponsor: "MLH",
49 | category: "Platform Partner",
50 | sponsorimgsrc: mlh,
51 | site: "https://mlh.io",
52 | },
53 | {
54 | sponsor: "GitHub",
55 | category: "Gold Sponsor",
56 | sponsorimgsrc: github,
57 | site: "https://gh.io/hackbyte2",
58 | },
59 | {
60 | sponsor: "Postman",
61 | category: "Gold Sponsor",
62 | sponsorimgsrc: postman,
63 | site: "https://community.postman.com",
64 | },
65 | {
66 | sponsor: "Bobble Fan Store",
67 | category: "Merch Partner",
68 | sponsorimgsrc: bobble,
69 | site: "https://fanstore.bobble.ai",
70 | },
71 | {
72 | sponsor: "Godspeed Systems",
73 | category: "Silver Sponsor",
74 | sponsorimgsrc: godspeed,
75 | site: "https://godspeed.systems",
76 | },
77 | {
78 | sponsor: "Devfolio",
79 | category: "Platform Partner",
80 | sponsorimgsrc: devfolio,
81 | site: "https://devfolio.co",
82 | },
83 | {
84 | sponsor: "Virtual Protocol",
85 | category: "Bronze Sponsor",
86 | sponsorimgsrc: virtualProtocol,
87 | site: "https://www.virtuals.io/",
88 | },
89 | {
90 | sponsor: "NextGen",
91 | category: "Bronze Sponsor",
92 | sponsorimgsrc: nextgen,
93 | site: "https://nextgenglobalhub.github.io/opensourcecohort/",
94 | },
95 | {
96 | sponsor: "Auth0",
97 | category: "Track Sponsor",
98 | sponsorimgsrc: auth0,
99 | site: "http://hackp.ac/auth0",
100 | },
101 | {
102 | sponsor: "Taipy",
103 | category: "Track Sponsor",
104 | sponsorimgsrc: taipy,
105 | site: "https://hackp.ac/taipy-gettingstarted",
106 | },
107 | {
108 | sponsor: "Go Daddy Registry",
109 | category: "Track Sponsor",
110 | sponsorimgsrc: godaddy,
111 | site: "http://hackp.ac/godaddyregistry",
112 | },
113 | ];
114 |
115 | const inKindSponsorsData = [
116 | {
117 | sponsor: "Balsamiq",
118 | category: "Community Sponsor",
119 | sponsorimgsrc: balsamiq,
120 | site: "https://balsamiq.com",
121 | },
122 | {
123 | sponsor: "Edubard",
124 | category: "Media Partner",
125 | sponsorimgsrc: edubard,
126 | site: "https://edubard.in",
127 | },
128 | {
129 | sponsor: "Wolfram",
130 | category: "Community Sponsor",
131 | sponsorimgsrc: wolfram,
132 | site: "https://www.wolfram.com/wolfram-one/",
133 | },
134 | {
135 | sponsor: "MongoDB",
136 | category: "Community Sponsor",
137 | sponsorimgsrc: mongodb,
138 | site: "https://www.mongodb.com/",
139 | },
140 | {
141 | sponsor: "Finlatics",
142 | category: "Community Sponsor",
143 | sponsorimgsrc: finlatics,
144 | site: "https://www.finlatics.com/",
145 | },
146 | {
147 | sponsor: "JDoodle",
148 | category: "Community Sponsor",
149 | sponsorimgsrc: jdoodle,
150 | site: "https://www.jdoodle.com/?utm_source=Event+Website&utm_medium=Event+Sponsorship&utm_campaign=HackByte+Sponsorship+2024&utm_id=HackByte+2.0",
151 | },
152 | ];
153 |
154 | const Partners = () => {
155 | return (
156 |
157 |
158 |
162 |
163 |
164 | Partners
165 |
166 |
167 |
171 | We are proud to collaborate with visionary organizations that
172 | share our passion for innovation and technology. These esteemed
173 | partners play a crucial role in making our hackathon a success
174 |
175 |
176 |
177 |
178 |
182 |
183 |
188 | Sponsors
189 |
190 |
195 | In Kind Sponsors
196 |
197 |
198 |
199 |
200 |
201 |
202 |
206 | {normalSponsorsData.map((sponsor, index) => {
207 | return ;
208 | })}
209 |
210 |
211 |
212 |
213 |
217 | {inKindSponsorsData.map((sponsor, index) => {
218 | return ;
219 | })}
220 |
221 |
222 |
223 |
224 |
225 |
226 |
230 |
235 | Empower
236 | Your Digital
237 | Odyssey!
238 |
239 |
240 |
241 |
242 |
243 |
244 |
245 |
246 | );
247 | };
248 |
249 | export default Partners;
250 |
--------------------------------------------------------------------------------
/app/robots.txt:
--------------------------------------------------------------------------------
1 | # Allow all crawlers to crawl all pages
2 | User-agent: *
3 | Disallow: /notfound
4 |
5 | # Specify the path to the sitemap
6 | Sitemap: https://hackbyte.in/sitemap.xml
--------------------------------------------------------------------------------
/app/sitemap.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | https://hackbyte.in/
5 | 2024-04-05
6 | 1.0
7 |
8 |
9 | https://hackbyte.in/gallery
10 | 2024-04-05
11 | 0.6
12 |
13 |
14 | https://hackbyte.in/partners
15 | 2024-04-05
16 | 0.9
17 |
18 |
19 | https://hackbyte.in/prizes
20 | 2024-04-05
21 | 0.9
22 |
23 |
24 | https://hackbyte.in/schedule
25 | 2024-04-05
26 | 0.8
27 |
28 |
29 | https://hackbyte.in/humans
30 | 2024-04-05
31 | 0.8
32 |
33 |
34 | https://hackbyte.in/faq
35 | 2024-04-05
36 | 0.8
37 |
38 |
39 | https://hackbyte.in/contact
40 | 2024-04-05
41 | 0.8
42 |
43 |
--------------------------------------------------------------------------------
/components.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://ui.shadcn.com/schema.json",
3 | "style": "default",
4 | "rsc": true,
5 | "tsx": false,
6 | "tailwind": {
7 | "config": "tailwind.config.js",
8 | "css": "app/globals.css",
9 | "baseColor": "slate",
10 | "cssVariables": true,
11 | "prefix": ""
12 | },
13 | "aliases": {
14 | "components": "@/components",
15 | "utils": "@/lib/utils"
16 | }
17 | }
--------------------------------------------------------------------------------
/components/CountAnimation/index.jsx:
--------------------------------------------------------------------------------
1 | "use client";
2 | import { motion, useMotionValue, useTransform, animate } from "framer-motion";
3 | import { useEffect, useRef } from "react";
4 |
5 | export default function CountAnimation({ targetValue }) {
6 | const count = useMotionValue(0);
7 | const rounded = useTransform(count, Math.round);
8 |
9 | const ref = useRef();
10 |
11 | useEffect(() => {
12 | const observer = new IntersectionObserver(
13 | ([entry]) => {
14 | if (entry.isIntersecting) {
15 | const animation = animate(count, targetValue, {
16 | duration: 1,
17 | ease: "linear",
18 | onUpdate: (latest) => count.set(latest),
19 | });
20 | }
21 | },
22 | {
23 | root: null,
24 | rootMargin: "0px",
25 | threshold: 1,
26 | }
27 | );
28 |
29 | if (ref.current) {
30 | observer.observe(ref.current);
31 | }
32 |
33 | return () => {
34 | if (ref.current) {
35 | observer.unobserve(ref.current);
36 | }
37 | };
38 | }, []);
39 |
40 | const styles = {
41 | background:
42 | "linear-gradient(80deg, #D06D30 6.67%, #FFD887 28.13%, #FFDCAD 64.87%, #FAB858 95.66%)",
43 | backgroundClip: "text",
44 | WebkitBackgroundClip: "text",
45 | WebkitTextFillColor: "transparent",
46 | };
47 |
48 | return (
49 |
50 |
54 | {rounded}
55 |
56 |
60 | +
61 |
62 |
63 | );
64 | }
65 |
--------------------------------------------------------------------------------
/components/CountDownAnim/RollingNumber.jsx:
--------------------------------------------------------------------------------
1 | 'use client'
2 |
3 | import React, { useEffect, useState } from 'react';
4 |
5 | const RollingNumber = ({ number, label }) => {
6 | const [mounted, setMounted] = useState(false);
7 | const digits = number.toString().padStart(2, '0').split('');
8 |
9 | useEffect(() => {
10 | setMounted(true);
11 | }, []);
12 |
13 | return (
14 |
15 |
16 | {digits.map((digit, index) => (
17 |
18 |
22 | {[0, 1, 2, 3, 4, 5, 6, 7, 8, 9].map((n) => (
23 |
27 | {n}
28 |
29 | ))}
30 |
31 |
32 | ))}
33 |
34 |
{label}
35 |
36 | );
37 | };
38 |
39 | export default RollingNumber;
40 |
41 |
--------------------------------------------------------------------------------
/components/CountDownAnim/index.jsx:
--------------------------------------------------------------------------------
1 | 'use client'
2 |
3 | import React from 'react';
4 | import { motion } from 'framer-motion';
5 | import RollingNumber from './RollingNumber';
6 |
7 | import { useState, useEffect } from 'react';
8 |
9 | const useCountdown = (targetDate) => {
10 | const calculateTimeLeft = () => {
11 | const difference = new Date(targetDate) - new Date();
12 | let timeLeft = {};
13 |
14 | if (difference > 0) {
15 | timeLeft = {
16 | days: Math.floor(difference / (1000 * 60 * 60 * 24)),
17 | hours: Math.floor((difference / (1000 * 60 * 60)) % 24),
18 | minutes: Math.floor((difference / 1000 / 60) % 60),
19 | seconds: Math.floor((difference / 1000) % 60),
20 | };
21 | }
22 |
23 | return timeLeft;
24 | };
25 |
26 | const [timeLeft, setTimeLeft] = useState(calculateTimeLeft());
27 |
28 | useEffect(() => {
29 | const timer = setTimeout(() => {
30 | setTimeLeft(calculateTimeLeft());
31 | }, 1000);
32 |
33 | return () => clearTimeout(timer);
34 | }, [timeLeft]);
35 |
36 | return timeLeft;
37 | };
38 |
39 |
40 |
41 | const CountdownTimer = ({ targetDate }) => {
42 | const timeLeft = useCountdown(targetDate);
43 |
44 | if (Object.keys(timeLeft).length === 0) {
45 | return (
46 |
51 | Countdown finished!
52 |
53 | );
54 | }
55 |
56 | return (
57 |
63 | {Object.entries(timeLeft).map(([unit, value]) => (
64 |
65 | ))}
66 |
67 | );
68 | };
69 |
70 | export default CountdownTimer;
71 |
72 |
--------------------------------------------------------------------------------
/components/Footer/index.jsx:
--------------------------------------------------------------------------------
1 | import Link from "next/link";
2 | import {
3 | TwitterLogoIcon,
4 | InstagramLogoIcon,
5 | LinkedInLogoIcon,
6 | DiscordLogoIcon,
7 | } from "@radix-ui/react-icons";
8 |
9 | const SocialMediaIcon = ({ Icon, href }) => (
10 |
11 |
12 |
13 | );
14 |
15 | const Footer = () => {
16 | const navigationItems = [
17 | { label: "Home", href: "/" },
18 | { label: "Gallery", href: "/gallery" },
19 | { label: "Partners", href: "/partners" },
20 | { label: "Prizes", href: "/prizes" },
21 | { label: "Schedule", href: "/schedule" },
22 | { label: "FAQs", href: "/faq" },
23 | { label: "Contact Us", href: "/contact" },
24 | ];
25 |
26 | return (
27 |
28 |
29 |
30 |
31 | {navigationItems.map(({ label, href }) => (
32 |
37 | {label}
38 |
39 | ))}
40 |
41 |
42 |
46 |
50 |
54 |
58 |
59 |
60 |
64 | © 2025 Hackbyte, All rights reserved
65 |
66 |
67 | );
68 | };
69 |
70 | export default Footer;
71 |
--------------------------------------------------------------------------------
/components/FooterAnimation/index.jsx:
--------------------------------------------------------------------------------
1 | "use client";
2 |
3 | import { useState, useEffect } from "react";
4 | import styles from "./index.module.css";
5 |
6 | const images = [
7 | "/footer/img1.svg",
8 | "/footer/img2.svg",
9 | "/footer/img3.svg",
10 | "/footer/img4.svg",
11 | ];
12 |
13 | export default function FooterAnimation() {
14 | const [currentIndex, setCurrentIndex] = useState(0);
15 |
16 | useEffect(() => {
17 | const rotationInterval = setInterval(() => {
18 | setCurrentIndex((prevIndex) => (prevIndex + 1) % images.length);
19 | }, 0.5 * 1000);
20 |
21 | return () => {
22 | clearInterval(rotationInterval);
23 | };
24 | }, []);
25 |
26 | return (
27 |
28 |
29 |
34 |
35 |
36 | );
37 | }
38 |
--------------------------------------------------------------------------------
/components/FooterAnimation/index.module.css:
--------------------------------------------------------------------------------
1 | .rotatingContainer {
2 | animation: rotateAnimation 8s linear infinite;
3 | }
4 |
5 | @keyframes rotateAnimation {
6 | 0% {
7 | transform: rotate(0deg);
8 | }
9 | 100% {
10 | transform: rotate(360deg);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/components/HackbyteLogo/index.jsx:
--------------------------------------------------------------------------------
1 | "use client";
2 |
3 | import { useEffect, useRef } from "react";
4 | import Sketch from "./sktech";
5 | import Image from "next/image";
6 | import hackbyteLogo from "@/public/hackbyte.png";
7 | import "./style.css";
8 |
9 | const HackbyteLogo = () => {
10 | const containerRef = useRef(null);
11 |
12 | useEffect(() => {
13 | let sketch;
14 | if (containerRef.current) {
15 | sketch = new Sketch({ dom: containerRef.current });
16 | }
17 | return () => {
18 | if (
19 | containerRef.current &&
20 | sketch &&
21 | containerRef.current.contains(sketch.renderer.domElement)
22 | ) {
23 | containerRef.current.removeChild(sketch.renderer.domElement);
24 | }
25 | };
26 | }, []);
27 |
28 | return (
29 |
30 |
36 |
48 |
49 |
50 |
51 | );
52 | };
53 |
54 | export { HackbyteLogo };
55 |
--------------------------------------------------------------------------------
/components/HackbyteLogo/sktech.js:
--------------------------------------------------------------------------------
1 | import * as THREE from "three";
2 |
3 | const fragment = `
4 | uniform float time;
5 | uniform float progress;
6 | uniform sampler2D uDataTexture;
7 | uniform sampler2D uTexture;
8 |
9 | uniform vec4 resolution;
10 | varying vec2 vUv;
11 | varying vec3 vPosition;
12 | float PI = 3.141592653589793238;
13 | void main() {
14 | // vec2 newUV = (vUv - vec2(0.5))*resolution.zw + vec2(0.5);
15 | // vec4 color = texture2D(uTexture,newUV);
16 | vec4 offset = texture2D(uDataTexture,vUv);
17 | // gl_FragColor = vec4(vUv,0.0,1.);
18 | // gl_FragColor = vec4(offset.r,0.,0.,1.);
19 | // gl_FragColor = color;
20 | gl_FragColor = texture2D(uTexture,vUv - 0.02*offset.rg);
21 | }
22 | `;
23 | const vertex = `
24 | uniform float time;
25 | varying vec2 vUv;
26 | varying vec3 vPosition;
27 | uniform vec2 pixels;
28 | float PI = 3.141592653589793238;
29 | void main() {
30 | vUv = uv;
31 | gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
32 | }
33 | `;
34 | function clamp(number, min, max) {
35 | return Math.max(min, Math.min(number, max));
36 | }
37 |
38 | export default class Sketch {
39 | constructor(options) {
40 | this.scene = new THREE.Scene();
41 |
42 | this.container = options.dom;
43 | this.img = this.container.querySelector("img");
44 | this.width = this.container.offsetWidth;
45 | this.height = this.container.offsetHeight;
46 | this.renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true });
47 | this.renderer.setPixelRatio(1.8);
48 | this.renderer.setSize(this.width, this.height);
49 | this.renderer.setClearColor(0xffffff, 0);
50 | this.renderer.physicallyCorrectLights = true;
51 | this.renderer.outputEncoding = THREE.sRGBEncoding;
52 | this.renderer.domElement.style.position = "absolute";
53 | this.renderer.domElement.style.top = "0";
54 | this.renderer.domElement.style.left = "0";
55 | this.container.appendChild(this.renderer.domElement);
56 |
57 | var light = new THREE.AmbientLight(0xffffff);
58 | light.position.set(-100, 200, 100);
59 | this.scene.add(light);
60 |
61 | this.camera = new THREE.PerspectiveCamera(
62 | 70,
63 | window.innerWidth / window.innerHeight,
64 | 0.1,
65 | 100
66 | );
67 |
68 | var frustumSize = 1;
69 | var aspect = window.innerWidth / window.innerHeight;
70 | // this.camera = new THREE.OrthographicCamera(
71 | // frustumSize / -2,
72 | // frustumSize / 2,
73 | // frustumSize / 2,
74 | // frustumSize / -2,
75 | // -1000,
76 | // 1000
77 | // );
78 | this.camera.position.set(0, 0, 2);
79 |
80 | this.time = 0;
81 |
82 | this.mouse = {
83 | x: 0,
84 | y: 0,
85 | prevX: 0,
86 | prevY: 0,
87 | vX: 0,
88 | vY: 0,
89 | };
90 |
91 | this.isPlaying = true;
92 | this.settings();
93 | this.addObjects();
94 | this.resize();
95 | this.render();
96 | this.setupResize();
97 | this.mouseEvents();
98 | }
99 |
100 | getValue(val) {
101 | return parseFloat(this.container.getAttribute("data-" + val));
102 | }
103 |
104 | mouseEvents() {
105 | window.addEventListener("mousemove", (e) => {
106 | this.mouse.x = e.clientX / this.width;
107 | this.mouse.y = e.clientY / this.height;
108 |
109 | this.mouse.vX = this.mouse.x - this.mouse.prevX;
110 | this.mouse.vY = this.mouse.y - this.mouse.prevY;
111 |
112 | this.mouse.prevX = this.mouse.x;
113 | this.mouse.prevY = this.mouse.y;
114 | });
115 | }
116 |
117 | settings() {
118 | let that = this;
119 | this.settings = {
120 | grid: this.getValue("grid") || 34,
121 | mouse: this.getValue("mouse") || 0.25,
122 | strength: this.getValue("strength") || 1,
123 | relaxation: this.getValue("relaxation") || 0.9,
124 | };
125 | }
126 |
127 | setupResize() {
128 | window.addEventListener("resize", this.resize.bind(this));
129 | }
130 |
131 | resize() {
132 | this.width = this.container.offsetWidth;
133 | this.height = this.container.offsetHeight;
134 | this.renderer.setSize(this.width, this.height);
135 | this.camera.aspect = this.width / this.height;
136 |
137 | // image cover
138 | this.imageAspect = 1 / 1.5;
139 | let a1;
140 | let a2;
141 | if (this.height / this.width > this.imageAspect) {
142 | a1 = (this.width / this.height) * this.imageAspect;
143 | a2 = 1;
144 | } else {
145 | a1 = 1;
146 | a2 = this.height / this.width / this.imageAspect;
147 | }
148 | this.material.uniforms.resolution.value.x = this.width;
149 | this.material.uniforms.resolution.value.y = this.height;
150 | this.material.uniforms.resolution.value.z = a1;
151 | this.material.uniforms.resolution.value.w = a2;
152 |
153 | this.camera.updateProjectionMatrix();
154 | this.regenerateGrid();
155 | }
156 |
157 | regenerateGrid() {
158 | this.size = this.settings.grid;
159 | const width = this.size;
160 | const height = this.size;
161 |
162 | const size = width * height;
163 | const data = new Float32Array(3 * size);
164 | const color = new THREE.Color(0xffffff);
165 |
166 | const r = Math.floor(color.r * 255);
167 | const g = Math.floor(color.g * 255);
168 | const b = Math.floor(color.b * 255);
169 |
170 | for (let i = 0; i < size; i++) {
171 | let r = Math.random() * 255 - 125;
172 | let r1 = Math.random() * 255 - 125;
173 |
174 | const stride = i * 3;
175 |
176 | data[stride] = r;
177 | data[stride + 1] = r1;
178 | data[stride + 2] = r;
179 | }
180 | this.texture = new THREE.DataTexture(
181 | data,
182 | width,
183 | height,
184 | THREE.RGBFormat,
185 | THREE.FloatType
186 | );
187 |
188 | this.texture.magFilter = this.texture.minFilter = THREE.NearestFilter;
189 |
190 | if (this.material) {
191 | this.material.uniforms.uDataTexture.value = this.texture;
192 | this.material.uniforms.uDataTexture.value.needsUpdate = true;
193 | }
194 | }
195 |
196 | addObjects() {
197 | this.regenerateGrid();
198 | let texture = new THREE.Texture(this.img);
199 | texture.needsUpdate = true;
200 | this.material = new THREE.ShaderMaterial({
201 | extensions: {
202 | derivatives: "#extension GL_OES_standard_derivatives : enable",
203 | },
204 | side: THREE.DoubleSide,
205 | uniforms: {
206 | time: {
207 | value: 0,
208 | },
209 | resolution: {
210 | value: new THREE.Vector4(),
211 | },
212 | uTexture: {
213 | value: texture,
214 | },
215 | uDataTexture: {
216 | value: this.texture,
217 | },
218 | },
219 | vertexShader: vertex,
220 | fragmentShader: fragment,
221 | });
222 |
223 | this.geometry = new THREE.PlaneGeometry(2.3, 1.45, 1, 1);
224 |
225 | this.plane = new THREE.Mesh(this.geometry, this.material);
226 | this.plane.position.set(0, -0.25, 0);
227 | this.scene.add(this.plane);
228 | }
229 |
230 | updateDataTexture() {
231 | let data = this.texture.image.data;
232 | for (let i = 0; i < data.length; i += 3) {
233 | data[i] *= this.settings.relaxation;
234 | data[i + 1] *= this.settings.relaxation;
235 | }
236 | let gridMouseX = this.size * this.mouse.x;
237 | let gridMouseY = this.size * (1 - this.mouse.y);
238 | let maxDist = this.size * this.settings.mouse;
239 | let aspect = this.height / this.width;
240 | for (let i = 0; i < this.size; i++) {
241 | for (let j = 0; j < this.size; j++) {
242 | let distance = (gridMouseX - i) ** 2 / aspect + (gridMouseY - j) ** 2;
243 | let maxDistSq = maxDist ** 1.25;
244 | if (distance < maxDistSq) {
245 | let index = 3 * (i + this.size * j);
246 |
247 | let power = (maxDist * 1.5) / Math.sqrt(distance);
248 | power = clamp(power, 0, 10);
249 |
250 | data[index] += this.settings.strength * 100 * this.mouse.vX * power;
251 | data[index + 1] -=
252 | this.settings.strength * 100 * this.mouse.vY * power;
253 | }
254 | }
255 | }
256 |
257 | this.mouse.vX *= 0.9;
258 | this.mouse.vY *= 0.9;
259 | this.texture.needsUpdate = true;
260 | }
261 |
262 | render() {
263 | if (!this.isPlaying || this.container.offsetWidth <= 1240) {
264 | if (this.container.contains(this.renderer.domElement)) {
265 | this.container.removeChild(this.renderer.domElement);
266 | }
267 | return;
268 | }
269 | this.time += 0.05;
270 | this.updateDataTexture();
271 | requestAnimationFrame(this.render.bind(this));
272 | this.renderer.render(this.scene, this.camera);
273 | }
274 | }
275 |
--------------------------------------------------------------------------------
/components/HackbyteLogo/style.css:
--------------------------------------------------------------------------------
1 | #hackbyteLogo {
2 | width: auto !important;
3 | height: auto !important;
4 | max-width:none !important;
5 | display: none;
6 | }
7 |
--------------------------------------------------------------------------------
/components/HumansCard/index.jsx:
--------------------------------------------------------------------------------
1 | "use client";
2 |
3 | import Image from "next/image";
4 | import { motion } from "framer-motion";
5 | import {
6 | TwitterLogoIcon,
7 | LinkedInLogoIcon,
8 | GitHubLogoIcon,
9 | } from "@radix-ui/react-icons";
10 | import behanceLogo from "../../public/behanceLogo.svg";
11 |
12 | const SocialMediaIcon = ({ Icon, href }) => (
13 |
14 |
18 |
19 | );
20 |
21 | const HumansCard = ({
22 | index,
23 | name,
24 | role,
25 | profilepic,
26 | linkedin,
27 | twitter,
28 | github,
29 | }) => {
30 | const defaultGradient =
31 | "radial-gradient(100% at center, #363636 100%, #1A1A1A 27%)";
32 |
33 | return (
34 | <>
35 |
52 |
56 |
62 |
63 |
64 |
{name}
65 | {role && (
66 |
67 | {role}
68 |
69 | )}
70 |
71 |
72 |
73 | {name !== "Aditya Raj" && (
74 |
75 | )}
76 | {name === "Aditya Raj" && (
77 |
78 |
83 |
84 | )}
85 |
86 |
87 |
88 |
89 | >
90 | );
91 | };
92 |
93 | export default HumansCard;
94 |
--------------------------------------------------------------------------------
/components/ImageGrid/index.jsx:
--------------------------------------------------------------------------------
1 | import Image from "next/image";
2 |
3 | import img1 from "@/public/galleryPage/img1.webp";
4 | import img2 from "@/public/galleryPage/img2.webp";
5 | import img3 from "@/public/galleryPage/img3.webp";
6 | import img4 from "@/public/galleryPage/img4.webp";
7 | import img5 from "@/public/galleryPage/img5.webp";
8 | import img6 from "@/public/galleryPage/img6.webp";
9 | import img7 from "@/public/galleryPage/img7.webp";
10 | import img8 from "@/public/galleryPage/img8.webp";
11 | import img9 from "@/public/galleryPage/img9.webp";
12 |
13 | const GridImage = () => {
14 | return (
15 |
16 |
17 |
18 |
19 |
26 |
27 |
28 |
34 |
35 |
36 |
42 |
43 |
44 |
45 |
46 |
47 |
54 |
55 |
56 |
62 |
63 |
64 |
70 |
71 |
72 |
73 |
74 |
75 |
82 |
83 |
84 |
91 |
92 |
93 |
99 |
100 |
101 |
102 |
103 | );
104 | };
105 |
106 | const BannerImage = ({ imgsrc }) => {
107 | return (
108 |
115 | );
116 | };
117 |
118 | export { GridImage, BannerImage };
119 |
--------------------------------------------------------------------------------
/components/LogitechTrackCard/index.jsx:
--------------------------------------------------------------------------------
1 | import Image from "next/image";
2 | import leftLeaf from "@/public/schedulePage/leftLeaf.svg";
3 | import rightLeaf from "@/public/schedulePage/rightLeaf.svg";
4 |
5 | export default function LogitechTrackCard({
6 | imgSrc,
7 | title,
8 | description,
9 | prize,
10 | prizeImg,
11 | borderColor,
12 | bgColor,
13 | }) {
14 | return (
15 |
23 |
28 |
29 |
30 | {title}
31 |
32 |
33 | {description}
34 |
35 |
36 |
37 |
38 |
39 |
40 |
45 |
52 | Prize
53 |
54 |
59 |
60 |
70 | {prize}
71 |
72 |
73 |
74 |
79 |
80 |
81 | );
82 | }
83 |
--------------------------------------------------------------------------------
/components/Navbar/index.jsx:
--------------------------------------------------------------------------------
1 | "use client";
2 |
3 | import { useState, useEffect } from "react";
4 | import { usePathname } from "next/navigation";
5 | import classes from "./index.module.css";
6 | import Link from "next/link";
7 | import Image from "next/image";
8 | import HBMobileLogo from "@/public/HBMobileLogo.svg";
9 | import { AnimatePresence, motion } from "framer-motion";
10 |
11 | const navigationItems = [
12 | { label: "Home", href: "/" },
13 | { label: "Gallery", href: "/gallery" },
14 | { label: "Partners", href: "/partners" },
15 | { label: "Prizes", href: "/prizes" },
16 | { label: "Schedule", href: "/schedule" },
17 | { label: "Humans", href: "/humans" },
18 | { label: "FAQs", href: "/faq" },
19 | { label: "Contact", href: "/contact" },
20 | ];
21 |
22 | const NavItem = ({ label, href }) => {
23 | const pathname = usePathname();
24 |
25 | return (
26 |
32 |
33 | {pathname === href && (
34 |
41 | )}
42 |
43 |
44 |
{label}
45 |
46 |
47 |
48 | );
49 | };
50 |
51 | export default function Navbar() {
52 | const [isMenuOpen, setMenuOpen] = useState(false);
53 |
54 | useEffect(() => {
55 | if (isMenuOpen) {
56 | document.body.classList.add("overflow-hidden");
57 | } else {
58 | document.body.classList.remove("overflow-hidden");
59 | }
60 | }, [isMenuOpen]);
61 |
62 | return (
63 | <>
64 |
65 |
73 |
78 | {navigationItems.map(({ label, href }) => (
79 |
80 | ))}
81 |
82 |
89 |
94 |
95 |
96 |
97 |
110 |
111 |
112 |
113 |
136 | >
137 | );
138 | }
139 |
--------------------------------------------------------------------------------
/components/Navbar/index.module.css:
--------------------------------------------------------------------------------
1 | .hamburger {
2 | position: relative;
3 | display: flex;
4 | flex-direction: column;
5 | align-items: flex-end;
6 | cursor: pointer;
7 | transition: all 0.25s;
8 | border: 1.5px solid #9d9d9d;
9 | border-radius: 2rem;
10 | padding: 0.6rem 1.3rem;
11 | row-gap: 0.31rem;
12 | }
13 |
14 | .hamburgerTop,
15 | .hamburgerMiddle,
16 | .hamburgerBottom {
17 | width: 24px;
18 | height: 2.5px;
19 | top: 0;
20 | left: 0;
21 | background: #fff;
22 | transform: rotate(0);
23 | transition: all 0.5s;
24 | }
25 |
26 | .hamburgerBottom {
27 | width: calc(100% - 8px);
28 | }
29 | .open {
30 | border: none;
31 | position: relative;
32 | transform: rotate(90deg);
33 | }
34 |
35 | .open .hamburgerTop {
36 | transform: translateY(4px) rotate(45deg);
37 | }
38 |
39 | .open .hamburgerMiddle {
40 | transform: translateY(-4px) rotate(-45deg);
41 | }
42 |
43 | .open .hamburgerBottom {
44 | display: none;
45 | }
46 |
--------------------------------------------------------------------------------
/components/NewsLetter/index.jsx:
--------------------------------------------------------------------------------
1 | "use client";
2 |
3 | import { useState } from "react";
4 | import { motion } from "framer-motion";
5 | import { db } from "@/app/firebase/config";
6 | import { collection, addDoc, getDocs, query, where } from "firebase/firestore";
7 | import { ToastContainer, toast } from "react-toastify";
8 |
9 | export default function NewsLetter() {
10 | const [email, setEmail] = useState("");
11 | const dbInstance = collection(db, "subscribers");
12 |
13 | function notify(message) {
14 | toast(message, {
15 | position: "bottom-right",
16 | autoClose: 3000,
17 | hideProgressBar: false,
18 | progress: undefined,
19 | });
20 | }
21 |
22 | const handleSubscribe = async (e) => {
23 | e.preventDefault();
24 |
25 | if (!email) {
26 | notify("Please enter your email address");
27 | return;
28 | }
29 |
30 | // Email format validation using regex
31 | const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
32 | if (!emailRegex.test(email)) {
33 | notify("Please enter a valid email address");
34 | return;
35 | }
36 |
37 | try {
38 | // Check if the email already exists in the database
39 | const querySnapshot = await getDocs(
40 | query(dbInstance, where("email", "==", email))
41 | );
42 |
43 | if (!querySnapshot.empty) {
44 | notify("Email already subscribed");
45 | return;
46 | }
47 |
48 | // If the email doesn't exist, add it to the database
49 | await addDoc(dbInstance, {
50 | email,
51 | timestamp: new Date(),
52 | });
53 |
54 | notify("Subscribed successfully!");
55 | setEmail("");
56 | } catch (error) {
57 | console.error("Error subscribing:", error.message);
58 | notify("An error occurred. Please try again later.");
59 | }
60 | };
61 |
62 | return (
63 | <>
64 |
65 |
66 |
71 |
72 |
76 | Join our newsletter
77 |
78 |
82 | Sign up to receive updates on our latest events.
83 |
84 |
85 |
86 |
87 |
88 | setEmail(e.target.value)}
93 | className="w-full py-3 px-3.5 bg-[#ffffff] rounded-lg text-gray-500
94 | border-2 border-[#D0D5DD] focus:outline-purple-300 focus:text-gray-900"
95 | />
96 |
97 |
108 | Subscribe
109 |
110 |
111 |
112 |
113 | >
114 | );
115 | }
116 |
--------------------------------------------------------------------------------
/components/PrizeCard/index.jsx:
--------------------------------------------------------------------------------
1 | "use client";
2 | import { motion } from "framer-motion";
3 | import { Tilt } from "react-tilt";
4 |
5 | const PrizeCard = ({ amount, category, default_bg, hover_bg }) => {
6 | const defaultOptions = {
7 | reverse: false,
8 | max: 4,
9 | perspective: 1000,
10 | scale: 1.02,
11 | speed: 200,
12 | transition: true,
13 | axis: null,
14 | reset: true,
15 | easing: "cubic-bezier(0.175, 0.885, 0.32, 1.275)",
16 | };
17 |
18 | return (
19 | <>
20 |
31 |
32 |
41 | (e.currentTarget.style.background = "var(--hover-gradient)")
42 | }
43 | onMouseLeave={(e) =>
44 | (e.currentTarget.style.background = "var(--default-gradient)")
45 | }
46 | >
47 |
51 | {amount}
52 |
53 |
57 | {category}
58 |
59 |
60 |
61 |
62 | >
63 | );
64 | };
65 |
66 | export default PrizeCard;
67 |
--------------------------------------------------------------------------------
/components/StatisticCard/index.jsx:
--------------------------------------------------------------------------------
1 | import CountAnimation from "../CountAnimation";
2 |
3 | export default function StatisticCard({ number, label, description }) {
4 | return (
5 |
6 |
7 |
8 |
9 | {label}
10 |
11 |
15 | {description}
16 |
17 |
18 |
19 | );
20 | }
21 |
--------------------------------------------------------------------------------
/components/TSPrizeCard/index.jsx:
--------------------------------------------------------------------------------
1 | "use client";
2 | import React from "react";
3 | import Image from "next/image";
4 | import { motion } from "framer-motion";
5 | import { Tilt } from "react-tilt";
6 |
7 | const TSPrizeCard = ({
8 | index,
9 | logo,
10 | alt,
11 | title,
12 | supportText,
13 | description,
14 | docLink,
15 | }) => {
16 | const defaultOptions = {
17 | reverse: false,
18 | max: 4,
19 | perspective: 1000,
20 | scale: 1.02,
21 | speed: 200,
22 | transition: true,
23 | axis: null,
24 | reset: true,
25 | easing: "cubic-bezier(0.175, 0.885, 0.32, 1.275)",
26 | };
27 |
28 | const defaultGradient =
29 | "radial-gradient(371.89% 134.33% at 3.21% 1.26%,rgba(255, 255, 255, 0.07) 0%,rgba(217, 217, 217, 0.00) 100%)";
30 | const hoverGradient =
31 | "radial-gradient(80deg, #D06D30 6.67%, #FFD887 28.13%, #FFDCAD 64.87%, #FAB858 95.66%)";
32 |
33 | return (
34 | <>
35 |
52 |
53 |
70 | (e.currentTarget.style.background = "var(--hover-gradient)")
71 | }
72 | onMouseLeave={(e) =>
73 | (e.currentTarget.style.background = "var(--default-gradient)")
74 | }
75 | >
76 |
77 |
82 |
83 |
84 |
85 |
95 | {title}
96 |
97 |
98 |
99 |
100 | {supportText}
101 |
102 |
106 | {description}
107 |
108 |
109 |
110 |
111 |
112 |
113 | >
114 | );
115 | };
116 |
117 | export default TSPrizeCard;
118 |
--------------------------------------------------------------------------------
/components/TextAnimation/index.jsx:
--------------------------------------------------------------------------------
1 | "use client";
2 | import { motion } from "framer-motion";
3 |
4 | export default function TextAnimation({ text }) {
5 | const textArray = text.split(" ");
6 |
7 | return (
8 |
9 | {textArray.map((el, i) => (
10 |
22 | {el === " " ? : el}{" "}
23 |
24 | ))}
25 |
26 | );
27 | }
28 |
--------------------------------------------------------------------------------
/components/ThemeTitle/index.jsx:
--------------------------------------------------------------------------------
1 | "use client";
2 |
3 | import { useEffect, useState } from "react";
4 | import { motion } from "framer-motion";
5 | import CountDownAnim from "../CountDownAnim";
6 |
7 | const ThemeTitle = () => {
8 | const [mousePosition, setMousePosition] = useState({
9 | x: 0,
10 | y: 0,
11 | });
12 | const [cursorVariant, setCursorVariant] = useState("default");
13 | const [display, setDisplay] = useState("block");
14 |
15 | useEffect(() => {
16 | const mouseMove = (e) => {
17 | setMousePosition({
18 | x: e.clientX,
19 | y: e.clientY,
20 | });
21 | };
22 |
23 | window.addEventListener("mousemove", mouseMove);
24 |
25 | return () => {
26 | window.removeEventListener("mousemove", mouseMove);
27 | };
28 | }, []);
29 |
30 | useEffect(() => {
31 | setDisplay(window.innerWidth < 450 ? "none" : "block");
32 | }, []);
33 |
34 | const variants = {
35 | default: {
36 | x: mousePosition.x - 16,
37 | y: mousePosition.y - 16,
38 | display: display,
39 | },
40 | text: {
41 | height: 120,
42 | width: 120,
43 | x: mousePosition.x - 75,
44 | y: mousePosition.y - 75,
45 | backgroundColor: "#DED9C6",
46 | mixBlendMode: "difference",
47 | },
48 | };
49 |
50 | const textEnter = () => setCursorVariant("text");
51 | const textLeave = () => setCursorVariant("default");
52 |
53 | return (
54 | <>
55 |
56 | Revealing soon :{" "}
57 |
58 |
64 |
65 |
66 |
67 |
72 | >
73 | );
74 | };
75 |
76 | export default ThemeTitle;
77 |
--------------------------------------------------------------------------------
/components/Timer/index.jsx:
--------------------------------------------------------------------------------
1 | "use client";
2 | import React, { useState, useEffect } from "react";
3 |
4 | export default function Timer() {
5 | const [timeLeft, setTimeLeft] = useState({
6 | days: 0,
7 | hours: 0,
8 | minutes: 0,
9 | seconds: 0,
10 | });
11 |
12 | const deadline = "2024-03-28T00:00:00";
13 |
14 | useEffect(() => {
15 | const updateTimeLeft = () => {
16 | const time = Date.parse(deadline) - new Date().getTime();
17 | if (time < 0) {
18 | // Stop the countdown once the deadline has passed
19 | setTimeLeft({ days: 0, hours: 0, minutes: 0, seconds: 0 });
20 | return;
21 | }
22 |
23 | const days = Math.floor(time / (1000 * 60 * 60 * 24));
24 | const hours = Math.floor((time / (1000 * 60 * 60)) % 24);
25 | const minutes = Math.floor((time / 1000 / 60) % 60);
26 | const seconds = Math.floor((time / 1000) % 60);
27 |
28 | setTimeLeft({ days, hours, minutes, seconds });
29 | };
30 |
31 | const interval = setInterval(updateTimeLeft, 1000);
32 |
33 | // Cleanup the interval on component unmount
34 | return () => clearInterval(interval);
35 | }, [deadline]);
36 |
37 | // Destructure timeLeft for easier use in the JSX
38 | const { days, hours, minutes, seconds } = timeLeft;
39 |
40 | return (
41 |
46 | {[
47 | { value: days, label: "D" },
48 | { value: hours, label: "H" },
49 | { value: minutes, label: "M" },
50 | { value: seconds, label: "S" },
51 | ].map((item, index) => (
52 |
53 |
57 | {item.value}
58 | {item.label}
59 |
60 |
61 | ))}
62 |
63 | );
64 | }
65 |
--------------------------------------------------------------------------------
/components/TitleSponsorCard/index.jsx:
--------------------------------------------------------------------------------
1 | "use client";
2 |
3 | import { useState } from "react";
4 | import Image from "next/image";
5 | import logitech from "@/public/partnersPage/logitech.jpg";
6 | import { ArrowRightIcon } from "@radix-ui/react-icons";
7 | import { Tilt } from "react-tilt";
8 |
9 | export default function TitleSponsorCard() {
10 | const [isHovered, setIsHovered] = useState(false);
11 | const defaultOptions = {
12 | reverse: false,
13 | max: 4,
14 | perspective: 1000,
15 | scale: 1.02,
16 | speed: 200,
17 | transition: true,
18 | axis: null,
19 | reset: true,
20 | easing: "cubic-bezier(0.175, 0.885, 0.32, 1.275)",
21 | };
22 |
23 | return (
24 |
30 |
31 | {
38 | setIsHovered(true);
39 | }}
40 | onMouseLeave={(e) => {
41 | setIsHovered(false);
42 | }}
43 | >
44 |
51 |
57 |
58 |
59 | Logitech
60 |
61 |
67 |
68 |
69 | Title Sponsor
70 |
71 |
72 | The MX Master Series is expertly designed for users, empowering
73 | coders to unleash productivity and optimize performance during
74 | intense coding marathons.
75 |
76 |
77 |
78 |
79 |
80 | );
81 | }
82 |
--------------------------------------------------------------------------------
/components/ui/accordion.jsx:
--------------------------------------------------------------------------------
1 | "use client";
2 |
3 | import * as React from "react";
4 | import * as AccordionPrimitive from "@radix-ui/react-accordion";
5 | import { PlusCircledIcon, MinusCircledIcon } from "@radix-ui/react-icons";
6 |
7 | import { cn } from "@/lib/utils";
8 | import { motion } from "framer-motion";
9 |
10 | const Accordion = AccordionPrimitive.Root;
11 |
12 | const AccordionItem = React.forwardRef(({ className, ...props }, ref) => (
13 | <>
14 |
24 |
29 |
30 | >
31 | ));
32 | AccordionItem.displayName = "AccordionItem";
33 |
34 | const AccordionTrigger = React.forwardRef(
35 | ({ className, children, ...props }, ref) => (
36 |
37 | span]:hidden [&[data-state=closed]>svg]:hidden",
41 | className
42 | )}
43 | {...props}
44 | >
45 | {children}
46 |
47 |
48 |
49 |
50 |
51 |
52 | )
53 | );
54 | AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
55 |
56 | const AccordionContent = React.forwardRef(
57 | ({ className, children, ...props }, ref) => (
58 |
63 | {children}
64 |
65 | )
66 | );
67 |
68 | AccordionContent.displayName = AccordionPrimitive.Content.displayName;
69 |
70 | export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
71 |
--------------------------------------------------------------------------------
/components/ui/button.jsx:
--------------------------------------------------------------------------------
1 | import * as React from "react"
2 | import { Slot } from "@radix-ui/react-slot"
3 | import { cva } from "class-variance-authority";
4 |
5 | import { cn } from "@/lib/utils"
6 |
7 | const buttonVariants = cva(
8 | "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
9 | {
10 | variants: {
11 | variant: {
12 | default: "bg-primary text-primary-foreground hover:bg-primary/90",
13 | destructive:
14 | "bg-destructive text-destructive-foreground hover:bg-destructive/90",
15 | outline:
16 | "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
17 | secondary:
18 | "bg-secondary text-secondary-foreground hover:bg-secondary/80",
19 | ghost: "hover:bg-accent hover:text-accent-foreground",
20 | link: "text-primary underline-offset-4 hover:underline",
21 | },
22 | size: {
23 | default: "h-10 px-4 py-2",
24 | sm: "h-9 rounded-md px-3",
25 | lg: "h-11 rounded-md px-8",
26 | icon: "h-10 w-10",
27 | },
28 | },
29 | defaultVariants: {
30 | variant: "default",
31 | size: "default",
32 | },
33 | }
34 | )
35 |
36 | const Button = React.forwardRef(({ className, variant, size, asChild = false, ...props }, ref) => {
37 | const Comp = asChild ? Slot : "button"
38 | return (
39 | ( )
43 | );
44 | })
45 | Button.displayName = "Button"
46 |
47 | export { Button, buttonVariants }
48 |
--------------------------------------------------------------------------------
/components/ui/cards.jsx:
--------------------------------------------------------------------------------
1 | "use client";
2 |
3 | import { useState } from "react";
4 | import Image from "next/image";
5 | import { motion } from "framer-motion";
6 | import { ArrowRightIcon } from "@radix-ui/react-icons";
7 | import { Tilt } from "react-tilt";
8 |
9 | const SponsorCard = ({ index, sponsor, category, sponsorimgsrc, site }) => {
10 | const [isHovered, setIsHovered] = useState(false);
11 | const defaultOptions = {
12 | reverse: false,
13 | max: 4,
14 | perspective: 1000,
15 | scale: 1.02,
16 | speed: 200,
17 | transition: true,
18 | axis: null,
19 | reset: true,
20 | easing: "cubic-bezier(0.175, 0.885, 0.32, 1.275)",
21 | };
22 |
23 | const defaultGradient =
24 | "radial-gradient(100% at center, #363636 100%, #1A1A1A 27%)";
25 | const hoverGradient =
26 | "radial-gradient(371.89% 134.33% at 3.21% 1.26%,rgba(255, 255, 255, 0.07) 0%,rgba(217, 217, 217, 0.00) 100%)";
27 |
28 | return (
29 | <>
30 |
47 |
48 |
49 | {
56 | e.currentTarget.style.background = "var(--hover-gradient)";
57 | setIsHovered(true);
58 | }}
59 | onMouseLeave={(e) => {
60 | e.currentTarget.style.background = "var(--default-gradient)";
61 | setIsHovered(false);
62 | }}
63 | >
64 |
69 |
73 |
74 |
{sponsor}
75 |
76 | {category}
77 |
78 |
79 |
85 |
86 |
87 |
88 |
89 |
90 | >
91 | );
92 | };
93 |
94 | export default SponsorCard;
95 |
--------------------------------------------------------------------------------
/components/ui/dialog.jsx:
--------------------------------------------------------------------------------
1 | "use client";
2 |
3 | import * as React from "react";
4 | import * as DialogPrimitive from "@radix-ui/react-dialog";
5 | import { X } from "lucide-react";
6 |
7 | import { cn } from "@/lib/utils";
8 |
9 | const Dialog = DialogPrimitive.Root;
10 |
11 | const DialogTrigger = DialogPrimitive.Trigger;
12 |
13 | const DialogPortal = DialogPrimitive.Portal;
14 |
15 | const DialogClose = DialogPrimitive.Close;
16 |
17 | const DialogOverlay = React.forwardRef(({ className, ...props }, ref) => (
18 |
26 | ));
27 | DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
28 |
29 | const DialogContent = React.forwardRef(
30 | ({ className, children, ...props }, ref) => (
31 |
32 |
33 |
41 | {children}
42 |
43 |
44 | Close
45 |
46 |
47 |
48 | )
49 | );
50 | DialogContent.displayName = DialogPrimitive.Content.displayName;
51 |
52 | const DialogHeader = ({ className, ...props }) => (
53 |
60 | );
61 | DialogHeader.displayName = "DialogHeader";
62 |
63 | const DialogFooter = ({ className, ...props }) => (
64 |
71 | );
72 | DialogFooter.displayName = "DialogFooter";
73 |
74 | const DialogTitle = React.forwardRef(({ className, ...props }, ref) => (
75 |
83 | ));
84 | DialogTitle.displayName = DialogPrimitive.Title.displayName;
85 |
86 | const DialogDescription = React.forwardRef(({ className, ...props }, ref) => (
87 |
92 | ));
93 | DialogDescription.displayName = DialogPrimitive.Description.displayName;
94 |
95 | export {
96 | Dialog,
97 | DialogPortal,
98 | DialogOverlay,
99 | DialogClose,
100 | DialogTrigger,
101 | DialogContent,
102 | DialogHeader,
103 | DialogFooter,
104 | DialogTitle,
105 | DialogDescription,
106 | };
107 |
--------------------------------------------------------------------------------
/components/ui/scroll-area.jsx:
--------------------------------------------------------------------------------
1 | "use client";
2 |
3 | import * as React from "react";
4 | import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
5 |
6 | import { cn } from "@/lib/utils";
7 |
8 | const ScrollArea = React.forwardRef(
9 | ({ className, children, ...props }, ref) => (
10 |
15 |
16 | {children}
17 |
18 |
19 |
20 |
21 | )
22 | );
23 | ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
24 |
25 | const ScrollBar = React.forwardRef(
26 | ({ className, orientation = "vertical", ...props }, ref) => (
27 |
40 |
41 |
42 | )
43 | );
44 | ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
45 |
46 | export { ScrollArea, ScrollBar };
47 |
--------------------------------------------------------------------------------
/components/ui/table.jsx:
--------------------------------------------------------------------------------
1 | import * as React from "react"
2 |
3 | import { cn } from "@/lib/utils"
4 |
5 | const Table = React.forwardRef(({ className, ...props }, ref) => (
6 |
12 | ))
13 | Table.displayName = "Table"
14 |
15 | const TableHeader = React.forwardRef(({ className, ...props }, ref) => (
16 |
17 | ))
18 | TableHeader.displayName = "TableHeader"
19 |
20 | const TableBody = React.forwardRef(({ className, ...props }, ref) => (
21 |
25 | ))
26 | TableBody.displayName = "TableBody"
27 |
28 | const TableFooter = React.forwardRef(({ className, ...props }, ref) => (
29 | tr]:last:border-b-0", className)}
32 | {...props} />
33 | ))
34 | TableFooter.displayName = "TableFooter"
35 |
36 | const TableRow = React.forwardRef(({ className, ...props }, ref) => (
37 |
44 | ))
45 | TableRow.displayName = "TableRow"
46 |
47 | const TableHead = React.forwardRef(({ className, ...props }, ref) => (
48 |
55 | ))
56 | TableHead.displayName = "TableHead"
57 |
58 | const TableCell = React.forwardRef(({ className, ...props }, ref) => (
59 |
63 | ))
64 | TableCell.displayName = "TableCell"
65 |
66 | const TableCaption = React.forwardRef(({ className, ...props }, ref) => (
67 |
71 | ))
72 | TableCaption.displayName = "TableCaption"
73 |
74 | export {
75 | Table,
76 | TableHeader,
77 | TableBody,
78 | TableFooter,
79 | TableHead,
80 | TableRow,
81 | TableCell,
82 | TableCaption,
83 | }
84 |
--------------------------------------------------------------------------------
/components/ui/tabs.jsx:
--------------------------------------------------------------------------------
1 | "use client"
2 |
3 | import * as React from "react"
4 | import * as TabsPrimitive from "@radix-ui/react-tabs"
5 |
6 | import { cn } from "@/lib/utils"
7 |
8 | const Tabs = TabsPrimitive.Root
9 |
10 | const TabsList = React.forwardRef(({ className, ...props }, ref) => (
11 |
18 | ))
19 | TabsList.displayName = TabsPrimitive.List.displayName
20 |
21 | const TabsTrigger = React.forwardRef(({ className, ...props }, ref) => (
22 |
29 | ))
30 | TabsTrigger.displayName = TabsPrimitive.Trigger.displayName
31 |
32 | const TabsContent = React.forwardRef(({ className, ...props }, ref) => (
33 |
40 | ))
41 | TabsContent.displayName = TabsPrimitive.Content.displayName
42 |
43 | export { Tabs, TabsList, TabsTrigger, TabsContent }
44 |
--------------------------------------------------------------------------------
/jsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "paths": {
4 | "@/*": ["./*"]
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/lib/utils.js:
--------------------------------------------------------------------------------
1 | import { clsx } from "clsx"
2 | import { twMerge } from "tailwind-merge"
3 |
4 | export function cn(...inputs) {
5 | return twMerge(clsx(inputs))
6 | }
7 |
--------------------------------------------------------------------------------
/next.config.mjs:
--------------------------------------------------------------------------------
1 | /** @type {import('next').NextConfig} */
2 | const nextConfig = {};
3 |
4 | export default nextConfig;
5 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "hackbyte",
3 | "version": "0.1.0",
4 | "private": true,
5 | "scripts": {
6 | "dev": "next dev",
7 | "build": "next build",
8 | "start": "next start",
9 | "lint": "next lint"
10 | },
11 | "dependencies": {
12 | "@radix-ui/react-accordion": "^1.1.2",
13 | "@radix-ui/react-dialog": "^1.0.5",
14 | "@radix-ui/react-icons": "^1.3.0",
15 | "@radix-ui/react-scroll-area": "^1.0.5",
16 | "@radix-ui/react-slot": "^1.0.2",
17 | "@radix-ui/react-tabs": "^1.0.4",
18 | "class-variance-authority": "^0.7.0",
19 | "clsx": "^2.1.0",
20 | "firebase": "^10.8.0",
21 | "framer-motion": "^11.0.6",
22 | "lucide-react": "^0.323.0",
23 | "next": "14.1.0",
24 | "react": "^18",
25 | "react-dom": "^18",
26 | "react-tilt": "^1.0.2",
27 | "react-toastify": "^10.0.4",
28 | "tailwind-merge": "^2.2.1",
29 | "tailwindcss-animate": "^1.0.7",
30 | "three": "^0.136.0"
31 | },
32 | "devDependencies": {
33 | "autoprefixer": "^10.0.1",
34 | "eslint": "^8",
35 | "eslint-config-next": "14.1.0",
36 | "postcss": "^8",
37 | "tailwindcss": "^3.3.0"
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | };
7 |
--------------------------------------------------------------------------------
/public/HBMobileLogo.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/public/aboutPage/about_img2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/aboutPage/about_img2.png
--------------------------------------------------------------------------------
/public/aboutPage/checkIcon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/public/aboutPage/img1.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/public/aboutPage/img2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/public/aboutPage/img3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/public/aboutPage/img4.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/public/aboutPage/img5.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/public/aboutPage/img6.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/public/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/background.png
--------------------------------------------------------------------------------
/public/behanceLogo.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/public/contactPage/busIcon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/public/contactPage/planeIcon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/public/contactPage/trainIcon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/public/galleryPage/DSC_2626-min.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/galleryPage/DSC_2626-min.webp
--------------------------------------------------------------------------------
/public/galleryPage/banner.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/galleryPage/banner.jpg
--------------------------------------------------------------------------------
/public/galleryPage/img1.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/galleryPage/img1.webp
--------------------------------------------------------------------------------
/public/galleryPage/img13.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/galleryPage/img13.webp
--------------------------------------------------------------------------------
/public/galleryPage/img14.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/galleryPage/img14.webp
--------------------------------------------------------------------------------
/public/galleryPage/img2.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/galleryPage/img2.webp
--------------------------------------------------------------------------------
/public/galleryPage/img3.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/galleryPage/img3.webp
--------------------------------------------------------------------------------
/public/galleryPage/img4.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/galleryPage/img4.webp
--------------------------------------------------------------------------------
/public/galleryPage/img5.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/galleryPage/img5.webp
--------------------------------------------------------------------------------
/public/galleryPage/img6.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/galleryPage/img6.webp
--------------------------------------------------------------------------------
/public/galleryPage/img7.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/galleryPage/img7.webp
--------------------------------------------------------------------------------
/public/galleryPage/img8.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/galleryPage/img8.webp
--------------------------------------------------------------------------------
/public/galleryPage/img9.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/galleryPage/img9.webp
--------------------------------------------------------------------------------
/public/getInTouchImage.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/public/hackbyte.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/hackbyte.png
--------------------------------------------------------------------------------
/public/hackbyte2Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/hackbyte2Logo.png
--------------------------------------------------------------------------------
/public/hackbytenew.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/hackbytenew.png
--------------------------------------------------------------------------------
/public/humansPage/aanchal.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/aanchal.jpeg
--------------------------------------------------------------------------------
/public/humansPage/aditya.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/aditya.jpg
--------------------------------------------------------------------------------
/public/humansPage/aish.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/aish.jpg
--------------------------------------------------------------------------------
/public/humansPage/akshat.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/akshat.jpg
--------------------------------------------------------------------------------
/public/humansPage/aman.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/aman.jpeg
--------------------------------------------------------------------------------
/public/humansPage/aryan.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/aryan.jpg
--------------------------------------------------------------------------------
/public/humansPage/ashish.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/ashish.jpg
--------------------------------------------------------------------------------
/public/humansPage/ashu.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/ashu.jpg
--------------------------------------------------------------------------------
/public/humansPage/bhavik.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/bhavik.jpg
--------------------------------------------------------------------------------
/public/humansPage/chaitanaya.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/chaitanaya.jpg
--------------------------------------------------------------------------------
/public/humansPage/deepanshu.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/deepanshu.jpg
--------------------------------------------------------------------------------
/public/humansPage/divyansh.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/divyansh.jpeg
--------------------------------------------------------------------------------
/public/humansPage/gautam.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/gautam.jpg
--------------------------------------------------------------------------------
/public/humansPage/khushi.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/khushi.jpg
--------------------------------------------------------------------------------
/public/humansPage/manan.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/manan.jpg
--------------------------------------------------------------------------------
/public/humansPage/manoj.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/manoj.jpeg
--------------------------------------------------------------------------------
/public/humansPage/nitya.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/nitya.jpg
--------------------------------------------------------------------------------
/public/humansPage/prajjwal.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/prajjwal.jpg
--------------------------------------------------------------------------------
/public/humansPage/prajwal.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/prajwal.jpg
--------------------------------------------------------------------------------
/public/humansPage/priyansh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/priyansh.jpg
--------------------------------------------------------------------------------
/public/humansPage/priyansh_garg.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/priyansh_garg.jpeg
--------------------------------------------------------------------------------
/public/humansPage/sagar.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/sagar.jpg
--------------------------------------------------------------------------------
/public/humansPage/sambhav.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/sambhav.jpg
--------------------------------------------------------------------------------
/public/humansPage/samyak.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/samyak.jpeg
--------------------------------------------------------------------------------
/public/humansPage/sanskriti.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/sanskriti.jpg
--------------------------------------------------------------------------------
/public/humansPage/siddhant.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/siddhant.jpeg
--------------------------------------------------------------------------------
/public/humansPage/tushir.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/tushir.jpeg
--------------------------------------------------------------------------------
/public/humansPage/vansh.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/vansh.jpeg
--------------------------------------------------------------------------------
/public/humansPage/varun.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/varun.jpg
--------------------------------------------------------------------------------
/public/humansPage/vedant.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/vedant.jpeg
--------------------------------------------------------------------------------
/public/humansPage/yashika.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/humansPage/yashika.jpeg
--------------------------------------------------------------------------------
/public/iiitdmjLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/iiitdmjLogo.png
--------------------------------------------------------------------------------
/public/partnersPage/auth0.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/partnersPage/auth0.webp
--------------------------------------------------------------------------------
/public/partnersPage/balsamiq.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/partnersPage/balsamiq.webp
--------------------------------------------------------------------------------
/public/partnersPage/bobble.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/partnersPage/bobble.webp
--------------------------------------------------------------------------------
/public/partnersPage/devfolio.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/partnersPage/devfolio.webp
--------------------------------------------------------------------------------
/public/partnersPage/edubard.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/partnersPage/edubard.webp
--------------------------------------------------------------------------------
/public/partnersPage/finlatics.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/partnersPage/finlatics.webp
--------------------------------------------------------------------------------
/public/partnersPage/github.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/partnersPage/github.jpg
--------------------------------------------------------------------------------
/public/partnersPage/godSpeed.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/partnersPage/godSpeed.jpg
--------------------------------------------------------------------------------
/public/partnersPage/godaddy.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/partnersPage/godaddy.webp
--------------------------------------------------------------------------------
/public/partnersPage/jdoodle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/partnersPage/jdoodle.png
--------------------------------------------------------------------------------
/public/partnersPage/logitech.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/partnersPage/logitech.jpg
--------------------------------------------------------------------------------
/public/partnersPage/mlh.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/partnersPage/mlh.webp
--------------------------------------------------------------------------------
/public/partnersPage/mongodb.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/partnersPage/mongodb.webp
--------------------------------------------------------------------------------
/public/partnersPage/nextgen.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/partnersPage/nextgen.jpg
--------------------------------------------------------------------------------
/public/partnersPage/postman.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/partnersPage/postman.jpg
--------------------------------------------------------------------------------
/public/partnersPage/taipy.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/partnersPage/taipy.jpg
--------------------------------------------------------------------------------
/public/partnersPage/virtualProtocol.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/partnersPage/virtualProtocol.jpg
--------------------------------------------------------------------------------
/public/partnersPage/wolfram.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/partnersPage/wolfram.webp
--------------------------------------------------------------------------------
/public/prizesPage/best_beginner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/prizesPage/best_beginner.png
--------------------------------------------------------------------------------
/public/prizesPage/best_girls.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/prizesPage/best_girls.png
--------------------------------------------------------------------------------
/public/prizesPage/godSpeedLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/prizesPage/godSpeedLogo.png
--------------------------------------------------------------------------------
/public/prizesPage/img1.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/public/prizesPage/img2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/public/prizesPage/img3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/public/prizesPage/img4.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/public/prizesPage/postmanLogo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/prizesPage/postmanLogo.jpg
--------------------------------------------------------------------------------
/public/prizesPage/prizeImg1.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/prizesPage/prizeImg1.webp
--------------------------------------------------------------------------------
/public/prizesPage/prizeImg2.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/prizesPage/prizeImg2.webp
--------------------------------------------------------------------------------
/public/prizesPage/prizeImg3.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/prizesPage/prizeImg3.webp
--------------------------------------------------------------------------------
/public/prizesPage/virtualProtocolLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/prizesPage/virtualProtocolLogo.png
--------------------------------------------------------------------------------
/public/prizesPage/wolframLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BitByte-TPC/hackbyte/c1240bc09ca69b628305f40ac4a0972f30dd9d43/public/prizesPage/wolframLogo.png
--------------------------------------------------------------------------------
/public/schedulePage/leftLeaf.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/public/schedulePage/rightLeaf.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/public/tpcLogo.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/tailwind.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('tailwindcss').Config} */
2 | module.exports = {
3 | darkMode: ["class"],
4 | content: [
5 | './pages/**/*.{js,jsx}',
6 | './components/**/*.{js,jsx}',
7 | './app/**/*.{js,jsx}',
8 | './src/**/*.{js,jsx}',
9 | ],
10 | prefix: "",
11 | theme: {
12 | container: {
13 | center: true,
14 | padding: "2rem",
15 | screens: {
16 | "2xl": "1400px",
17 | },
18 | },
19 | extend: {
20 | colors: {
21 | border: "hsl(var(--border))",
22 | input: "hsl(var(--input))",
23 | ring: "hsl(var(--ring))",
24 | background: "hsl(var(--background))",
25 | foreground: "hsl(var(--foreground))",
26 | primary: {
27 | DEFAULT: "hsl(var(--primary))",
28 | foreground: "hsl(var(--primary-foreground))",
29 | },
30 | secondary: {
31 | DEFAULT: "hsl(var(--secondary))",
32 | foreground: "hsl(var(--secondary-foreground))",
33 | },
34 | destructive: {
35 | DEFAULT: "hsl(var(--destructive))",
36 | foreground: "hsl(var(--destructive-foreground))",
37 | },
38 | muted: {
39 | DEFAULT: "hsl(var(--muted))",
40 | foreground: "hsl(var(--muted-foreground))",
41 | },
42 | accent: {
43 | DEFAULT: "hsl(var(--accent))",
44 | foreground: "hsl(var(--accent-foreground))",
45 | },
46 | popover: {
47 | DEFAULT: "hsl(var(--popover))",
48 | foreground: "hsl(var(--popover-foreground))",
49 | },
50 | card: {
51 | DEFAULT: "hsl(var(--card))",
52 | foreground: "hsl(var(--card-foreground))",
53 | },
54 | },
55 | borderRadius: {
56 | lg: "var(--radius)",
57 | md: "calc(var(--radius) - 2px)",
58 | sm: "calc(var(--radius) - 4px)",
59 | },
60 | keyframes: {
61 | "accordion-down": {
62 | from: { height: "0" },
63 | to: { height: "var(--radix-accordion-content-height)" },
64 | },
65 | "accordion-up": {
66 | from: { height: "var(--radix-accordion-content-height)" },
67 | to: { height: "0" },
68 | },
69 | },
70 | animation: {
71 | "accordion-down": "accordion-down 0.2s ease-out",
72 | "accordion-up": "accordion-up 0.2s ease-out",
73 | },
74 | },
75 | },
76 | plugins: [require("tailwindcss-animate")],
77 | }
--------------------------------------------------------------------------------