A modern, responsive portfolio website showcasing my skills, projects, and experience as a Backend & Platform Engineer with a Cyber Security specialization. Built with React 19, TypeScript, and cutting-edge web technologies including 3D graphics, PWA capabilities, and performance optimizations.
- π¨ Modern Dark Theme - Sleek, professional design with glassmorphism effects
- π± Fully Responsive - Optimized for all devices and screen sizes
- β‘ Performance Optimized - 120fps animations, optimized rendering, lazy loading
- π PWA Ready - Service worker, offline support, and installable app
- π― Interactive 3D Elements - Three.js globe and Babylon.js 3D scenes
- π Advanced Animations - Framer Motion with scroll-triggered effects
- π SEO Optimized - Meta tags, Open Graph, Twitter Cards, and structured data
- π¨ Micro-interactions - Floating cards, gradient text, pulse effects, and magnetic buttons
- π Comprehensive Sections - About, Education, Experience, Skills, Projects, and Contact
- π Python Automation - CV generator script with PDF generation capabilities
- π Pure SPA Architecture - State-driven navigation, persistent AppShell, no page reloads
- React 19 - Latest React with concurrent features
- TypeScript 5.8 - Type-safe development
- Zustand 5.0 - Lightweight state management
- Tailwind CSS 3.3 - Utility-first CSS framework
- PostCSS 8.4 - CSS processing
- Autoprefixer - CSS vendor prefixing
- Framer Motion 12.10 - Production-ready motion library
- Three.js 0.176 - 3D graphics library
- Babylon.js 8.7 - Advanced 3D engine
- Vite 6.3 - Fast build tool and dev server
- React.lazy - Code splitting and lazy loading
- Suspense - Optimized loading states
- Service Worker - Offline support and caching
- Web App Manifest - Installable app configuration
- PWA Features - Background sync, push notifications
- ESLint 9.25 - Code linting and quality
- TypeScript ESLint - TypeScript-specific linting rules
- React Hooks ESLint - React hooks linting rules
- GitHub Pages - Static site hosting
- gh-pages - Automated deployment
Portfolio/
βββ π Configuration Files
β βββ package.json # Dependencies and scripts
β βββ vite.config.ts # Vite build configuration
β βββ tailwind.config.js # Tailwind CSS configuration
β βββ postcss.config.cjs # PostCSS configuration
β βββ tsconfig.json # TypeScript configuration
β βββ tsconfig.app.json # App-specific TS config
β βββ tsconfig.node.json # Node-specific TS config
β βββ eslint.config.js # ESLint configuration
β βββ index.html # Main HTML entry point
β
βββ π Python Scripts
β βββ cv.py # Automated CV/Resume PDF generator
β
βββ π Source Code (src/)
β βββ π Entry Points
β β βββ main.tsx # Application entry point
β β
β βββ π¨ Styling
β β βββ index.css # Global CSS styles and animations
β β
β βββ ποΈ Application Core (app/)
β β βββ AppShell.tsx # Persistent application shell
β β βββ MainView.tsx # State-driven view switcher
β β βββ store.ts # Global state management (Zustand)
β β
β βββ π§© Components
β β βββ Navbar.tsx # Navigation component
β β βββ HeroSection.tsx # Hero section component
β β βββ GlobeSection.tsx # 3D globe section
β β βββ ThreeGlobe.tsx # Three.js globe implementation
β β βββ BabylonScene.tsx # Babylon.js 3D scene
β β βββ Footer.tsx # Footer component
β β βββ ScrollToTop.tsx # Scroll to top button
β β βββ ThemeProvider.tsx # Theme context provider
β β βββ MicroInteractions.tsx # Micro-interaction components
β β
β βββ π Views
β β βββ HomeView.tsx # Main portfolio view
β β βββ ThoughtsView.tsx # Thoughts/Blog view
β β
β βββ π Data
β β βββ thoughts.ts # Thoughts/Blog data
β β
β βββ π― Assets
β βββ (assets directory)
β
βββ π Public Assets (public/)
β βββ sw.js # Service worker
β βββ site.webmanifest # PWA manifest
β βββ GK.jpeg # Profile image
β βββ profile.jpg # Profile image
β βββ GCV.pdf # Resume/CV
β βββ PAC.png, PACN.png # Certificates
β βββ JPM_SW.png # Project image
β βββ π Earth Textures
β β βββ earth-blue-marble.jpg # Earth texture
β β βββ earth-clouds.png # Cloud layer
β β βββ earth-specular.jpg # Specular map
β β βββ earth-topology.png # Topography map
β βββ π projects/ # Project images
β
βββ π Scripts
β βββ copy-404.js # 404.html generator for SPA routing
β
βββ π¦ Build Output
β βββ dist/ # Production build
β
βββ π Documentation
βββ README.md # This file
βββ ARCHITECTURE.md # Architecture documentation
βββ LICENSE # MIT License
- Node.js 18+
- npm or yarn package manager
-
Clone the repository:
git clone https://github.com/gks281263/Portfolio.git cd Portfolio -
Install dependencies:
npm install
-
Start development server:
npm run dev
The app will be available at
http://localhost:5173/Portfolio/ -
Build for production:
npm run build
-
Preview production build:
npm run preview
-
Deploy to GitHub Pages:
npm run deploy
- Update profile details in
src/views/HomeView.tsx - Modify skills, projects, and experience sections
- Update contact information and social links
- Edit thoughts/blog content in
src/data/thoughts.ts
- Customize colors in
tailwind.config.js - Modify global styles in
src/index.css - Update component-specific styles
- Adjust animation timings for mobile/desktop
- Adjust globe settings in
src/components/ThreeGlobe.tsx - Modify Babylon.js scene in
src/components/BabylonScene.tsx - Update earth textures in
public/directory
- Customize Framer Motion animations in components
- Modify micro-interactions in
src/components/MicroInteractions.tsx - Adjust pulse glow animation speeds for mobile/desktop
- Update
public/site.webmanifestfor app details - Modify service worker in
public/sw.js - Update icons and splash screens
- Customize CV content in
cv.pyorSCV.py - Modify styling and formatting in the scripts
- Add new sections or modify existing ones
- Install required Python dependencies:
pip install reportlab
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLintnpm run deploy- Deploy to GitHub Pages
python cv.py- Generate professional CV PDFpython SCV.py- Generate additional CV variant- Install dependencies:
pip install reportlab
- ESLint - Code linting and style enforcement
- TypeScript - Static type checking
- Tailwind CSS - Utility-first styling
- 120fps Animations - Optimized for high refresh rate displays
- Lazy Loading - Views loaded on-demand with React.lazy
- Code Splitting - Automatic chunk optimization
- PWA Caching - Intelligent resource caching
- Mobile Optimizations - Reduced animation intensity on mobile
- AppShell.tsx - Persistent application shell that never remounts
- MainView.tsx - State-driven view switcher with lazy loading
- store.ts - Global state management with Zustand and persistence
- Floating cards with physics
- Gradient text effects
- Pulse glow animations (mobile-optimized)
- Magnetic button interactions
- Scroll-triggered animations
- ThreeGlobe.tsx - Interactive 3D globe
- BabylonScene.tsx - Advanced 3D scenes
- GlobeSection.tsx - Globe section wrapper
- cv.py - Automated CV/Resume PDF generator using ReportLab
- Professional styling and consistent layout
- Automated content generation from structured data
- Offline Support - Service worker caching
- Installable - Add to home screen
- Background Sync - Offline action queuing
- Push Notifications - Update notifications
- Responsive Design - Mobile-first approach
- Vite Build - Fast development and optimized builds
- Tree Shaking - Unused code elimination
- Code Splitting - Lazy-loaded views and components
- Image Optimization - Optimized asset loading with error handling
- CSS Optimization - Purged unused styles
- Mobile-Specific - Reduced animation intensity on mobile devices
Contributions are welcome! Please feel free to submit issues and enhancement requests.
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Gaurav Kumar
- LinkedIn: gauravkumar7777
- GitHub: gks281263
- Email: gks281263@gmail.com
- Portfolio: https://gks281263.github.io/Portfolio/
β Star this repository if you found it helpful!