Skip to content

vanshoberoi-dev/portfolio

Repository files navigation

πŸš€ Vansh Oberoi - AI Engineer Portfolio

Live Demo GitHub LinkedIn

πŸ“Έ Portfolio Preview

🌞 Light Theme

Portfolio Light Theme

πŸŒ™ Dark Theme

Portfolio Dark Theme

This project implements a modern web application architecture with advanced features like route prefetching, intelligent resource loading, and progressive web app capabilities. It uses a component-based architecture with performance optimization at its core, including code splitting, lazy loading, and optimized asset delivery.

The application includes sophisticated animations, keyboard shortcuts, global search functionality, and a comprehensive theme system. It's built with accessibility in mind and includes analytics integration, cookie consent management, and performance monitoring.

🌐 Live Demo

πŸ”— View Live Portfolio

Deployed on Vercel with automatic CI/CD from GitHub

Repository Structure

.
β”œβ”€β”€ src/                      # Source code directory
β”‚   β”œβ”€β”€ components/          # React components organized by feature
β”‚   β”‚   β”œβ”€β”€ home/           # Home page components (Hero, CTA, etc.)
β”‚   β”‚   β”œβ”€β”€ layout/         # Layout components (Header, Footer, etc.)
β”‚   β”‚   └── ui/             # Reusable UI components
β”‚   β”œβ”€β”€ utils/              # Utility functions for performance, HTTP, etc.
β”‚   β”œβ”€β”€ hooks/              # Custom React hooks
β”‚   β”œβ”€β”€ pages/              # Page components
β”‚   └── types/              # TypeScript type definitions
β”œβ”€β”€ public/                  # Static assets and public files
β”œβ”€β”€ scripts/                # Build and optimization scripts
└── docs/                   # Documentation files

Usage Instructions

Prerequisites

  • Node.js (v14.0.0 or higher)
  • npm (v6.0.0 or higher)
  • Modern web browser with JavaScript enabled

πŸš€ Quick Start

# Clone the repository
git clone https://github.com/Vansh462/portfolio.git
cd portfolio

# Install dependencies
npm install

# Start development server
npm run dev

# Build for production
npm run build

# Preview production build
npm run preview

πŸ› οΈ Technologies Used

Frontend

  • React 18 - Modern component-based architecture
  • TypeScript - Type safety and better developer experience
  • Tailwind CSS - Utility-first CSS framework
  • Framer Motion - Animations and transitions
  • React Router - Client-side routing

UI Components

  • Lucide React - For beautiful icons
  • Phosphor Icons - Social media icons and additional icon set
  • ReactFlow - For interactive skills network visualization

Backend Services

  • Formspree - Form handling for the contact form

Build Tools

  • Vite - Next generation frontend tooling
  • ESLint - Code linting
  • PostCSS - CSS processing

πŸš€ Features

  • Modern React Architecture - Built with React 18, TypeScript, and Vite
  • Advanced Performance Optimization - Code splitting, lazy loading, and optimized assets
  • Interactive UI Components - Custom animations and transitions using Framer Motion
  • Interactive Skills Visualization - Network graph showing relationships between skills
  • Dark/Light Mode - Theme toggle with system preference detection
  • Certifications Gallery - Interactive gallery to showcase certifications
  • Global Search - Quick navigation with keyboard shortcuts
  • Responsive Design - Fully responsive on all devices
  • SEO Friendly - Proper metadata and semantic HTML
  • Analytics Integration - Performance monitoring and user behavior tracking

Quick Start

  1. Configure your portfolio data:
// src/data/portfolio.ts
export const portfolioData = {
  personal: {
    name: "Your Name",
    title: "Your Title",
    // ...other personal info
  },
  // ...other portfolio sections
};
  1. Add your assets:
  • Place images in public/ directory
  • Update image references in src/utils/assets.ts
  1. Start the development server:
npm run dev

More Detailed Examples

  1. Adding a new page:
// src/pages/NewPage.tsx
import { motion } from 'framer-motion';
import { Section } from '@/components/ui/Section';

export default function NewPage() {
  return (
    <Section>
      <motion.div
        initial={{ opacity: 0 }}
        animate={{ opacity: 1 }}
      >
        {/* Your content here */}
      </motion.div>
    </Section>
  );
}
  1. Using the theme system:
import { useTheme } from '@/components/ThemeProvider';

function MyComponent() {
  const { theme, setTheme } = useTheme();
  
  return (
    <button onClick={() => setTheme(theme === 'dark' ? 'light' : 'dark')}>
      Toggle Theme
    </button>
  );
}

Troubleshooting

  1. Build Issues
  • Error: "Module not found"
    # Clear node_modules and reinstall
    rm -rf node_modules
    npm install
  1. Performance Issues
  • Enable debug mode in development:
    // src/utils/performanceOptimizer.ts
    const DEBUG = true;
  • Check browser console for Core Web Vitals metrics
  1. Animation Issues
  • Check Framer Motion debug output:
    import { motion, useIsomorphicLayoutEffect } from 'framer-motion';
    motion.useDebugValue = true;

Data Flow

The application follows a unidirectional data flow pattern, with portfolio data as the single source of truth.

[Portfolio Data] β†’ [React Components] β†’ [UI Rendering]
         ↓                  ↓                ↓
    [Data Layer]    [Component Layer]   [View Layer]
         ↓                  ↓                ↓
  [Type System]    [Props/State Flow]   [Animations]

Key component interactions:

  1. Portfolio data is loaded and typed using TypeScript interfaces
  2. Components receive data through props
  3. Theme provider manages global theme state
  4. Page transitions are handled by AnimatePresence
  5. Performance optimizations are applied automatically
  6. Analytics events are tracked through utility functions
  7. Resource loading is optimized via prefetching and lazy loading

πŸ“ž Contact

Vansh Oberoi - AI Engineer & ML Specialist

Email LinkedIn GitHub Instagram Twitter

πŸ“Š Project Stats

GitHub stars GitHub forks GitHub watchers

πŸ“ License

This project is open source and available under the MIT License.

Portfolio Content & Data Β© 2025 Vansh Oberoi. All rights reserved.


⭐ Star this repo if you found it helpful! ⭐

About

a portfolio + my playgroud of testing new techs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published