A modern, interactive portfolio website showcasing my skills, projects, and experience as a Computer Science student at Northeastern University. Built with React, TypeScript, and Chakra UI, featuring smooth animations, responsive design, and 3D elements.
- Dynamic Color System: Mouse-responsive color gradients that change based on cursor position
- 3D Elements: Interactive 3D sphere with Three.js integration
- Smooth Animations: Framer Motion powered transitions and micro-interactions
- Responsive Layout: Fully responsive design that works on all devices
- Hero Section: Eye-catching introduction with animated 3D sphere and dynamic gradients
- About Me: Educational background, coursework, and language skills
- Technical Skills: Comprehensive showcase of programming languages and technologies
- Featured Projects: Detailed project showcase with individual project pages
- Contact Form: Interactive contact form with social media links
- AI-Powered Watch Search Engine: Full-stack application with OpenAI integration
- Nurture Nest: Cross-platform mobile app for pregnancy mental health
- Monte Carlo Simulation: Financial risk modeling tool with data visualization
- React 18 - Modern React with hooks and functional components
- TypeScript - Type-safe JavaScript for better development experience
- Chakra UI - Modern component library for consistent design
- Framer Motion - Advanced animation library for smooth transitions
- React Router DOM - Client-side routing for single-page application
- React Icons - Comprehensive icon library
- Three.js - 3D graphics library for WebGL
- @react-three/fiber - React renderer for Three.js
- @react-three/drei - Useful helpers for react-three-fiber
- Vite - Fast build tool and development server
- ESLint - Code linting and quality assurance
- TypeScript - Static type checking
src/
├── components/ # React components
│ ├── About.tsx # About section with education info
│ ├── Contact.tsx # Contact form and social links
│ ├── Hero.tsx # Landing section with 3D elements
│ ├── Navbar.tsx # Navigation component
│ ├── ProjectDetail.tsx # Individual project detail pages
│ ├── Projects.tsx # Project showcase grid
│ └── Skills.tsx # Technical skills and interests
├── assets/ # Static assets
│ ├── northeastern-banner-N-removebg-preview.png
│ ├── nurtureNest.jpg
│ ├── PANG.png
│ └── watchEngine.png
├── App.tsx # Main application component
├── main.tsx # Application entry point
└── theme.ts # Chakra UI theme configuration
- Node.js (version 16 or higher)
- npm or yarn package manager
-
Clone the repository
git clone https://github.com/abrarnafiu/portfolio.git cd portfolio -
Install dependencies
npm install # or yarn install -
Start development server
npm run dev # or yarn dev -
Open your browser Navigate to
http://localhost:5173to view the portfolio
npm run build
# or
yarn buildThe built files will be in the dist directory, ready for deployment.
The portfolio uses a custom Chakra UI theme defined in src/theme.ts. You can customize:
- Colors: Brand and accent color palettes
- Fonts: Typography settings
- Components: Button styles, heading styles, etc.
To add a new project to the portfolio:
- Add project details to the
projectsarray insrc/components/Projects.tsx - Add detailed project information to the
projectDetailsobject insrc/components/ProjectDetail.tsx - Add project images to the
src/assets/directory
- Personal Information: Update the Hero component with your details
- About Section: Modify education and background information
- Skills: Add or remove technical skills and interests
- Contact: Update contact information and social media links
- Connect your GitHub repository to Vercel
- Configure build settings:
- Build Command:
npm run build - Output Directory:
dist
- Build Command:
- Deploy automatically on every push to main branch
- Connect your GitHub repository to Netlify
- Configure build settings:
- Build Command:
npm run build - Publish Directory:
dist
- Build Command:
- Deploy and enjoy!
- Build the project:
npm run build - Push the
distfolder to agh-pagesbranch - Enable GitHub Pages in repository settings
The portfolio is fully responsive and optimized for:
- Desktop: Full experience with 3D elements and animations
- Tablet: Adapted layout with touch-friendly interactions
- Mobile: Streamlined design with essential features
- Code Splitting: Automatic code splitting with Vite
- Lazy Loading: Images and components load as needed
- Optimized Assets: Compressed images and optimized bundles
- Fast Refresh: Hot module replacement for development
# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run preview
# Run linting
npm run lintThis project is open source and available under the MIT License.
While this is a personal portfolio, suggestions and improvements are welcome! Feel free to:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
Abrar Nafiu
- 📧 Email: abrarnafiu@abrarnafiu.com
- 📱 Phone: (917) 293-6206
- 💼 LinkedIn: linkedin.com/in/abrar-nafiu
- 🐙 GitHub: github.com/abrarnafiu
- 🌐 Website: abrarnafiu.com
Built with ❤️ using React, TypeScript, and modern web technologies