-
+
+
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 (
-
- );
- }
+ if (status === 'loading') return
;
if (!session) return null;
return (
-
- {/* Background */}
-
-
-
- {/* Header */}
-
-
-
-
-
{userData?.name || 'User'}
-
-
-
- {adminStatus?.isAdmin ? 'Admin' : memberStatus?.isMember ? 'Member' : 'Guest'}
-
+
+
+
+
+
+ {/* SIDEBAR */}
+
+
+
+ {/* User Profile Header */}
+
+
+
+
{userData?.name || 'GUEST'}
+
+
+
+ {adminStatus?.isAdmin ? 'ADMIN' : memberStatus?.isMember ? 'MEMBER' : 'GUEST'}
+
+
-
-
-
-
- {/* Navigation */}
-
-
-
+
+ {/* Navigation */}
+
+
+
+
+
+
- {mode === 'PROFILE' ? (
- /* Profile View */
-
- ) : (
- /* Dashboard View */
-
- {adminStatus?.isAdmin ? (
- /* Admin Card */
-
-
-
-
-
-
-
- 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.
+
+
+
+
+
+ ) : (
+ /* MEMBER VIEW */
+
+ {memberStatus?.isMember ? (
+
+
+
+ {/* Background Gradients */}
+
+
+
+
+
+
+
+
+
+ Member Terminal
+
+
+ > Initialize connection to club resources, voting protocols, and event registries.
+
+
+
+
+
+
+ ) : (
+
+
-
- Member Portal
+ )}
+
+
+
+
+
+ Hacklytics Node
+
+
+ Hacklytics
-
- Access club resources, events, and member benefits.
+
+ System under construction. Integration pending.
-
- Enter
-
-
+
+
-
- ) : (
-
-
-
- )}
-
- {/* Hacklytics 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...
+
);
@@ -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...
+
);
@@ -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 &&
}
-
-
+
-
+
-
-
+
+
@@ -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"
/>
{submit.isPending ? (