Skip to content

Commit 8f267f5

Browse files
author
Deepak Pandey
committed
feat: Transform Projects to Zenith Hall with enhanced branding and favicon fixes
✨ Features: - Renamed /projects to /zenith-hall with prestigious branding - Added comprehensive favicon configuration (light/dark theme support) - Enhanced project showcase with 'Hall of Excellence' theme - Professional tribute description for community recognition 🎨 UI/UX Improvements: - Updated navigation to 'Zenith Hall' - Enhanced search placeholder and filter labels - Improved professional terminology throughout - Added theme-aware favicon support 🔧 Technical Improvements: - Fixed React unescaped entities warning - Resolved TypeScript linting issues - Added proper favicon.ico fallback - Enhanced metadata configuration 📁 File Changes: - Moved app/projects/ → app/zenith-hall/ - Updated header navigation links - Enhanced layout.tsx with favicon configuration - Improved SEO metadata with icon support 🏆 Result: Prestigious hall of excellence showcasing community achievements
1 parent 47bad22 commit 8f267f5

7 files changed

Lines changed: 55 additions & 8 deletions

File tree

app/layout.tsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,14 @@ export default function RootLayout({
6868

6969
{/* Viewport for mobile optimization */}
7070
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
71+
72+
{/* Favicon configuration */}
73+
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
74+
<link rel="icon" type="image/svg+xml" href="/codeunia-favicon-light.svg" media="(prefers-color-scheme: light)" />
75+
<link rel="icon" type="image/svg+xml" href="/codeunia-favicon-dark.svg" media="(prefers-color-scheme: dark)" />
76+
<link rel="icon" type="image/svg+xml" href="/codeunia-favicon-light.svg" />
77+
<link rel="apple-touch-icon" href="/codeunia-favicon-light.svg" />
78+
<link rel="shortcut icon" href="/favicon.ico" />
7179
</head>
7280
<body className={`${geistSans.className} antialiased`} suppressHydrationWarning>
7381
<ErrorBoundary>
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -96,18 +96,18 @@ export default function ProjectsPage() {
9696
<span className="absolute inset-0 rounded-full bg-[image:radial-gradient(75%_100%_at_50%_0%,rgba(56,189,248,0.6)_0%,rgba(56,189,248,0)_75%)] opacity-0 group-hover:opacity-100" />
9797
</span>
9898
<div className="relative flex space-x-2 items-center z-10 rounded-full bg-zinc-950 py-0.5 px-4 ring-1 ring-white/10">
99-
<span>Projects Showcase</span>
99+
<span>Hall of Excellence</span>
100100
<Sparkles className="w-3 h-3" />
101101
</div>
102102
<span className="absolute -bottom-0 left-[1.125rem] h-px w-[calc(100%-2.25rem)] bg-gradient-to-r from-emerald-400/0 via-emerald-400/90 to-emerald-400/0 group-hover:opacity-40" />
103103
</button>
104104
</div>
105105
</div>
106106
<h1 className="text-5xl md:text-6xl font-bold tracking-tight leading-tight">
107-
Intern <span className="gradient-text">Projects</span> Showcase
107+
<span className="gradient-text">Zenith</span> Hall
108108
</h1>
109-
<p className="text-xl md:text-2xl text-muted-foreground max-w-3xl mx-auto leading-relaxed">
110-
Explore outstanding projects created by our talented interns during their internship at Codeunia.
109+
<p className="text-xl md:text-2xl text-muted-foreground max-w-4xl mx-auto leading-relaxed">
110+
A tribute to Codeunia&apos;s finest minds who have risen above challenges with exceptional skill and innovation. Here, we showcase our best members whose remarkable projects and achievements reflect technical excellence, creative problem-solving, and the spirit of collaboration that defines our community.
111111
</p>
112112
</div>
113113
</div>
@@ -121,7 +121,7 @@ export default function ProjectsPage() {
121121
<Search className="absolute left-4 top-1/2 -translate-y-1/2 h-5 w-5 text-muted-foreground" />
122122
<Input
123123
type="text"
124-
placeholder="Search projects..."
124+
placeholder="Search our hall of excellence by project, technology, or member..."
125125
className="w-full pl-12 pr-4 py-3 text-lg bg-background/70 backdrop-blur-sm rounded-full focus:ring-2 focus:ring-primary/50"
126126
value={searchTerm}
127127
onChange={(e) => setSearchTerm(e.target.value)}
@@ -130,15 +130,15 @@ export default function ProjectsPage() {
130130
<DropdownMenu>
131131
<DropdownMenuTrigger asChild>
132132
<Button variant="outline" className="flex items-center gap-2 rounded-full text-lg py-3 bg-background/70 backdrop-blur-sm">
133-
<span>Tags</span>
133+
<span>Technologies</span>
134134
{selectedTags.length > 0 && (
135135
<Badge variant="secondary" className="rounded-full">{selectedTags.length}</Badge>
136136
)}
137137
<ChevronDown className="h-5 w-5 text-muted-foreground" />
138138
</Button>
139139
</DropdownMenuTrigger>
140140
<DropdownMenuContent className="w-64">
141-
<DropdownMenuLabel>Filter by Tags</DropdownMenuLabel>
141+
<DropdownMenuLabel>Filter by Expertise Areas</DropdownMenuLabel>
142142
<DropdownMenuSeparator />
143143
{allTags.map((tag) => (
144144
<DropdownMenuCheckboxItem

components/header.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ export default function Header() {
5858
{ href: "/", label: "Home" },
5959
{ href: "/about", label: "About" },
6060
{ href: "/opportunities", label: "Opportunities" },
61-
{ href: "/projects", label: "Projects" },
61+
{ href: "/zenith-hall", label: "Zenith Hall" },
6262
{ href: "/blog", label: "Blog" },
6363
{ href: "/join", label: "Join Codeunia" },
6464
{ href: "/contact", label: "Contact Us" },

lib/security/input-validation.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { JSDOM } from 'jsdom';
33

44
// Create a DOMPurify instance for server-side use
55
const window = new JSDOM('').window;
6+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
67
const purify = DOMPurify(window as any);
78

89
export interface ValidationResult {

lib/seo/metadata.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,18 @@ export function generateMetadata(config: SEOConfig): Metadata {
5555
creator: author,
5656
publisher: defaultConfig.siteName,
5757

58+
// Favicon configuration
59+
icons: {
60+
icon: [
61+
{ url: '/favicon.ico', type: 'image/x-icon' },
62+
{ url: '/codeunia-favicon-light.svg', media: '(prefers-color-scheme: light)' },
63+
{ url: '/codeunia-favicon-dark.svg', media: '(prefers-color-scheme: dark)' },
64+
{ url: '/codeunia-favicon-light.svg' }
65+
],
66+
apple: '/codeunia-favicon-light.svg',
67+
shortcut: '/favicon.ico'
68+
},
69+
5870
// Open Graph
5971
openGraph: {
6072
type,

public/favicon.ico

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
2+
<defs>
3+
<!-- Diagonal Gradient like the reference -->
4+
<linearGradient id="rainbowGradient" x1="0%" y1="0%" x2="100%" y2="100%">
5+
<stop offset="0%" stop-color="#007AFF" />
6+
<stop offset="30%" stop-color="#6C63FF" />
7+
<stop offset="60%" stop-color="#FF6EC7" />
8+
<stop offset="100%" stop-color="#FF9F45" />
9+
</linearGradient>
10+
</defs>
11+
12+
<!-- Light grey background -->
13+
<rect x="0" y="0" width="200" height="200" rx="40" ry="40" fill="#f0f0f0" />
14+
15+
<!-- 'C' Path -->
16+
<path
17+
d="M165,100 A65,65 0 1 1 100,35"
18+
fill="none"
19+
stroke="#000000"
20+
stroke-width="30"
21+
stroke-linecap="round"
22+
/>
23+
24+
<!-- Diagonal Gradient Dot -->
25+
<circle cx="100" cy="165" r="15" fill="url(#rainbowGradient)" />
26+
</svg>

0 commit comments

Comments
 (0)