A modern, full-featured personal developer portfolio built with Next.js 16, React 19, and TypeScript. The portfolio dynamically fetches live GitHub data, features a 3D interactive background powered by Three.js, an integrated AI Assistant, and a secure Admin Dashboard โ all deployed on Netlify.
| Feature | Description |
|---|---|
| ๐ Live GitHub Integration | Fetches real-time profile & repositories via GitHub API with ISR (5-min revalidation) |
| ๐ฎ 3D Interactive Background | Three.js powered animated 3D scene & globe |
| ๐ค AI Assistant | Built-in AI assistant for visitor interaction |
| ๐๏ธ Project Showcase | Cards with modals displaying live project details |
| ๐ Admin Dashboard | JWT-secured admin panel for content management |
| ๐ฑ Fully Responsive | Mobile-first design across all screen sizes |
| โก ISR Caching | Smart fallback static data when GitHub API is unavailable |
PORTFOLIO/
โโโ app/
โ โโโ admin/ # Secure admin dashboard (JWT protected)
โ โโโ api/ # Next.js API routes
โ โโโ layout.tsx # Root layout
โ โโโ page.tsx # Home page (GitHub data fetching + ISR)
โโโ components/
โ โโโ PortfolioClient.tsx # Main portfolio UI
โ โโโ AIAssistant.tsx # AI chat assistant
โ โโโ Background3D.tsx # Three.js animated background
โ โโโ Globe3D.tsx # Interactive 3D globe
โ โโโ ProjectCard.tsx # Project display card
โ โโโ ProjectModal.tsx # Detailed project modal
โ โโโ AdminDashboardClient.tsx
โโโ lib/
โ โโโ github.ts # GitHub API integration
โโโ data/ # Static fallback data
โโโ public/ # Static assets
| Project | Tech | Description |
|---|---|---|
| QuickBite | JS, MERN, Stripe | Full food delivery app with JWT auth & Stripe payments |
| SmartScribe | JS, OpenAI, MERN | AI study assistant โ summaries, flashcards & quizzes |
| ChatWave | JS, Socket.io, MERN | Real-time chat with group channels & typing indicators |
| Quill | HTML, CSS, JS | Minimal journaling app with category-based log system |
| Brick Breaker | Java, AWT/Swing | Desktop game with collision physics & dynamic levels |
| WeatherForecast | HTML, CSS, JS | Live weather dashboard using Weather API |
- Node.js
v18+ - npm / yarn / pnpm
# Clone the repository
git clone https://github.com/SagarXdev23/MY_PORTFOLIO.git
cd MY_PORTFOLIO
# Install dependencies
npm installCreate a .env.local file in the root directory:
GITHUB_TOKEN=your_github_personal_access_token
ADMIN_USERNAME=your_admin_username
ADMIN_PASSWORD=your_admin_password
JWT_SECRET=your_jwt_secret_keynpm run devOpen http://localhost:3000 in your browser.
npm run build
npm run startThis project is deployed on Netlify using the @netlify/plugin-nextjs adapter.
Configure the following in your Netlify dashboard:
- Build command:
npm run build - Publish directory:
.next - Environment variables: Same as
.env.local