Naveedtechlab commited on
Commit
9589570
·
0 Parent(s):

Portfolio website - Muhammad Naveed

Browse files
.dockerignore ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ node_modules
2
+ .next
3
+ .git
4
+ .gitignore
5
+ README.md
6
+ Dockerfile
7
+ .dockerignore
8
+ *.log
.gitignore ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ node_modules/
2
+ .next/
3
+ out/
4
+ .env
5
+ .env.local
6
+ .env*.local
7
+ *.log
8
+ .DS_Store
Dockerfile ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM node:18-alpine AS deps
2
+ WORKDIR /app
3
+ COPY package*.json ./
4
+ RUN npm install
5
+
6
+ FROM node:18-alpine AS builder
7
+ WORKDIR /app
8
+ COPY --from=deps /app/node_modules ./node_modules
9
+ COPY . .
10
+ RUN npm run build
11
+
12
+ FROM node:18-alpine AS runner
13
+ WORKDIR /app
14
+ ENV NODE_ENV=production
15
+ ENV PORT=7860
16
+ ENV HOSTNAME=0.0.0.0
17
+
18
+ COPY --from=builder /app/public ./public
19
+ COPY --from=builder /app/.next/standalone ./
20
+ COPY --from=builder /app/.next/static ./.next/static
21
+
22
+ EXPOSE 7860
23
+
24
+ CMD ["node", "server.js"]
README.md ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: Muhammad Naveed Portfolio
3
+ emoji: 🚀
4
+ colorFrom: blue
5
+ colorTo: indigo
6
+ sdk: docker
7
+ pinned: true
8
+ ---
9
+
10
+ # Muhammad Naveed — Portfolio
11
+
12
+ AI Automation Engineer | Full Stack Developer | Agent Systems Builder based in Karachi, Pakistan.
app/favicon.ico ADDED
app/globals.css ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @import "tailwindcss";
2
+
3
+ html {
4
+ scroll-behavior: smooth;
5
+ }
6
+
7
+ @keyframes fadeInUp {
8
+ from { opacity: 0; transform: translateY(30px); }
9
+ to { opacity: 1; transform: translateY(0); }
10
+ }
11
+ @keyframes fadeInLeft {
12
+ from { opacity: 0; transform: translateX(-30px); }
13
+ to { opacity: 1; transform: translateX(0); }
14
+ }
15
+ @keyframes fadeInRight {
16
+ from { opacity: 0; transform: translateX(30px); }
17
+ to { opacity: 1; transform: translateX(0); }
18
+ }
19
+ @keyframes float {
20
+ 0%, 100% { transform: translateY(0px); }
21
+ 50% { transform: translateY(-12px); }
22
+ }
23
+ @keyframes pulse-ring {
24
+ 0% { box-shadow: 0 0 0 0 rgba(245,158,11,0.6); }
25
+ 70% { box-shadow: 0 0 0 16px rgba(245,158,11,0); }
26
+ 100% { box-shadow: 0 0 0 0 rgba(245,158,11,0); }
27
+ }
28
+ @keyframes gradient-x {
29
+ 0%, 100% { background-position: 0% 50%; }
30
+ 50% { background-position: 100% 50%; }
31
+ }
32
+ @keyframes blink {
33
+ 0%, 100% { opacity: 1; }
34
+ 50% { opacity: 0; }
35
+ }
36
+ @keyframes shimmer {
37
+ 0% { background-position: -200% center; }
38
+ 100% { background-position: 200% center; }
39
+ }
40
+
41
+ .animate-fade-up { animation: fadeInUp 0.7s ease both; }
42
+ .animate-fade-left { animation: fadeInLeft 0.7s ease both; }
43
+ .animate-fade-right { animation: fadeInRight 0.7s ease both; }
44
+ .animate-float { animation: float 4s ease-in-out infinite; }
45
+ .animate-pulse-ring { animation: pulse-ring 2s ease-out infinite; }
46
+ .animate-gradient { background-size: 200% 200%; animation: gradient-x 5s ease infinite; }
47
+ .animate-blink { animation: blink 1s step-end infinite; }
48
+ .animate-shimmer { background-size: 200% auto; animation: shimmer 3s linear infinite; }
49
+
50
+ .delay-100 { animation-delay: 0.1s; }
51
+ .delay-200 { animation-delay: 0.2s; }
52
+ .delay-300 { animation-delay: 0.3s; }
53
+ .delay-400 { animation-delay: 0.4s; }
54
+ .delay-500 { animation-delay: 0.5s; }
55
+ .delay-600 { animation-delay: 0.6s; }
56
+
57
+ .glass {
58
+ background: rgba(255,255,255,0.04);
59
+ backdrop-filter: blur(14px);
60
+ -webkit-backdrop-filter: blur(14px);
61
+ border: 1px solid rgba(255,255,255,0.08);
62
+ }
63
+
64
+ .card-hover {
65
+ transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
66
+ }
67
+ .card-hover:hover {
68
+ transform: translateY(-6px);
69
+ box-shadow: 0 24px 48px rgba(0,0,0,0.35);
70
+ border-color: rgba(245,158,11,0.4);
71
+ }
72
+
73
+ ::-webkit-scrollbar { width: 5px; }
74
+ ::-webkit-scrollbar-track { background: #0a1628; }
75
+ ::-webkit-scrollbar-thumb { background: #f59e0b; border-radius: 3px; }
app/layout.tsx ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import type { Metadata } from "next";
2
+ import { Inter } from "next/font/google";
3
+ import "./globals.css";
4
+
5
+ const inter = Inter({ subsets: ["latin"] });
6
+
7
+ export const metadata: Metadata = {
8
+ title: "Muhammad Naveed | AI Automation Engineer",
9
+ description:
10
+ "Portfolio of Muhammad Naveed – AI Automation Engineer, Full Stack Developer & Agent Systems Builder based in Karachi, Pakistan.",
11
+ };
12
+
13
+ export default function RootLayout({
14
+ children,
15
+ }: Readonly<{ children: React.ReactNode }>) {
16
+ return (
17
+ <html lang="en">
18
+ <body className={`${inter.className} antialiased`}>{children}</body>
19
+ </html>
20
+ );
21
+ }
app/page.tsx ADDED
@@ -0,0 +1,604 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ "use client";
2
+
3
+ import Image from "next/image";
4
+ import { useState, useEffect } from "react";
5
+
6
+ /* ─── DATA ─────────────────────────────────────────────────── */
7
+
8
+ const skills = [
9
+ {
10
+ label: "Frontend",
11
+ color: "from-blue-500 to-cyan-400",
12
+ tags: ["Next.js", "React", "TypeScript", "Tailwind CSS", "HTML5/CSS3"],
13
+ },
14
+ {
15
+ label: "Backend",
16
+ color: "from-violet-500 to-purple-400",
17
+ tags: ["Python", "FastAPI", "Node.js", "REST APIs", "Authentication"],
18
+ },
19
+ {
20
+ label: "AI & Agents",
21
+ color: "from-amber-500 to-orange-400",
22
+ tags: ["OpenAI API", "Gemini API", "LangChain", "Claude Code", "Agents SDK", "MCP"],
23
+ },
24
+ {
25
+ label: "Automation",
26
+ color: "from-green-500 to-emerald-400",
27
+ tags: ["Gmail API", "WhatsApp/Twilio", "Webhooks", "Watchers", "BG Workers"],
28
+ },
29
+ {
30
+ label: "Cloud & DevOps",
31
+ color: "from-sky-500 to-blue-400",
32
+ tags: ["Docker", "Kubernetes", "Kafka", "Dapr", "CI/CD", "GitHub"],
33
+ },
34
+ {
35
+ label: "Database",
36
+ color: "from-rose-500 to-pink-400",
37
+ tags: ["MongoDB", "PostgreSQL", "Sanity CMS"],
38
+ },
39
+ {
40
+ label: "Architecture",
41
+ color: "from-teal-500 to-cyan-400",
42
+ tags: ["Spec-Driven Dev", "Event-Driven", "Agent Skills Design"],
43
+ },
44
+ ];
45
+
46
+ const projects = [
47
+ {
48
+ title: "Personal AI Employee",
49
+ subtitle: "Digital FTE · Hackathon",
50
+ desc: "Autonomous AI employee with Gmail/WhatsApp automation, Obsidian memory system, and MCP tools — running 24/7 without human intervention.",
51
+ tags: ["OpenAI SDK", "MCP", "Gmail API", "WhatsApp", "Python"],
52
+ icon: "🤖",
53
+ accent: "from-amber-500 to-orange-500",
54
+ live: null,
55
+ },
56
+ {
57
+ title: "CRM Digital FTE",
58
+ subtitle: "CRM Agent · Hugging Face",
59
+ desc: "Multi-channel customer support agent handling Gmail, WhatsApp, and Web forms with a PostgreSQL ticket system and FastAPI backend. Live on Hugging Face Spaces.",
60
+ tags: ["FastAPI", "PostgreSQL", "LangChain", "Twilio", "Python"],
61
+ icon: "🎯",
62
+ accent: "from-blue-500 to-cyan-500",
63
+ live: "https://huggingface.co/spaces/Naveedtechlab/crm-digital-fte",
64
+ },
65
+ {
66
+ title: "Course Companion FTE",
67
+ subtitle: "AI Tutor · Hugging Face",
68
+ desc: "AI-powered tutoring assistant with deterministic backend logic, skills-based agent architecture, and an interactive learning interface.",
69
+ tags: ["Python", "OpenAI API", "FastAPI", "Streamlit"],
70
+ icon: "📚",
71
+ accent: "from-violet-500 to-purple-500",
72
+ live: "https://huggingface.co/spaces/Naveedtechlab/course-companion-fte",
73
+ },
74
+ {
75
+ title: "Todo App Phase 5",
76
+ subtitle: "Full Stack · Hugging Face",
77
+ desc: "Spec-driven todo application evolved from a console app to a full-stack web app with an AI chatbot, cloud-native deployment, and OpenAI Agents SDK integration.",
78
+ tags: ["Next.js", "FastAPI", "OpenAI SDK", "Docker"],
79
+ icon: "✅",
80
+ accent: "from-green-500 to-emerald-500",
81
+ live: "https://huggingface.co/spaces/Naveedtechlab/todo-app-phase5",
82
+ },
83
+ {
84
+ title: "LearnFlow",
85
+ subtitle: "Learning Platform · Hugging Face",
86
+ desc: "Interactive learning flow platform with AI-assisted content delivery, structured modules, and an intuitive UI for seamless education experiences.",
87
+ tags: ["Python", "AI", "Streamlit", "OpenAI API"],
88
+ icon: "🎓",
89
+ accent: "from-sky-500 to-blue-500",
90
+ live: "https://huggingface.co/spaces/Naveedtechlab/learnflow",
91
+ },
92
+ {
93
+ title: "AI Native Textbook",
94
+ subtitle: "EdTech · Vercel",
95
+ desc: "AI-native digital textbook application that delivers interactive, intelligent content — blending traditional learning with generative AI capabilities.",
96
+ tags: ["Next.js", "OpenAI API", "Vercel", "TypeScript"],
97
+ icon: "📖",
98
+ accent: "from-indigo-500 to-violet-500",
99
+ live: "https://ai-native-textbook1.vercel.app/",
100
+ },
101
+ {
102
+ title: "E-Commerce Store",
103
+ subtitle: "Freelance · Vercel",
104
+ desc: "Modern full-featured e-commerce web application with product listings, cart functionality, and a clean responsive UI — deployed on Vercel.",
105
+ tags: ["Next.js", "React", "Tailwind CSS", "Vercel"],
106
+ icon: "🛍️",
107
+ accent: "from-rose-500 to-pink-500",
108
+ live: "https://e-comm-naveed.vercel.app/",
109
+ },
110
+ {
111
+ title: "Library Manager",
112
+ subtitle: "Utility App · Streamlit",
113
+ desc: "A smart library management system to add, search, and manage books with an intuitive Streamlit interface and persistent data storage.",
114
+ tags: ["Python", "Streamlit", "Pandas"],
115
+ icon: "📕",
116
+ accent: "from-orange-500 to-amber-500",
117
+ live: "https://naveed247365-library-manager-library-manager-iykdx8.streamlit.app/",
118
+ },
119
+ {
120
+ title: "Number Guessing Game",
121
+ subtitle: "Fun App · Streamlit",
122
+ desc: "Interactive browser-based number guessing game with difficulty levels, score tracking, and a fun UI built with Python and Streamlit.",
123
+ tags: ["Python", "Streamlit", "Game Logic"],
124
+ icon: "🎮",
125
+ accent: "from-teal-500 to-cyan-500",
126
+ live: "https://naveed247365-number-guessing-game-guessing-game-kfloll.streamlit.app/",
127
+ },
128
+ {
129
+ title: "Password Strength Meter",
130
+ subtitle: "Security Tool · Streamlit",
131
+ desc: "Real-time password strength analyzer with visual feedback, entropy scoring, and security suggestions — helping users create stronger passwords.",
132
+ tags: ["Python", "Streamlit", "Security", "GUI"],
133
+ icon: "🔐",
134
+ accent: "from-red-500 to-rose-500",
135
+ live: "https://password-strength-meter-with-a-gui.streamlit.app/",
136
+ },
137
+ {
138
+ title: "Secure Data Vault",
139
+ subtitle: "Encryption App · Streamlit",
140
+ desc: "End-to-end data encryption system that lets users securely store and retrieve sensitive information using modern cryptographic algorithms.",
141
+ tags: ["Python", "Cryptography", "Streamlit", "Security"],
142
+ icon: "🔒",
143
+ accent: "from-slate-500 to-gray-600",
144
+ live: "https://naveed247365-secure-data-encryption-system--secure-vault-sbgxir.streamlit.app/",
145
+ },
146
+ {
147
+ title: "Unit Converter",
148
+ subtitle: "Utility Tool · Streamlit",
149
+ desc: "Comprehensive unit conversion tool supporting length, weight, temperature, speed, and more — with a clean, fast Streamlit interface.",
150
+ tags: ["Python", "Streamlit", "Math"],
151
+ icon: "📐",
152
+ accent: "from-lime-500 to-green-500",
153
+ live: "https://naveed247365-unit-converter-unit-converter-cycms9.streamlit.app/",
154
+ },
155
+ {
156
+ title: "Streamlit Web App",
157
+ subtitle: "Web App · Streamlit",
158
+ desc: "A dynamic multi-feature web application built with Streamlit showcasing Python-powered interactivity, data visualization, and UI components.",
159
+ tags: ["Python", "Streamlit", "Data Viz"],
160
+ icon: "🌐",
161
+ accent: "from-fuchsia-500 to-pink-500",
162
+ live: "https://naveed247365-web-app-with-streamlit-app-hnkir1.streamlit.app/",
163
+ },
164
+ {
165
+ title: "E-Commerce (Fiverr)",
166
+ subtitle: "Freelance · Client Projects",
167
+ desc: "Shopify stores, custom dashboards, CMS-based websites, and full automation workflows for clients — from design to deployment.",
168
+ tags: ["Shopify", "React", "Sanity CMS", "Node.js"],
169
+ icon: "💼",
170
+ accent: "from-yellow-500 to-orange-400",
171
+ live: null,
172
+ },
173
+ ];
174
+
175
+ const navLinks = ["About", "Skills", "Projects", "Education", "Contact"];
176
+
177
+ /* ─── COMPONENT ─────────────────────────────────────────────── */
178
+
179
+ export default function Portfolio() {
180
+ const [active, setActive] = useState("About");
181
+ const [menuOpen, setMenuOpen] = useState(false);
182
+ const [scrolled, setScrolled] = useState(false);
183
+
184
+ useEffect(() => {
185
+ const onScroll = () => setScrolled(window.scrollY > 60);
186
+ window.addEventListener("scroll", onScroll);
187
+ return () => window.removeEventListener("scroll", onScroll);
188
+ }, []);
189
+
190
+ const scrollTo = (id: string) => {
191
+ document.getElementById(id.toLowerCase())?.scrollIntoView({ behavior: "smooth" });
192
+ setActive(id);
193
+ setMenuOpen(false);
194
+ };
195
+
196
+ return (
197
+ <main className="min-h-screen bg-[#060d1f] text-white overflow-x-hidden">
198
+
199
+ {/* ── NAVBAR ── */}
200
+ <nav
201
+ className={`fixed top-0 left-0 right-0 z-50 transition-all duration-300 ${
202
+ scrolled ? "glass shadow-2xl shadow-black/40" : "bg-transparent"
203
+ }`}
204
+ >
205
+ <div className="max-w-6xl mx-auto px-6 py-4 flex items-center justify-between">
206
+ <span className="text-amber-400 font-bold text-lg tracking-wider">
207
+ MN<span className="text-white">.</span>
208
+ </span>
209
+
210
+ {/* Desktop links */}
211
+ <ul className="hidden md:flex gap-8">
212
+ {navLinks.map((l) => (
213
+ <li key={l}>
214
+ <button
215
+ onClick={() => scrollTo(l)}
216
+ className={`text-sm font-medium tracking-wide transition-colors duration-200 ${
217
+ active === l ? "text-amber-400" : "text-slate-300 hover:text-white"
218
+ }`}
219
+ >
220
+ {l}
221
+ </button>
222
+ </li>
223
+ ))}
224
+ </ul>
225
+
226
+ <a
227
+ href="/Muhammad_Naveed_CV.pdf"
228
+ download
229
+ className="hidden md:inline-flex items-center gap-2 bg-amber-500 hover:bg-amber-400 text-black text-sm font-bold px-4 py-2 rounded-full transition-all duration-200 hover:scale-105"
230
+ >
231
+ ↓ Download CV
232
+ </a>
233
+
234
+ {/* Mobile toggle */}
235
+ <button
236
+ className="md:hidden text-white text-2xl"
237
+ onClick={() => setMenuOpen(!menuOpen)}
238
+ >
239
+ {menuOpen ? "✕" : "☰"}
240
+ </button>
241
+ </div>
242
+
243
+ {menuOpen && (
244
+ <div className="md:hidden glass border-t border-white/10 px-6 py-4 flex flex-col gap-4">
245
+ {navLinks.map((l) => (
246
+ <button
247
+ key={l}
248
+ onClick={() => scrollTo(l)}
249
+ className="text-left text-sm font-medium text-slate-300 hover:text-amber-400 transition-colors"
250
+ >
251
+ {l}
252
+ </button>
253
+ ))}
254
+ <a
255
+ href="/Muhammad_Naveed_CV.pdf"
256
+ download
257
+ className="bg-amber-500 text-black text-sm font-bold px-4 py-2 rounded-full text-center"
258
+ >
259
+ ↓ Download CV
260
+ </a>
261
+ </div>
262
+ )}
263
+ </nav>
264
+
265
+ {/* ══════════════════════════════════════════
266
+ HERO / ABOUT
267
+ ══════════════════════════════════════════ */}
268
+ <section
269
+ id="about"
270
+ className="min-h-screen flex items-center justify-center relative pt-24 pb-16 px-6 overflow-hidden"
271
+ >
272
+ {/* BG blobs */}
273
+ <div className="absolute top-20 left-10 w-72 h-72 bg-blue-600/20 rounded-full blur-3xl pointer-events-none" />
274
+ <div className="absolute bottom-20 right-10 w-96 h-96 bg-amber-500/10 rounded-full blur-3xl pointer-events-none" />
275
+ <div className="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[600px] h-[600px] bg-violet-600/5 rounded-full blur-3xl pointer-events-none" />
276
+
277
+ <div className="max-w-6xl mx-auto w-full grid md:grid-cols-2 gap-12 items-center">
278
+ {/* Text */}
279
+ <div className="animate-fade-left">
280
+ <span className="inline-block bg-amber-500/15 border border-amber-500/30 text-amber-400 text-xs font-bold tracking-widest uppercase px-4 py-1.5 rounded-full mb-6">
281
+ Available for Work
282
+ </span>
283
+
284
+ <h1 className="text-4xl sm:text-5xl lg:text-6xl font-extrabold leading-tight mb-4">
285
+ Hi, I&apos;m{" "}
286
+ <span className="bg-gradient-to-r from-amber-400 via-orange-400 to-amber-300 bg-clip-text text-transparent animate-gradient">
287
+ Muhammad
288
+ </span>
289
+ <br />
290
+ <span className="bg-gradient-to-r from-blue-400 via-cyan-300 to-blue-400 bg-clip-text text-transparent animate-gradient">
291
+ Naveed
292
+ </span>
293
+ </h1>
294
+
295
+ <p className="text-slate-400 text-base sm:text-lg leading-relaxed mb-8 max-w-lg">
296
+ <span className="text-white font-semibold">AI Automation Engineer</span> &amp;{" "}
297
+ <span className="text-white font-semibold">Full Stack Developer</span> building
298
+ autonomous <span className="text-amber-400 font-semibold">Digital FTE</span> systems,
299
+ intelligent agents, and cloud-native applications that run 24/7 — from Karachi, Pakistan.
300
+ </p>
301
+
302
+ <div className="flex flex-wrap gap-4 mb-10">
303
+ <button
304
+ onClick={() => scrollTo("Projects")}
305
+ className="bg-gradient-to-r from-amber-500 to-orange-500 hover:from-amber-400 hover:to-orange-400 text-black font-bold px-6 py-3 rounded-full transition-all duration-200 hover:scale-105 shadow-lg shadow-amber-500/25"
306
+ >
307
+ View Projects →
308
+ </button>
309
+ <button
310
+ onClick={() => scrollTo("Contact")}
311
+ className="glass border border-white/20 hover:border-amber-400/50 text-white font-semibold px-6 py-3 rounded-full transition-all duration-200 hover:scale-105"
312
+ >
313
+ Contact Me
314
+ </button>
315
+ </div>
316
+
317
+ <div className="flex gap-3 flex-wrap">
318
+ {[
319
+ { label: "GitHub", href: "https://github.com/naveedtechlab", icon: "⌨️" },
320
+ { label: "LinkedIn", href: "https://linkedin.com/in/naveedtechlab", icon: "💼" },
321
+ { label: "YouTube", href: "https://youtube.com/@naveedtechlab", icon: "▶️" },
322
+ { label: "Instagram", href: "https://instagram.com/naveedtechlab", icon: "📸" },
323
+ { label: "X", href: "https://x.com/naveedtechlab", icon: "𝕏" },
324
+ { label: "Facebook", href: "https://facebook.com/naveedtechlab", icon: "📘" },
325
+ ].map((s) => (
326
+ <a
327
+ key={s.label}
328
+ href={s.href}
329
+ target="_blank"
330
+ rel="noopener noreferrer"
331
+ className="glass border border-white/10 hover:border-amber-400/40 text-slate-300 hover:text-amber-400 text-sm font-medium px-4 py-2 rounded-full transition-all duration-200 flex items-center gap-2"
332
+ >
333
+ <span>{s.icon}</span>
334
+ {s.label}
335
+ </a>
336
+ ))}
337
+ </div>
338
+ </div>
339
+
340
+ {/* Photo */}
341
+ <div className="flex justify-center animate-fade-right">
342
+ <div className="relative">
343
+ <div className="absolute -inset-4 rounded-full border-2 border-dashed border-amber-400/30 animate-spin-slow" />
344
+ <div className="absolute inset-0 rounded-full bg-gradient-to-br from-amber-400/20 to-blue-600/20 blur-2xl animate-pulse" />
345
+ <div className="relative w-64 h-64 sm:w-80 sm:h-80 rounded-full overflow-hidden border-4 border-amber-400 animate-pulse-ring animate-float shadow-2xl shadow-amber-500/20">
346
+ <Image
347
+ src="/profile.jpg"
348
+ alt="Muhammad Naveed"
349
+ fill
350
+ className="object-cover object-top"
351
+ priority
352
+ />
353
+ </div>
354
+ <div className="absolute -top-2 -right-4 glass border border-white/10 rounded-2xl px-3 py-2 text-xs font-bold text-amber-400 shadow-xl animate-fade-up delay-300">
355
+ 🤖 AI Engineer
356
+ </div>
357
+ <div className="absolute -bottom-2 -left-4 glass border border-white/10 rounded-2xl px-3 py-2 text-xs font-bold text-cyan-400 shadow-xl animate-fade-up delay-500">
358
+ ⚡ 5+ AI Systems
359
+ </div>
360
+ </div>
361
+ </div>
362
+ </div>
363
+
364
+ <div className="absolute bottom-8 left-1/2 -translate-x-1/2 flex flex-col items-center gap-2 opacity-40">
365
+ <span className="text-xs text-slate-400 tracking-widest uppercase">Scroll</span>
366
+ <div className="w-px h-8 bg-gradient-to-b from-slate-400 to-transparent" />
367
+ </div>
368
+ </section>
369
+
370
+ {/* ══════════════════════════════════════════
371
+ SKILLS
372
+ ══════════════════════════════════════════ */}
373
+ <section id="skills" className="py-24 px-6 relative">
374
+ <div className="absolute inset-0 bg-gradient-to-b from-transparent via-blue-950/20 to-transparent pointer-events-none" />
375
+ <div className="max-w-6xl mx-auto">
376
+ <SectionHeader
377
+ eyebrow="What I work with"
378
+ title="Technical Skills"
379
+ sub="Full-spectrum expertise from frontend to AI agent orchestration"
380
+ />
381
+ <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-5">
382
+ {skills.map((s, i) => (
383
+ <div
384
+ key={s.label}
385
+ className="glass border border-white/8 rounded-2xl p-5 card-hover animate-fade-up"
386
+ style={{ animationDelay: `${i * 0.08}s` }}
387
+ >
388
+ <div className={`inline-block bg-gradient-to-r ${s.color} text-transparent bg-clip-text font-bold text-sm tracking-wider uppercase mb-3`}>
389
+ {s.label}
390
+ </div>
391
+ <div className="flex flex-wrap gap-2">
392
+ {s.tags.map((t) => (
393
+ <span
394
+ key={t}
395
+ className="bg-white/5 border border-white/10 text-slate-300 text-xs px-3 py-1 rounded-full hover:border-amber-400/40 hover:text-amber-300 transition-colors duration-200 cursor-default"
396
+ >
397
+ {t}
398
+ </span>
399
+ ))}
400
+ </div>
401
+ </div>
402
+ ))}
403
+ </div>
404
+ </div>
405
+ </section>
406
+
407
+ {/* ══════════════════════════════════════════
408
+ PROJECTS
409
+ ══════════════════════════════════════════ */}
410
+ <section id="projects" className="py-24 px-6 relative">
411
+ <div className="absolute top-0 left-0 w-96 h-96 bg-violet-600/10 rounded-full blur-3xl pointer-events-none" />
412
+ <div className="absolute bottom-0 right-0 w-96 h-96 bg-amber-500/8 rounded-full blur-3xl pointer-events-none" />
413
+ <div className="max-w-6xl mx-auto">
414
+ <SectionHeader
415
+ eyebrow="What I&apos;ve built"
416
+ title="Projects & Experience"
417
+ sub="Production-grade AI systems, hackathon wins, live apps & client projects"
418
+ />
419
+ <div className="grid sm:grid-cols-2 lg:grid-cols-3 gap-6">
420
+ {projects.map((p, i) => (
421
+ <div
422
+ key={p.title}
423
+ className="glass border border-white/8 rounded-2xl p-6 card-hover flex flex-col gap-4 animate-fade-up"
424
+ style={{ animationDelay: `${i * 0.06}s` }}
425
+ >
426
+ <div className="flex items-start justify-between">
427
+ <div className={`w-12 h-12 bg-gradient-to-br ${p.accent} rounded-xl flex items-center justify-center text-2xl shadow-lg flex-shrink-0`}>
428
+ {p.icon}
429
+ </div>
430
+ <span className="text-xs text-slate-500 font-medium bg-white/5 px-3 py-1 rounded-full text-right">
431
+ {p.subtitle}
432
+ </span>
433
+ </div>
434
+
435
+ <div className="flex-1">
436
+ <h3 className="text-white font-bold text-base mb-2">{p.title}</h3>
437
+ <p className="text-slate-400 text-sm leading-relaxed">{p.desc}</p>
438
+ </div>
439
+
440
+ <div className="flex flex-wrap gap-2 pt-2 border-t border-white/5">
441
+ {p.tags.map((t) => (
442
+ <span
443
+ key={t}
444
+ className={`text-xs px-2.5 py-1 rounded-full bg-gradient-to-r ${p.accent} opacity-80 text-white border border-white/10`}
445
+ >
446
+ {t}
447
+ </span>
448
+ ))}
449
+ </div>
450
+
451
+ {"live" in p && p.live && (
452
+ <a
453
+ href={p.live}
454
+ target="_blank"
455
+ rel="noopener noreferrer"
456
+ className={`mt-1 flex items-center justify-center gap-2 bg-gradient-to-r ${p.accent} text-white text-xs font-bold py-2 px-4 rounded-xl hover:opacity-90 transition-all duration-200 hover:scale-105 shadow-lg`}
457
+ >
458
+ 🚀 Live Demo
459
+ </a>
460
+ )}
461
+ </div>
462
+ ))}
463
+ </div>
464
+ </div>
465
+ </section>
466
+
467
+ {/* ══════════════════════════════════════════
468
+ EDUCATION
469
+ ══════════════════════════════════════════ */}
470
+ <section id="education" className="py-24 px-6">
471
+ <div className="max-w-6xl mx-auto">
472
+ <SectionHeader
473
+ eyebrow="My background"
474
+ title="Education"
475
+ sub="Continuous learning in cutting-edge technologies"
476
+ />
477
+ <div className="max-w-3xl mx-auto flex flex-col gap-5">
478
+ {[
479
+ {
480
+ icon: "🎓",
481
+ degree: "Governor House Initiative",
482
+ field: "GenAI, Web3 & Metaverse",
483
+ year: "2023 – Present",
484
+ desc: "Intensive government-backed program covering Generative AI, Web3 technologies, Metaverse development, and modern engineering practices.",
485
+ accent: "from-amber-500 to-orange-500",
486
+ },
487
+ {
488
+ icon: "📚",
489
+ degree: "Crescent Grammar School",
490
+ field: "Matriculation",
491
+ year: "Completed",
492
+ desc: "Foundation education building analytical thinking and problem-solving skills.",
493
+ accent: "from-blue-500 to-cyan-500",
494
+ },
495
+ ].map((e, i) => (
496
+ <div
497
+ key={e.degree}
498
+ className="glass border border-white/8 rounded-2xl p-6 card-hover flex gap-5 animate-fade-up"
499
+ style={{ animationDelay: `${i * 0.15}s` }}
500
+ >
501
+ <div className={`w-14 h-14 bg-gradient-to-br ${e.accent} rounded-xl flex items-center justify-center text-2xl flex-shrink-0 shadow-lg`}>
502
+ {e.icon}
503
+ </div>
504
+ <div className="flex-1">
505
+ <div className="flex items-start justify-between flex-wrap gap-2 mb-1">
506
+ <h3 className="text-white font-bold text-base">{e.degree}</h3>
507
+ <span className="text-xs text-amber-400 font-semibold bg-amber-500/10 border border-amber-500/20 px-3 py-0.5 rounded-full">
508
+ {e.year}
509
+ </span>
510
+ </div>
511
+ <p className={`text-sm font-semibold bg-gradient-to-r ${e.accent} bg-clip-text text-transparent mb-2`}>
512
+ {e.field}
513
+ </p>
514
+ <p className="text-slate-400 text-sm leading-relaxed">{e.desc}</p>
515
+ </div>
516
+ </div>
517
+ ))}
518
+ </div>
519
+ </div>
520
+ </section>
521
+
522
+ {/* ══════════════════════════════════════════
523
+ CONTACT
524
+ ══════════════════════════════════════════ */}
525
+ <section id="contact" className="py-24 px-6 relative">
526
+ <div className="absolute inset-0 bg-gradient-to-t from-blue-950/30 to-transparent pointer-events-none" />
527
+ <div className="max-w-6xl mx-auto">
528
+ <SectionHeader
529
+ eyebrow="Let&apos;s connect"
530
+ title="Get In Touch"
531
+ sub="Open to collaborations, freelance projects, and full-time opportunities"
532
+ />
533
+ <div className="max-w-2xl mx-auto">
534
+ <div className="glass border border-white/8 rounded-3xl p-8 md:p-12 text-center animate-fade-up">
535
+ <p className="text-slate-300 text-base leading-relaxed mb-10 max-w-lg mx-auto">
536
+ Whether you need an{" "}
537
+ <span className="text-amber-400 font-semibold">AI automation system</span>,
538
+ a full-stack web app, or a custom agent — I&apos;m ready to build it.
539
+ Let&apos;s make something great together.
540
+ </p>
541
+
542
+ <div className="grid grid-cols-2 sm:grid-cols-3 gap-4 mb-10">
543
+ {[
544
+ { icon: "✉️", label: "Email", value: "qureshinaveed21@hotmail.com", href: "mailto:qureshinaveed21@hotmail.com" },
545
+ { icon: "⌨️", label: "GitHub", value: "naveedtechlab", href: "https://github.com/naveedtechlab" },
546
+ { icon: "💼", label: "LinkedIn", value: "naveedtechlab", href: "https://linkedin.com/in/naveedtechlab" },
547
+ { icon: "▶️", label: "YouTube", value: "@naveedtechlab", href: "https://youtube.com/@naveedtechlab" },
548
+ { icon: "📸", label: "Instagram", value: "@naveedtechlab", href: "https://instagram.com/naveedtechlab" },
549
+ { icon: "𝕏", label: "X", value: "@naveedtechlab", href: "https://x.com/naveedtechlab" },
550
+ { icon: "📘", label: "Facebook", value: "naveedtechlab", href: "https://facebook.com/naveedtechlab" },
551
+ { icon: "📍", label: "Location", value: "Karachi, Pakistan", href: "#" },
552
+ ].map((c) => (
553
+ <a
554
+ key={c.label}
555
+ href={c.href}
556
+ target="_blank"
557
+ rel="noopener noreferrer"
558
+ className="glass border border-white/10 hover:border-amber-400/40 rounded-2xl p-4 flex flex-col items-center gap-2 transition-all duration-200 hover:scale-105 group"
559
+ >
560
+ <span className="text-2xl">{c.icon}</span>
561
+ <span className="text-xs text-slate-500 uppercase tracking-widest">{c.label}</span>
562
+ <span className="text-sm text-white font-medium group-hover:text-amber-400 transition-colors text-center break-all">
563
+ {c.value}
564
+ </span>
565
+ </a>
566
+ ))}
567
+ </div>
568
+
569
+ <a
570
+ href="mailto:qureshinaveed21@hotmail.com"
571
+ className="inline-flex items-center gap-3 bg-gradient-to-r from-amber-500 to-orange-500 hover:from-amber-400 hover:to-orange-400 text-black font-bold px-8 py-4 rounded-full transition-all duration-200 hover:scale-105 shadow-xl shadow-amber-500/25 text-base"
572
+ >
573
+ ✉️ Send Me an Email
574
+ </a>
575
+ </div>
576
+ </div>
577
+ </div>
578
+ </section>
579
+
580
+ {/* ── FOOTER ── */}
581
+ <footer className="border-t border-white/5 py-8 px-6 text-center">
582
+ <p className="text-slate-500 text-sm">
583
+ © 2026{" "}
584
+ <span className="text-amber-400 font-semibold">Muhammad Naveed</span>
585
+ {" "}· Built with Next.js & Tailwind CSS
586
+ </p>
587
+ </footer>
588
+ </main>
589
+ );
590
+ }
591
+
592
+ /* ─── SECTION HEADER ────────────────────────────────────────── */
593
+ function SectionHeader({ eyebrow, title, sub }: { eyebrow: string; title: string; sub: string }) {
594
+ return (
595
+ <div className="text-center mb-14 animate-fade-up">
596
+ <span
597
+ className="inline-block text-amber-400 text-xs font-bold tracking-widest uppercase bg-amber-500/10 border border-amber-500/20 px-4 py-1.5 rounded-full mb-4"
598
+ dangerouslySetInnerHTML={{ __html: eyebrow }}
599
+ />
600
+ <h2 className="text-3xl sm:text-4xl font-extrabold text-white mb-3">{title}</h2>
601
+ <p className="text-slate-400 text-base max-w-xl mx-auto">{sub}</p>
602
+ </div>
603
+ );
604
+ }
eslint.config.mjs ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { defineConfig, globalIgnores } from "eslint/config";
2
+ import nextVitals from "eslint-config-next/core-web-vitals";
3
+ import nextTs from "eslint-config-next/typescript";
4
+
5
+ const eslintConfig = defineConfig([
6
+ ...nextVitals,
7
+ ...nextTs,
8
+ // Override default ignores of eslint-config-next.
9
+ globalIgnores([
10
+ // Default ignores of eslint-config-next:
11
+ ".next/**",
12
+ "out/**",
13
+ "build/**",
14
+ "next-env.d.ts",
15
+ ]),
16
+ ]);
17
+
18
+ export default eslintConfig;
next-env.d.ts ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ /// <reference types="next" />
2
+ /// <reference types="next/image-types/global" />
3
+ import "./.next/dev/types/routes.d.ts";
4
+
5
+ // NOTE: This file should not be edited
6
+ // see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
next.config.ts ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ import type { NextConfig } from "next";
2
+
3
+ const nextConfig: NextConfig = {
4
+ output: "standalone",
5
+ };
6
+
7
+ export default nextConfig;
package-lock.json ADDED
The diff for this file is too large to render. See raw diff
 
package.json ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "portfolio",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "scripts": {
6
+ "dev": "next dev",
7
+ "build": "next build",
8
+ "start": "next start",
9
+ "lint": "eslint"
10
+ },
11
+ "dependencies": {
12
+ "next": "16.1.6",
13
+ "react": "19.2.3",
14
+ "react-dom": "19.2.3"
15
+ },
16
+ "devDependencies": {
17
+ "@tailwindcss/postcss": "^4",
18
+ "@types/node": "^20",
19
+ "@types/react": "^19",
20
+ "@types/react-dom": "^19",
21
+ "eslint": "^9",
22
+ "eslint-config-next": "16.1.6",
23
+ "tailwindcss": "^4",
24
+ "typescript": "5.9.3"
25
+ }
26
+ }
postcss.config.mjs ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ const config = {
2
+ plugins: {
3
+ "@tailwindcss/postcss": {},
4
+ },
5
+ };
6
+
7
+ export default config;
public/file.svg ADDED
public/globe.svg ADDED
public/next.svg ADDED
public/profile.jpg ADDED
public/vercel.svg ADDED
public/window.svg ADDED
tsconfig.json ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2017",
4
+ "lib": ["dom", "dom.iterable", "esnext"],
5
+ "allowJs": true,
6
+ "skipLibCheck": true,
7
+ "strict": true,
8
+ "noEmit": true,
9
+ "esModuleInterop": true,
10
+ "module": "esnext",
11
+ "moduleResolution": "bundler",
12
+ "resolveJsonModule": true,
13
+ "isolatedModules": true,
14
+ "jsx": "react-jsx",
15
+ "incremental": true,
16
+ "plugins": [
17
+ {
18
+ "name": "next"
19
+ }
20
+ ],
21
+ "paths": {
22
+ "@/*": ["./*"]
23
+ }
24
+ },
25
+ "include": [
26
+ "next-env.d.ts",
27
+ "**/*.ts",
28
+ "**/*.tsx",
29
+ ".next/types/**/*.ts",
30
+ ".next/dev/types/**/*.ts",
31
+ "**/*.mts"
32
+ ],
33
+ "exclude": ["node_modules"]
34
+ }