From 808d36baa5ba41e40fe153be3a0a97516461bd92 Mon Sep 17 00:00:00 2001 From: aamoghS Date: Sun, 8 Feb 2026 10:10:03 -0500 Subject: [PATCH] newer --- sites/mainweb/app/(portal)/admin/page.tsx | 62 +-- sites/mainweb/app/(portal)/dashboard/page.tsx | 355 ++++++++++-------- sites/mainweb/app/(portal)/judge/page.tsx | 114 +++--- 3 files changed, 290 insertions(+), 241 deletions(-) diff --git a/sites/mainweb/app/(portal)/admin/page.tsx b/sites/mainweb/app/(portal)/admin/page.tsx index b4f212d..886935d 100644 --- a/sites/mainweb/app/(portal)/admin/page.tsx +++ b/sites/mainweb/app/(portal)/admin/page.tsx @@ -8,6 +8,8 @@ import QRCode from 'qrcode'; import Link from 'next/link'; import { QRCodeModal } from '@/components/portal/QRCodeModal'; import { EventFormModal } from '@/components/portal/EventFormModal'; +import Background from '@/components/portal/Background'; +import { LiquidGlass } from '@/components/portal/LiquidGlass'; type Event = { id: string; @@ -109,10 +111,11 @@ export default function AdminPage() { if (status === 'loading' || adminLoading) { return ( -
-
-
-

Verifying access...

+
+ +
+
+

Verifying access...

); @@ -121,11 +124,8 @@ export default function AdminPage() { if (!session || !adminStatus?.isAdmin) return null; return ( -
- {/* Background */} -
-
-
+
+ {showCreateEvent && ( {/* Header */} -
+
- +

Admin Console

- Admin Terminal + Admin Terminal

-

{adminStatus.role?.replace('_', ' ').toUpperCase()}

+

{adminStatus.role?.replace('_', ' ').toUpperCase()}

- + Judging Portal
-
+ {/* Events Section */}

Events

-

{events?.length || 0} total events

+

{events?.length || 0} total events

{!events || events.length === 0 ? ( -
-
+ +

No events yet

-

Create your first event to get started.

-
+

Create your first event to get started.

+ ) : (
{events.map((event) => ( -
@@ -214,8 +214,8 @@ export default function AdminPage() {

{event.title}

{event.checkInEnabled ? 'Active' : 'Disabled'} @@ -224,12 +224,12 @@ export default function AdminPage() { {event.description && (

{event.description}

)} -
+
{event.location || 'No location'} {new Date(event.eventDate).toLocaleDateString()} - {event.currentCheckIns} check-ins + {event.currentCheckIns} check-ins
@@ -239,7 +239,7 @@ export default function AdminPage() { generateQRCode(event.qrCode); setSelectedEvent(event); }} - className="px-4 py-2 bg-teal-500/10 border border-teal-500/20 text-teal-400 text-sm font-medium rounded-xl hover:bg-teal-500/20 transition-colors" + className="px-4 py-2 bg-[#00A8A8]/10 border border-[#00A8A8]/20 text-[#00A8A8] text-sm font-medium rounded-xl hover:bg-[#00A8A8]/20 transition-colors" > QR Code @@ -251,8 +251,8 @@ export default function AdminPage() { }) } className={`px-4 py-2 border text-sm font-medium rounded-xl transition-colors ${event.checkInEnabled - ? 'border-red-500/20 text-red-400 hover:bg-red-500/10' - : 'border-emerald-500/20 text-emerald-400 hover:bg-emerald-500/10' + ? 'border-red-500/20 text-red-400 hover:bg-red-500/10' + : 'border-emerald-500/20 text-emerald-400 hover:bg-emerald-500/10' }`} > {event.checkInEnabled ? 'Disable' : 'Enable'} @@ -269,7 +269,7 @@ export default function AdminPage() {
-
+ ))}
)} diff --git a/sites/mainweb/app/(portal)/dashboard/page.tsx b/sites/mainweb/app/(portal)/dashboard/page.tsx index b990764..5bfaf46 100644 --- a/sites/mainweb/app/(portal)/dashboard/page.tsx +++ b/sites/mainweb/app/(portal)/dashboard/page.tsx @@ -5,9 +5,12 @@ import { trpc } from '@/lib/trpc'; import { useRouter } from 'next/navigation'; import { useEffect, useState } from 'react'; import Image from 'next/image'; +import Background from '@/components/portal/Background'; import Link from 'next/link'; import LinkStripeAccount from '@/components/portal/LinkStripeAccount'; import ProfileForm from '@/components/portal/profile/ProfileForm'; +import { LiquidGlass } from '@/components/portal/LiquidGlass'; +import { LoadingScreen } from '@/components/portal/LoadingScreen'; export default function Dashboard() { const { data: session, status } = useSession(); @@ -22,174 +25,218 @@ export default function Dashboard() { if (status === 'unauthenticated') router.push('/login'); }, [status, router]); - if (status === 'loading') { - return ( -
-
-
-

Loading...

-
-
- ); - } + if (status === 'loading') return ; if (!session) return null; return ( -
- {/* Background */} -
-
-
- -
- {/* Header */} -
-
-
-
- Avatar -
-
-

{userData?.name || 'User'}

-
-
-

- {adminStatus?.isAdmin ? 'Admin' : memberStatus?.isMember ? 'Member' : 'Guest'} -

+
+ + +
+ + {/* SIDEBAR */} +
+ + + {/* User Profile Header */} +
+
+
+ Avatar +
+
+

{userData?.name || 'GUEST'}

+
+
+

+ {adminStatus?.isAdmin ? 'ADMIN' : memberStatus?.isMember ? 'MEMBER' : 'GUEST'} +

+
-
- -
- - {/* Navigation */} -
- - + + {/* Navigation */} + + +
+ +
+
- {mode === 'PROFILE' ? ( - /* Profile View */ -
-

Edit Profile

- -
- ) : ( - /* Dashboard View */ -
- {adminStatus?.isAdmin ? ( - /* Admin Card */ - -
-
-
- - - -
-
-
- -

Admin Access

-
-

- Admin Control Panel -

-

- Manage events, view check-ins, and configure system settings. -

- - Open Panel - - - - -
+ {/* MAIN CONTENT */} +
+ + + {/* Decorative Top Line */} +
+ +
+
+

System View

+

+ {mode === 'PROFILE' ? 'Identity Dossier' : 'Central Operations'} +

+
+
+
+ + {mode === 'PROFILE' ? 'EDITING' : 'ACTIVE'} + +
+
+ +
+ + {mode === 'PROFILE' ? ( + /* PROFILE EDITOR VIEW */ +
+
- - ) : ( - /* Member Cards */ -
- {memberStatus?.isMember ? ( - -
-
-
-
- -

Active Member

+ ) : ( + /* DASHBOARD TILES VIEW */ +
+ + {adminStatus?.isAdmin ? ( + /* ADMIN VIEW */ + +
+
+ +
+ +

+ Node Access Level 5 +

+

+ Admin Control Panel +

+

+ Manage hackathons, view judge queues, and configure system parameters. +

+ +
+ INITIATE SESSION + +
+
+ + ) : ( + /* MEMBER VIEW */ +
+ {memberStatus?.isMember ? ( + +
+ + {/* Background Gradients */} +
+
+ +
+ +
+ +
+
+ +

+ Access Granted +

+
+ +

+ Member Terminal +

+

+ > Initialize connection to club resources, voting protocols, and event registries. +

+ +
+ ENTER SYSTEM + +
+
+
+ + ) : ( +
+
-

- Member Portal + )} + +
+
+ +
+ +

+ Hacklytics Node +

+

+ Hacklytics

-

- Access club resources, events, and member benefits. +

+ System under construction. Integration pending.

- - Enter - - - - + +
+
+ Work in Progress +

- - ) : ( -
- -
- )} - - {/* Hacklytics Coming Soon */} -
-
- -

Coming Soon

-
-

Hacklytics

-

- Hackathon portal under construction. -

+ )} +
-
- )} -
- )} -
-
+ )} + +
+ +
+ +
); } \ No newline at end of file diff --git a/sites/mainweb/app/(portal)/judge/page.tsx b/sites/mainweb/app/(portal)/judge/page.tsx index 531438f..d57af57 100644 --- a/sites/mainweb/app/(portal)/judge/page.tsx +++ b/sites/mainweb/app/(portal)/judge/page.tsx @@ -5,6 +5,8 @@ import { useSession } from 'next-auth/react'; import { trpc } from '@/lib/trpc'; import { useRouter } from 'next/navigation'; import { RubricSlider, RubricSliderStyles } from '@/components/portal/judge/RubricSlider'; +import Background from '@/components/portal/Background'; +import { LiquidGlass } from '@/components/portal/LiquidGlass'; const RUBRIC_CRITERIA = [ { key: 'creativity', label: 'Creativity', description: 'Unique approach & originality' }, @@ -153,10 +155,11 @@ export default function JudgePage() { // Loading state if (!mounted || status === 'loading' || checkingJudge) { return ( -
-
-
-

Loading...

+
+ +
+
+

Syncing Identity...

); @@ -167,16 +170,17 @@ export default function JudgePage() { // Not a judge if (!judgeStatus?.isJudge) { return ( -
-
-
+
+ + +
-

Access Denied

-

You're not registered as a judge for this event.

-
+

Access Denied

+

You're not registered as a judge for this event.

+
); } @@ -184,16 +188,17 @@ export default function JudgePage() { // No assignment if (!hackathonId) { return ( -
-
-
+
+ + +
-

Awaiting Assignment

-

Please wait for event assignment.

-
+

Awaiting Assignment

+

Please wait for event assignment.

+
); } @@ -204,16 +209,17 @@ export default function JudgePage() { // All done if (isDone) { return ( -
-
-
+
+ + +
-

All Done!

-

You've judged all assigned projects. Thank you!

-
+

All Done!

+

You've judged all assigned projects. Thank you!

+
); } @@ -221,10 +227,11 @@ export default function JudgePage() { // Loading project if (loadingNext || !project) { return ( -
-
-
-

Loading project...

+
+ +
+
+

Loading project...

); @@ -286,35 +293,33 @@ export default function JudgePage() { // Step 1: Viewing if (step === 'viewing') { return ( -
-
-
-
+
+
-
+
-
+ {(progress?.completed || 0) + 1} of {progress?.total} projects -
+

Go to Table

-
+

{project.tableNumber}

-
+
-
+
@@ -324,11 +329,11 @@ export default function JudgePage() { {project.teamMembers &&

{project.teamMembers}

}
-
+
@@ -339,18 +344,15 @@ export default function JudgePage() { // Step 2: Judging return ( -
+
{showHelp && } - -
-
-
+
-
+
-
+
-
+

Table

{project.tableNumber}

@@ -375,15 +377,15 @@ export default function JudgePage() {

Score

{totalScore}

-
+
-
-
+ +
@@ -392,12 +394,12 @@ export default function JudgePage() {

{project.name}

{project.teamMembers &&

{project.teamMembers}

}
-
+ -
+

Evaluation Rubric

-
@@ -412,7 +414,7 @@ export default function JudgePage() { /> ))}
-
+
@@ -420,14 +422,14 @@ export default function JudgePage() { value={comment} onChange={(e) => setComment(e.target.value)} placeholder="Optional feedback for this project..." - className="w-full bg-white/[0.02] border border-white/10 rounded-xl p-4 text-white placeholder-gray-600 resize-none min-h-[100px] text-sm focus:border-teal-500/50 focus:outline-none focus:ring-1 focus:ring-teal-500/20 transition-all" + className="w-full bg-white/[0.05] border border-white/10 rounded-xl p-4 text-white placeholder-gray-600 resize-none min-h-[100px] text-sm focus:border-[#00A8A8]/50 focus:outline-none focus:ring-1 focus:ring-[#00A8A8]/20 transition-all backdrop-blur-sm" />