Skip to content

Commit 2810717

Browse files
Merge pull request #102 from Jordan231111/feature/enhance-project-submission-judging
Feature/enhance project submission judging
2 parents dfc72ff + 03cf180 commit 2810717

File tree

6 files changed

+250
-100
lines changed

6 files changed

+250
-100
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,3 +67,4 @@ amplifyconfiguration*
6767
# repomix
6868
/repomix-output.xml
6969
/repomix.config.json
70+
.playwright-mcp/

__tests__/components/event.test.tsx

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -129,18 +129,20 @@ describe("Event Page", () => {
129129
// Check for the project submission section
130130
expect(screen.getByText("PROJECT SUBMISSION")).toBeInTheDocument();
131131

132-
// Check for specific criteria
133-
const criteriaItems = [
132+
// Check for specific criteria headings - without colons now in the new design
133+
const criteriaHeadings = [
134134
"Practicality & Utility",
135-
"Creativity:",
136-
"Technical Difficulty:",
137-
"Effort:",
138-
"User Experience:",
139-
"Collaboration & Learning:",
135+
"Creativity",
136+
"Technical Difficulty",
137+
"Effort",
138+
"User Experience",
139+
"Collaboration & Learning",
140140
];
141141

142-
criteriaItems.forEach((item) => {
143-
expect(screen.getByText(item, { exact: false })).toBeInTheDocument();
142+
criteriaHeadings.forEach((heading) => {
143+
// Use getAllByText since some words might appear in descriptions too
144+
const elements = screen.getAllByText(heading, { exact: false });
145+
expect(elements.length).toBeGreaterThan(0);
144146
});
145147
});
146148

@@ -159,11 +161,11 @@ describe("Event Page", () => {
159161
it("renders the Devpost submission link", () => {
160162
render(<EventPage />);
161163

162-
// Check for the Devpost link
163-
const devpostLink = screen.getByTestId("hackrpi-link-https---hackrpi2024-devpost-com-");
164+
// Check for the Devpost link - updated to 2025
165+
const devpostLink = screen.getByTestId("hackrpi-link-https---hackrpi2025-devpost-com-");
164166
expect(devpostLink).toBeInTheDocument();
165-
expect(devpostLink).toHaveAttribute("href", "https://hackrpi2024.devpost.com/");
166-
expect(devpostLink.textContent).toBe("DEVPOST");
167+
expect(devpostLink).toHaveAttribute("href", "https://hackrpi2025.devpost.com/");
168+
expect(devpostLink.textContent).toBe("SUBMIT ON DEVPOST");
167169
});
168170

169171
it("renders mentoring and Discord information", () => {

__tests__/components/footer.test.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,8 @@ describe("Footer Component", () => {
5959
render(<Footer />);
6060

6161
// Check if the location details are rendered
62-
expect(screen.getByText("Darrin Communications Center @ Rensselaer Polytechnic Institute")).toBeInTheDocument();
62+
expect(screen.getByText("Darrin Communications Center", { exact: false })).toBeInTheDocument();
63+
expect(screen.getByText("@ Rensselaer Polytechnic Institute", { exact: false })).toBeInTheDocument();
6364
expect(screen.getByText("110 8th St, Troy, NY 12180")).toBeInTheDocument();
6465
});
6566

app/event/page.tsx

Lines changed: 209 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -109,75 +109,223 @@ function EventPage() {
109109
</div>
110110
</div>
111111

112-
<div className="flex flex-col items-start justify-start w-full" id="project-submission">
113-
<h1 className="p-4 text-4xl font-modern text-hackrpi-orange">Project Submission and Judging</h1>
114-
<div className="flex flex-col md:flex-row">
115-
<div className="container p-4">
116-
<h1 className="font-retro text-3xl mb-4 text-hackrpi-orange">JUDGING CRITERIA</h1>
117-
<p className="mb-2 text-hackrpi-yellow">
118-
After coding ends, at noon on Sunday, you will have the opportunity to present your project to a panel
119-
of judges. These judges are industry professionals, professors, alumni, and fellow students who will
120-
evaluate your project based on the following criteria:
112+
<div className="flex flex-col items-center justify-start w-full py-12" id="project-submission">
113+
<h1 className="p-4 text-5xl font-modern text-center text-transparent bg-clip-text bg-gradient-to-r from-hackrpi-orange to-hackrpi-yellow mb-8">
114+
Project Submission and Judging
115+
</h1>
116+
117+
{/* Judging Criteria Section */}
118+
<div className="w-full max-w-7xl px-4 mb-16">
119+
<div className="text-center mb-12">
120+
<h2 className="font-retro text-4xl mb-4 text-hackrpi-orange inline-block relative">
121+
JUDGING CRITERIA
122+
<div className="absolute -bottom-2 left-0 right-0 h-1 bg-gradient-to-r from-hackrpi-orange to-hackrpi-pink"></div>
123+
</h2>
124+
<p className="mt-8 text-lg text-hackrpi-yellow max-w-3xl mx-auto">
125+
After coding ends at noon on Sunday, present your project to our panel of industry professionals,
126+
professors, alumni, and fellow students. They&apos;ll evaluate your work based on these criteria:
121127
</p>
122-
<ul className="text-lg list-disc list-inside text-hackrpi-yellow">
123-
<li className=" border-b border-gray-400 mb-2 text-hackrpi-pink">
124-
<strong className="text-hackrpi-pink">Practicality & Utility:</strong> What problem do you want to
125-
solve? How applicable is your hack to problems we&apos;re facing today? Any future plans?
126-
</li>
127-
<li className=" border-b border-gray-400 mb-2 text-hackrpi-light-purple">
128-
<strong className="text-hackrpi-light-purple">Creativity:</strong> How original is your hack? Is this
129-
a novel idea or something that many people have come across?
130-
</li>
131-
<li className=" border-b border-gray-400 mb-2 text-hackrpi-pink">
132-
<strong className="text-hackrpi-pink">Technical Difficulty:</strong> How technically challenging is
133-
it? Which technologies did you use?
134-
</li>
135-
<li className=" border-b border-gray-400 mb-2 text-hackrpi-light-purple">
136-
<strong className="text-hackrpi-light-purple">Effort:</strong> Did the team genuinely commit time and
137-
effort to this product?
138-
</li>
139-
<li className=" border-b border-gray-400 mb-2 text-hackrpi-pink">
140-
<strong className="text-hackrpi-pink">User Experience:</strong> What impression do you get from the
141-
hack? Does it provide for a smooth user experience?
142-
</li>
143-
<li className=" border-b border-gray-400 mb-2 text-hackrpi-light-purple">
144-
<strong className="text-hackrpi-light-purple">Collaboration & Learning:</strong> Did the team work
145-
well together and split up work? Did they learn from the experience?
146-
</li>
147-
</ul>
148128
</div>
149129

150-
<div className="flex flex-col p-4 text-hackrpi-yellow">
151-
<h1 className="font-retro text-3xl mb-4 text-hackrpi-orange">PROJECT SUBMISSION</h1>
152-
<p className="text-lg mb-2">
153-
HackRPI uses Devpost to manage project submissions. You will need to{" "}
154-
<a
155-
href="https://secure.devpost.com/users/register?ref_content=signup_global_nav&ref_feature=signup&ref_medium=button"
156-
target="_blank"
157-
rel="noopener noreferrer"
158-
className="text-blue-500 hover:underline"
159-
>
160-
create a Devpost account
161-
</a>{" "}
162-
and submit your project to the HackRPI 2025 hackathon page. Make sure to include a title, description,
163-
demo video, and any other relevant information about your project.
164-
</p>
165-
<p className="text-lg mb-2">
166-
You can submit your project at any time before 11:00 AM on Sunday. You must have a Devpost submission to
167-
be eligible for judging. You can edit your project submission until 12:00 PM on Sunday.{" "}
168-
</p>
169-
<p className="text-lg mb-2">
170-
After noon, you will not be able to make any changes to your project or your submission. Judging begins
171-
immediately after the submission deadline. You must be present at the event to give a live demo and
172-
explain your project to the judges.
130+
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
131+
{/* Practicality & Utility Card */}
132+
<div className="group relative bg-gradient-to-br from-hackrpi-pink/20 to-hackrpi-pink/5 border-2 border-hackrpi-pink/50 rounded-lg p-6 transform transition-all duration-300 hover:scale-105 hover:border-hackrpi-pink">
133+
<div className="absolute -top-3 -right-3 w-12 h-12 bg-hackrpi-pink rounded-full flex items-center justify-center text-2xl group-hover:rotate-12 transition-transform duration-300">
134+
🎯
135+
</div>
136+
<h3 className="font-bold text-xl text-hackrpi-pink mb-3">Practicality & Utility</h3>
137+
<p className="text-gray-300 text-sm leading-relaxed">
138+
What problem do you want to solve? How applicable is your hack to problems we&apos;re facing today?
139+
Any future plans?
140+
</p>
141+
<div className="absolute bottom-0 left-0 w-full h-1 bg-gradient-to-r from-hackrpi-pink to-transparent transform scale-x-0 group-hover:scale-x-100 transition-transform duration-300"></div>
142+
</div>
143+
144+
{/* Creativity Card */}
145+
<div className="group relative bg-gradient-to-br from-hackrpi-light-purple/20 to-hackrpi-light-purple/5 border-2 border-hackrpi-light-purple/50 rounded-lg p-6 transform transition-all duration-300 hover:scale-105 hover:border-hackrpi-light-purple">
146+
<div className="absolute -top-3 -right-3 w-12 h-12 bg-hackrpi-light-purple rounded-full flex items-center justify-center text-2xl group-hover:rotate-12 transition-transform duration-300">
147+
💡
148+
</div>
149+
<h3 className="font-bold text-xl text-hackrpi-light-purple mb-3">Creativity</h3>
150+
<p className="text-gray-300 text-sm leading-relaxed">
151+
How original is your hack? Is this a novel idea or something that many people have come across?
152+
</p>
153+
<div className="absolute bottom-0 left-0 w-full h-1 bg-gradient-to-r from-hackrpi-light-purple to-transparent transform scale-x-0 group-hover:scale-x-100 transition-transform duration-300"></div>
154+
</div>
155+
156+
{/* Technical Difficulty Card */}
157+
<div className="group relative bg-gradient-to-br from-hackrpi-orange/20 to-hackrpi-orange/5 border-2 border-hackrpi-orange/50 rounded-lg p-6 transform transition-all duration-300 hover:scale-105 hover:border-hackrpi-orange">
158+
<div className="absolute -top-3 -right-3 w-12 h-12 bg-hackrpi-orange rounded-full flex items-center justify-center text-2xl group-hover:rotate-12 transition-transform duration-300">
159+
160+
</div>
161+
<h3 className="font-bold text-xl text-hackrpi-orange mb-3">Technical Difficulty</h3>
162+
<p className="text-gray-300 text-sm leading-relaxed">
163+
How technically challenging is it? Which technologies did you use?
164+
</p>
165+
<div className="absolute bottom-0 left-0 w-full h-1 bg-gradient-to-r from-hackrpi-orange to-transparent transform scale-x-0 group-hover:scale-x-100 transition-transform duration-300"></div>
166+
</div>
167+
168+
{/* Effort Card */}
169+
<div className="group relative bg-gradient-to-br from-hackrpi-yellow/20 to-hackrpi-yellow/5 border-2 border-hackrpi-yellow/50 rounded-lg p-6 transform transition-all duration-300 hover:scale-105 hover:border-hackrpi-yellow">
170+
<div className="absolute -top-3 -right-3 w-12 h-12 bg-hackrpi-yellow rounded-full flex items-center justify-center text-2xl group-hover:rotate-12 transition-transform duration-300">
171+
💪
172+
</div>
173+
<h3 className="font-bold text-xl text-hackrpi-yellow mb-3">Effort</h3>
174+
<p className="text-gray-300 text-sm leading-relaxed">
175+
Did the team genuinely commit time and effort to this product?
176+
</p>
177+
<div className="absolute bottom-0 left-0 w-full h-1 bg-gradient-to-r from-hackrpi-yellow to-transparent transform scale-x-0 group-hover:scale-x-100 transition-transform duration-300"></div>
178+
</div>
179+
180+
{/* User Experience Card */}
181+
<div className="group relative bg-gradient-to-br from-hackrpi-pink/20 to-hackrpi-pink/5 border-2 border-hackrpi-pink/50 rounded-lg p-6 transform transition-all duration-300 hover:scale-105 hover:border-hackrpi-pink">
182+
<div className="absolute -top-3 -right-3 w-12 h-12 bg-hackrpi-pink rounded-full flex items-center justify-center text-2xl group-hover:rotate-12 transition-transform duration-300">
183+
184+
</div>
185+
<h3 className="font-bold text-xl text-hackrpi-pink mb-3">User Experience</h3>
186+
<p className="text-gray-300 text-sm leading-relaxed">
187+
What impression do you get from the hack? Does it provide for a smooth user experience?
188+
</p>
189+
<div className="absolute bottom-0 left-0 w-full h-1 bg-gradient-to-r from-hackrpi-pink to-transparent transform scale-x-0 group-hover:scale-x-100 transition-transform duration-300"></div>
190+
</div>
191+
192+
{/* Collaboration & Learning Card */}
193+
<div className="group relative bg-gradient-to-br from-hackrpi-light-purple/20 to-hackrpi-light-purple/5 border-2 border-hackrpi-light-purple/50 rounded-lg p-6 transform transition-all duration-300 hover:scale-105 hover:border-hackrpi-light-purple">
194+
<div className="absolute -top-3 -right-3 w-12 h-12 bg-hackrpi-light-purple rounded-full flex items-center justify-center text-2xl group-hover:rotate-12 transition-transform duration-300">
195+
🤝
196+
</div>
197+
<h3 className="font-bold text-xl text-hackrpi-light-purple mb-3">Collaboration & Learning</h3>
198+
<p className="text-gray-300 text-sm leading-relaxed">
199+
Did the team work well together and split up work? Did they learn from the experience?
200+
</p>
201+
<div className="absolute bottom-0 left-0 w-full h-1 bg-gradient-to-r from-hackrpi-light-purple to-transparent transform scale-x-0 group-hover:scale-x-100 transition-transform duration-300"></div>
202+
</div>
203+
</div>
204+
</div>
205+
206+
{/* Project Submission Section */}
207+
<div className="w-full max-w-7xl px-4">
208+
<div className="text-center mb-12">
209+
<h2 className="font-retro text-4xl mb-4 text-hackrpi-orange inline-block relative">
210+
PROJECT SUBMISSION
211+
<div className="absolute -bottom-2 left-0 right-0 h-1 bg-gradient-to-r from-hackrpi-pink to-hackrpi-orange"></div>
212+
</h2>
213+
<p className="mt-8 text-lg text-hackrpi-yellow max-w-3xl mx-auto">
214+
Submit your project through Devpost and showcase your amazing work!
173215
</p>
216+
</div>
217+
218+
{/* Submission Timeline */}
219+
<div className="w-full max-w-[1600px] mx-auto mb-12 px-2 sm:px-4">
220+
<div className="relative">
221+
{/* Timeline Line */}
222+
<div className="absolute left-6 sm:left-8 lg:left-10 top-0 bottom-0 w-1 bg-gradient-to-b from-hackrpi-orange via-hackrpi-pink to-hackrpi-light-purple"></div>
223+
224+
{/* Timeline Steps */}
225+
<div className="space-y-8">
226+
{/* Step 1 */}
227+
<div className="relative flex items-start">
228+
<div className="relative z-10 w-14 h-14 md:w-16 md:h-16 lg:w-20 lg:h-20 bg-hackrpi-orange rounded-full flex items-center justify-center text-xl md:text-2xl lg:text-3xl shadow-lg shadow-hackrpi-orange/50">
229+
1
230+
</div>
231+
<div className="ml-6 md:ml-8 lg:ml-10 bg-gradient-to-r from-hackrpi-orange/10 to-transparent border-l-4 border-hackrpi-orange p-5 md:p-6 lg:p-8 rounded-r-lg flex-1">
232+
<h3 className="text-2xl md:text-3xl font-bold text-hackrpi-orange mb-2">Create Your Account</h3>
233+
<p className="text-gray-300 md:text-lg">
234+
<a
235+
href="https://secure.devpost.com/users/register?ref_content=signup_global_nav&ref_feature=signup&ref_medium=button"
236+
target="_blank"
237+
rel="noopener noreferrer"
238+
className="text-hackrpi-light-purple hover:text-hackrpi-pink underline transition-colors"
239+
>
240+
Sign up for a Devpost account
241+
</a>{" "}
242+
to get started with your submission.
243+
</p>
244+
</div>
245+
</div>
246+
247+
{/* Step 2 */}
248+
<div className="relative flex items-start">
249+
<div className="relative z-10 w-14 h-14 md:w-16 md:h-16 lg:w-20 lg:h-20 bg-hackrpi-pink rounded-full flex items-center justify-center text-xl md:text-2xl lg:text-3xl shadow-lg shadow-hackrpi-pink/50">
250+
2
251+
</div>
252+
<div className="ml-6 md:ml-8 lg:ml-10 bg-gradient-to-r from-hackrpi-pink/10 to-transparent border-l-4 border-hackrpi-pink p-5 md:p-6 lg:p-8 rounded-r-lg flex-1">
253+
<h3 className="text-2xl md:text-3xl font-bold text-hackrpi-pink mb-2">Prepare Your Submission</h3>
254+
<p className="text-gray-300 mb-3 md:text-lg">Include these essential elements:</p>
255+
<ul className="space-y-2 text-sm md:text-base lg:text-lg text-gray-400">
256+
<li className="flex items-center">
257+
<span className="text-hackrpi-yellow mr-2"></span>
258+
Project title and description
259+
</li>
260+
<li className="flex items-center">
261+
<span className="text-hackrpi-yellow mr-2"></span>
262+
Demo video showcasing your hack
263+
</li>
264+
<li className="flex items-center">
265+
<span className="text-hackrpi-yellow mr-2"></span>
266+
Technologies used and challenges faced
267+
</li>
268+
<li className="flex items-center">
269+
<span className="text-hackrpi-yellow mr-2"></span>
270+
Team member information
271+
</li>
272+
</ul>
273+
</div>
274+
</div>
275+
276+
{/* Step 3 */}
277+
<div className="relative flex items-start">
278+
<div className="relative z-10 w-14 h-14 md:w-16 md:h-16 lg:w-20 lg:h-20 bg-hackrpi-yellow rounded-full flex items-center justify-center text-xl md:text-2xl lg:text-3xl shadow-lg shadow-hackrpi-yellow/50">
279+
3
280+
</div>
281+
<div className="ml-6 md:ml-8 lg:ml-10 bg-gradient-to-r from-hackrpi-yellow/10 to-transparent border-l-4 border-hackrpi-yellow p-5 md:p-6 lg:p-8 rounded-r-lg flex-1">
282+
<h3 className="text-2xl md:text-3xl font-bold text-hackrpi-yellow mb-2">
283+
Submit Before Deadline
284+
</h3>
285+
<div className="space-y-2 text-gray-300 md:text-lg">
286+
<p className="flex items-center">
287+
<span className="text-hackrpi-orange font-bold mr-2">📅</span>
288+
Submit by <span className="font-bold text-hackrpi-orange mx-1">11:00 AM Sunday</span>
289+
</p>
290+
<p className="flex items-center">
291+
<span className="text-hackrpi-pink font-bold mr-2">✏️</span>
292+
Edit until <span className="font-bold text-hackrpi-pink mx-1">12:00 PM Sunday</span>
293+
</p>
294+
</div>
295+
</div>
296+
</div>
297+
298+
{/* Step 4 */}
299+
<div className="relative flex items-start">
300+
<div className="relative z-10 w-14 h-14 md:w-16 md:h-16 lg:w-20 lg:h-20 bg-hackrpi-light-purple rounded-full flex items-center justify-center text-xl md:text-2xl lg:text-3xl shadow-lg shadow-hackrpi-light-purple/50">
301+
4
302+
</div>
303+
<div className="ml-6 md:ml-8 lg:ml-10 bg-gradient-to-r from-hackrpi-light-purple/10 to-transparent border-l-4 border-hackrpi-light-purple p-5 md:p-6 lg:p-8 rounded-r-lg flex-1">
304+
<h3 className="text-2xl md:text-3xl font-bold text-hackrpi-light-purple mb-2">
305+
Present Your Project
306+
</h3>
307+
<p className="text-gray-300 md:text-lg">
308+
After noon, no changes allowed. Be ready to give a live demo and explain your project to the
309+
judges!
310+
</p>
311+
</div>
312+
</div>
313+
</div>
314+
</div>
315+
</div>
316+
317+
{/* CTA Button */}
318+
<div className="text-center">
174319
<HackRPILink
175-
href="https://hackrpi2024.devpost.com/"
176-
className="text-3xl mt-4 text-center text-hackrpi-orange"
320+
href="https://hackrpi2025.devpost.com/"
321+
className="inline-block w-full sm:w-auto text-3xl sm:text-4xl md:text-5xl px-10 sm:px-14 md:px-20 py-6 sm:py-8 md:py-10 bg-gradient-to-r from-hackrpi-orange to-hackrpi-pink hover:from-hackrpi-pink hover:to-hackrpi-light-purple transform hover:scale-105 md:hover:scale-110 transition-all duration-300 shadow-xl hover:shadow-2xl ring-4 ring-hackrpi-yellow/60 border-hackrpi-yellow/70 !text-white hover:!text-white drop-shadow-md rounded-xl"
177322
target="_blank"
178323
>
179-
DEVPOST
324+
SUBMIT ON DEVPOST
180325
</HackRPILink>
326+
<p className="mt-4 text-sm text-gray-400">
327+
Ready to showcase your amazing project? Click above to start your submission!
328+
</p>
181329
</div>
182330
</div>
183331
</div>

0 commit comments

Comments
 (0)