Skip to content

Commit f0ac81a

Browse files
authored
Merge pull request #62 from codeunia-dev/add/eventpage
Add event page
2 parents 61375db + 03c06be commit f0ac81a

10 files changed

Lines changed: 1775 additions & 315 deletions

File tree

app/events/[id]/page.tsx

Lines changed: 509 additions & 0 deletions
Large diffs are not rendered by default.

app/events/page.tsx

Lines changed: 852 additions & 308 deletions
Large diffs are not rendered by default.

app/globals.css

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -185,16 +185,12 @@
185185
/* Dark mode glowing effect */
186186

187187
@keyframes scroll {
188-
0% {
189-
transform: translateX(0);
190-
}
191-
100% {
192-
transform: translateX(calc(-300px * 6 - 2rem * 6));
193-
}
188+
0% { transform: translateX(0); }
189+
100% { transform: translateX(-50%); }
194190
}
195191

196192
.animate-scroll {
197-
animation: scroll 40s linear infinite;
193+
animation: scroll 30s linear infinite;
198194
}
199195

200196
.animate-scroll:hover {

components/data/events.ts

Lines changed: 197 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,197 @@
1+
export interface Event {
2+
id: number;
3+
slug: string;
4+
title: string;
5+
excerpt: string;
6+
description: string;
7+
organizer: string;
8+
date: string;
9+
time: string;
10+
duration: string;
11+
category: string;
12+
categories: string[];
13+
tags: string[];
14+
featured: boolean;
15+
image: string;
16+
location: string;
17+
locations: string[];
18+
capacity: number;
19+
registered: number;
20+
price: string;
21+
payment: 'Paid' | 'Free';
22+
status: 'live' | 'expired' | 'closed' | 'recent';
23+
eventType: ('Online' | 'Offline' | 'Hybrid')[];
24+
teamSize: number | [number, number];
25+
userTypes: string[];
26+
registration_required: boolean;
27+
registration_deadline: string;
28+
rules?: string[];
29+
schedule?: { date: string; label: string }[];
30+
prize?: string;
31+
prize_details?: string;
32+
faq?: { question: string; answer: string }[];
33+
socials?: {
34+
whatsapp?: string;
35+
instagram?: string;
36+
linkedin?: string;
37+
email?: string;
38+
};
39+
sponsors?: { name: string; logo: string; type: string }[];
40+
marking_scheme?: {
41+
total_marks: number;
42+
breakdown: { difficulty: string; count: number; marks_each: number }[];
43+
notes: string[];
44+
};
45+
}
46+
47+
export const eventCategories = [
48+
"All",
49+
"Hackathons",
50+
"Workshops",
51+
"Conferences",
52+
"Webinars",
53+
"Mentorship Programs",
54+
"Career Fairs",
55+
"Tech Talks",
56+
"Coding Competitions",
57+
"Project Showcases"
58+
];
59+
60+
// Mock events data - in a real app, this would come from Supabase
61+
export const mockEvents: Event[] = [
62+
{
63+
id: 1,
64+
slug: "realitycode-hackathon-2025",
65+
title: "RealityCode by Codeunia",
66+
excerpt: "India's Smartest Innovation Showdown - A reality-show-style hackathon where entertainment meets engineering",
67+
description: "India's first reality-show-style hackathon where entertainment meets engineering. Compete in live eliminations, technical battles, and collaborative problem-solving across 5 adrenaline-filled rounds. Join 5,000+ participants for a prize pool of ₹1,00,000+ and experience innovation, adaptability, and showmanship like never before.",
68+
organizer: "Codeunia",
69+
date: "2025-08-25",
70+
time: "12:00 AM",
71+
duration: "Multi-round",
72+
category: "Hackathons",
73+
categories: ["Hackathons", "Innovation", "Competition"],
74+
tags: ["Reality Show", "Innovation", "Live Coding", "Competition", "Engineering"],
75+
featured: true,
76+
image: "/images/events/hackathons/realitycode.jpeg",
77+
location: "Chandigarh University (Finale)",
78+
locations: ["Online", "Chandigarh"],
79+
capacity: 500,
80+
registered: 160,
81+
price: "199",
82+
payment: "Free",
83+
status: "live",
84+
eventType: ["Hybrid"],
85+
teamSize: [1, 5],
86+
userTypes: ["College Students", "Professionals", "Developers"],
87+
registration_required: true,
88+
registration_deadline: "2025-08-25",
89+
rules: [
90+
"All development must occur during the hackathon",
91+
"Plagiarism or pre-built project submissions will be disqualified",
92+
"Maintain professional behavior & code of conduct",
93+
"Public voting will partially influence the final scores",
94+
"Finalists must wear official RealityCode badges during the finale"
95+
],
96+
schedule: [
97+
{ date: "Aug 25", label: "Registration Deadline" },
98+
{ date: "Sep 10", label: "Round 1: Online Qualifier Submission" },
99+
{ date: "Sep 20", label: "Round 2: Jury Shortlisting" },
100+
{ date: "Oct 15", label: "Round 3: Grand Finale Day 1" },
101+
{ date: "Oct 16", label: "Round 3: Grand Finale Day 2" }
102+
],
103+
prize: "₹22,000+",
104+
prize_details: "Winner: ₹10,000, First Runner Up: ₹7,000, Second Runner Up: ₹5,000. Plus swag kits, merchandise, API credits, premium tech memberships, mentorship sessions, and recognition across Codeunia platforms.",
105+
faq: [
106+
{ question: "What is the team size limit?", answer: "Teams can have 1 to 5 members. Inter-college and interdisciplinary teams are welcome." },
107+
{ question: "Is this a reality show format?", answer: "Yes, it's India's first reality-show-style hackathon with live eliminations and technical battles." },
108+
{ question: "What are the special perks for first-year students?", answer: "Dedicated mentorship before Round 1, 10% bonus in preliminary evaluation, learning pathway access, and networking with senior teams." },
109+
{ question: "What are the 5 rounds in the finale?", answer: "BootStart (rapid prototyping), Pitch Panic (live pitching), Feature Drop (surprise features), CodeSwap (debugging), and Final Build (rebuilding under constraints)." }
110+
],
111+
socials: {
112+
whatsapp: "https://wa.me/918699655907",
113+
instagram: "https://instagram.com/codeunia",
114+
linkedin: "https://linkedin.com/company/codeunia",
115+
email: "codeunia@gmail.com"
116+
},
117+
sponsors: [
118+
119+
120+
{ name: 'GeeksforGeeks', logo: '/images/sponsors/geekforgeeks.png', type: 'Knowledge & Learning Partner' },
121+
{ name: 'Unstop', logo: '/images/sponsors/unstop.png', type: 'Technology Partner' },
122+
{ name: 'Webytes', logo: '/images/sponsors/webytes.png', type: 'Community Engagement Partner' },
123+
{ name: 'Codecrafter', logo: '/images/sponsors/codecrafter.png', type: 'Upskilling Partner' },
124+
{ name: 'Alexa Dev Community', logo: '/images/sponsors/alexadevcommunity.png', type: 'Community Engagement Partner' },
125+
{ name: 'GFG Student Chapter CU', logo: '/images/sponsors/studentchaptercu.png', type: 'Community Engagement Partner' },
126+
{ name: 'Rotaract CU', logo: '/images/sponsors/rotaract.png', type: 'Community Engagement Partner' },
127+
]
128+
},
129+
{
130+
id: 2,
131+
slug: "coderush-weekly-2025",
132+
title: "CodeRush Weekly",
133+
excerpt: "Your weekly coding showdown – Compete, Learn, and Win!",
134+
description: "Join CodeRush Weekly – a fair, proctored, and competitive coding challenge that tests your aptitude, DSA, and interview readiness in a real hiring simulation. Solve curated problems, compete with top coders, and climb the leaderboard with weekly challenges. Rankings, certificates, and exclusive rewards await the best minds.",
135+
organizer: "Codeunia & Devantra Community",
136+
date: "2025-07-13", // You can update this weekly
137+
time: "7:00 PM",
138+
duration: "2 hrs",
139+
category: "Coding Contest",
140+
categories: ["Contests", "Interview Prep", "Competitive Programming"],
141+
tags: ["Coding", "DSA", "Interview Prep", "Aptitude", "Leaderboard"],
142+
featured: true,
143+
image: "/images/events/hackathons/coderush.jpeg",
144+
location: "Online",
145+
locations: ["Online"],
146+
capacity: 1500,
147+
registered: 600,
148+
price: "Free",
149+
payment: "Free",
150+
status: "live",
151+
eventType: ["Online"],
152+
teamSize: [1, 1],
153+
userTypes: ["College Students", "Aspiring Developers", "Interview Seekers"],
154+
registration_required: true,
155+
registration_deadline: "2025-07-12",
156+
rules: [
157+
"The assessment opens in full-screen mode. Tab-switching or background activity will result in disqualification.",
158+
"Participants must complete the test in one sitting. No retakes or breaks are allowed.",
159+
"Only the first submission for each question will be evaluated. Edits or resubmissions are not permitted.",
160+
"Using AI tools, copied code, or external help is strictly prohibited. Plagiarism leads to immediate disqualification.",
161+
"Ensure a stable internet connection and avoid refreshing or closing the browser tab during the contest."
162+
],
163+
schedule: [
164+
{ date: "Jul 12", label: "Last Date to Register" },
165+
{ date: "Jul 13", label: "Contest Day: 9:00 AM – 7:00 PM" },
166+
{ date: "Jul 14", label: "Results and Leaderboard Release" }
167+
],
168+
prize: "Certificates",
169+
prize_details: "Top scorers receive digital certificates and leaderboard badges. Recurring winners may receive internship interview calls and spotlight features.",
170+
faq: [
171+
{ question: "Who can participate?", answer: "Anyone passionate about coding – college students, job seekers, and aspiring developers are welcome." },
172+
{ question: "Is there any registration fee?", answer: "No, CodeRush Weekly is completely free to participate." },
173+
{ question: "Can I participate in teams?", answer: "No, it is an individual contest to assess personal coding and logical abilities." },
174+
{ question: "Will the test be proctored?", answer: "Yes, tab-switching and suspicious behavior will lead to automatic disqualification." }
175+
],
176+
marking_scheme: {
177+
total_marks: 100,
178+
breakdown: [
179+
{ difficulty: "Hard", count: 2, marks_each: 25 },
180+
{ difficulty: "Intermediate", count: 2, marks_each: 15 },
181+
{ difficulty: "Easy", count: 2, marks_each: 10 }
182+
],
183+
notes: [
184+
"No negative marking",
185+
"Marks are awarded only for fully correct solutions",
186+
"No marks for partially correct or sample-test-only solutions"
187+
]
188+
},
189+
socials: {
190+
whatsapp: "https://wa.me/918699025107",
191+
instagram: "https://instagram.com/codeunia",
192+
linkedin: "https://linkedin.com/company/codeunia",
193+
email: "codeunia@gmail.com"
194+
},
195+
sponsors: []
196+
}
197+
];

components/tabs-demo.tsx

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
"use client";
2+
3+
import { Tabs } from "@/components/ui/tabs";
4+
5+
export default function TabsDemo() {
6+
const tabs = [
7+
{
8+
title: "Product",
9+
value: "product",
10+
content: (
11+
<div className="w-full overflow-hidden relative h-full rounded-2xl p-10 text-xl md:text-4xl font-bold text-white bg-gradient-to-br from-purple-700 to-violet-900">
12+
<p>Product Tab</p>
13+
<DummyContent />
14+
</div>
15+
),
16+
},
17+
{
18+
title: "Services",
19+
value: "services",
20+
content: (
21+
<div className="w-full overflow-hidden relative h-full rounded-2xl p-10 text-xl md:text-4xl font-bold text-white bg-gradient-to-br from-purple-700 to-violet-900">
22+
<p>Services tab</p>
23+
<DummyContent />
24+
</div>
25+
),
26+
},
27+
{
28+
title: "Playground",
29+
value: "playground",
30+
content: (
31+
<div className="w-full overflow-hidden relative h-full rounded-2xl p-10 text-xl md:text-4xl font-bold text-white bg-gradient-to-br from-purple-700 to-violet-900">
32+
<p>Playground tab</p>
33+
<DummyContent />
34+
</div>
35+
),
36+
},
37+
{
38+
title: "Content",
39+
value: "content",
40+
content: (
41+
<div className="w-full overflow-hidden relative h-full rounded-2xl p-10 text-xl md:text-4xl font-bold text-white bg-gradient-to-br from-purple-700 to-violet-900">
42+
<p>Content tab</p>
43+
<DummyContent />
44+
</div>
45+
),
46+
},
47+
{
48+
title: "Random",
49+
value: "random",
50+
content: (
51+
<div className="w-full overflow-hidden relative h-full rounded-2xl p-10 text-xl md:text-4xl font-bold text-white bg-gradient-to-br from-purple-700 to-violet-900">
52+
<p>Random tab</p>
53+
<DummyContent />
54+
</div>
55+
),
56+
},
57+
];
58+
59+
return (
60+
<div className="h-[20rem] md:h-[40rem] [perspective:1000px] relative b flex flex-col max-w-5xl mx-auto w-full items-start justify-start my-40">
61+
<Tabs tabs={tabs} />
62+
</div>
63+
);
64+
}
65+
66+
const DummyContent = () => {
67+
return (
68+
<img
69+
src="/linear.webp"
70+
alt="dummy image"
71+
width="1000"
72+
height="1000"
73+
className="object-cover object-left-top h-[60%] md:h-[90%] absolute -bottom-10 inset-x-0 w-[90%] rounded-xl mx-auto"
74+
/>
75+
);
76+
};

0 commit comments

Comments
 (0)