A modern, responsive portfolio website showcasing Piyush Gupta's work as a Machine Learning Engineer. Built with HTML, CSS, and JavaScript, featuring dark mode, animations, and interactive elements.
- Modern Design: Clean, professional layout inspired by modern portfolio designs
- Dark/Light Mode: Toggle between themes with persistent preference
- Responsive Design: Fully responsive across all devices
- Smooth Animations: Scroll-triggered animations and hover effects
- Interactive Elements: Hover effects, transitions, and micro-interactions
- Hero Section: Eye-catching introduction with profile image and social links
- About: Personal information, education, and technical skills
- Experience: Timeline of work experience and internships
- Projects: Showcase of featured projects with GitHub links
- Blog: Latest blog posts linking to Substack
- Contact: Contact form and social media links
- WhatsApp Chat Bot: Interactive chatbot for visitor inquiries
- Contact Form: Functional contact form with success notifications
- Downloadable Resume: Direct download link for resume
- Social Media Integration: Links to GitHub, LinkedIn, Twitter, and Substack
- Mobile Navigation: Hamburger menu for mobile devices
- A modern web browser
- Basic knowledge of HTML/CSS/JavaScript (for customization)
-
Clone or Download
git clone https://github.com/yourusername/piyush-portfolio.git cd piyush-portfolio
-
Add Your Content
- Replace
profile.jpg
with your profile photo - Add project images (
project1.jpg
,project2.jpg
,project3.jpg
) - Add blog images (
blog1.jpg
,blog2.jpg
) - Create and add your
resume.pdf
- Replace
-
Customize Content
- Update personal information in
index.html
- Modify project details and links
- Update contact information
- Customize colors in
styles.css
if needed
- Update personal information in
-
Test Locally
- Open
index.html
in your browser - Or use a local server:
# Using Python python -m http.server 8000 # Using Node.js npx serve .
- Open
piyush-portfolio/
βββ index.html # Main HTML file
βββ styles.css # CSS styles and animations
βββ script.js # JavaScript functionality
βββ README.md # This file
βββ profile.jpg # Profile photo
βββ resume.pdf # Downloadable resume
βββ project1.jpg # Project images
βββ project2.jpg
βββ project3.jpg
βββ blog1.jpg # Blog post images
βββ blog2.jpg
βββ favicon.ico # Website icon
The website uses CSS custom properties for easy color customization. Edit the :root
section in styles.css
:
:root {
--primary-color: #6366f1;
--secondary-color: #8b5cf6;
--accent-color: #06b6d4;
/* ... other colors */
}
- Personal Info: Update the hero section and about section in
index.html
- Projects: Modify the projects section with your own projects
- Experience: Update the timeline with your work history
- Skills: Add or remove skills in the skills section
- Profile Photo: Replace
profile.jpg
(recommended size: 300x300px) - Project Images: Replace project images (recommended size: 400x200px)
- Blog Images: Replace blog images (recommended size: 400x200px)
Before deploying, ensure you have:
- β
Added your profile photo (
profile.jpg
) - β
Added project images (
project1.jpg
,project2.jpg
,project3.jpg
) - β
Added blog images (
blog1.jpg
,blog2.jpg
) - β
Added your resume (
resume.pdf
) - β
Added favicon (
favicon.ico
) - β
Updated all personal information in
index.html
- β Tested locally in your browser
-
Create GitHub Repository
# Initialize git repository git init # Add all files git add . # Commit changes git commit -m "Initial portfolio commit" # Set main branch git branch -M main # Add remote repository (replace with your username) git remote add origin https://github.com/Pg1910/piyush-portfolio.git # Push to GitHub git push -u origin main
-
Enable GitHub Pages
- Go to your repository on GitHub
- Click "Settings" tab
- Scroll down to "Pages" section (in left sidebar)
- Under "Source", select "Deploy from a branch"
- Choose "main" branch and "/ (root)" folder
- Click "Save"
- Wait 2-5 minutes for deployment
-
Your site will be available at:
https://pg1910.github.io/piyush-portfolio
# Install GitHub CLI
# Windows: winget install GitHub.cli
# macOS: brew install gh
# Login to GitHub
gh auth login
# Create repository and push
gh repo create piyush-portfolio --public --source=. --remote=origin --push
# Enable GitHub Pages via CLI
gh repo edit --enable-pages --pages-source=main
- Prepare your files: Ensure all images and content are added
- Deploy:
- Go to netlify.com
- Drag and drop your entire project folder
- Get instant deployment with custom domain support
- Your site URL will be provided immediately
-
Install Vercel CLI:
npm install -g vercel
-
Deploy:
# Navigate to your project directory cd piyush-portfolio # Deploy vercel # Follow the prompts: # - Link to existing project? No # - Project name: piyush-portfolio # - Directory: ./
-
Your site will be available at:
https://piyush-portfolio.vercel.app
-
Install Surge:
npm install --global surge
-
Deploy:
# Navigate to your project directory cd piyush-portfolio # Deploy surge # Follow the prompts for domain name
-
Your site will be available at:
https://your-chosen-name.surge.sh
-
Install Firebase CLI:
npm install -g firebase-tools
-
Initialize and Deploy:
# Login to Firebase firebase login # Initialize project firebase init hosting # Deploy firebase deploy
- Purchase domain from providers like Namecheap, GoDaddy, or Google Domains
- Add CNAME file to your repository:
yourdomain.com
- Configure DNS:
- Add CNAME record:
yourdomain.com
βpg1910.github.io
- Add A record:
@
β185.199.108.153
- Add CNAME record:
- Enable HTTPS in repository settings
- Deploy to Netlify (see above)
- Add custom domain in Netlify dashboard
- Update DNS as instructed by Netlify
- Site not loading: Check if repository is public
- Images not showing: Ensure image paths are relative (not absolute)
- 404 errors: Verify
index.html
is in the root directory - Slow updates: GitHub Pages can take 2-5 minutes to update
- Missing files: Ensure all required images are in the project folder
- Broken links: Test all internal links before deploying
- Mobile issues: Test on different devices and browsers
- Performance: Optimize images (compress to reduce file size)
After deployment, verify:
- β Website loads correctly
- β All images display properly
- β Contact form works
- β WhatsApp chatbot functions
- β Dark/light mode toggle works
- β Mobile responsiveness
- β All links are functional
- β Resume downloads correctly
- β Social media links work
- β SEO meta tags are present
-
Image Optimization:
# Use tools like ImageOptim or TinyPNG # Recommended image sizes: # - profile.jpg: 300x300px, < 100KB # - project images: 400x200px, < 150KB # - blog images: 400x200px, < 150KB
-
Enable Compression (if using Netlify/Vercel):
- These platforms automatically compress assets
- No additional configuration needed
-
Caching:
- GitHub Pages, Netlify, and Vercel provide automatic caching
- Clear cache if updates don't appear immediately
- Add HTML structure in
index.html
- Add corresponding styles in
styles.css
- Add navigation link if needed
- Edit animation keyframes in
styles.css
- Modify scroll-triggered animations in
script.js
Update the generateBotResponse()
function in script.js
to customize chatbot responses.
The website is fully optimized for mobile devices with:
- Responsive grid layouts
- Mobile-friendly navigation
- Touch-optimized buttons and interactions
- Optimized images and loading
The website includes:
- Semantic HTML structure
- Meta tags for social sharing
- Optimized images with alt text
- Fast loading times
- Mobile-first design
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
- Mobile browsers (iOS Safari, Chrome Mobile)
This project is open source and available under the MIT License.
Feel free to fork this project and customize it for your own portfolio. If you find any bugs or have suggestions, please open an issue.
For questions or support:
- Email: [email protected]
- LinkedIn: Piyush Gupta
- GitHub: @Pg1910
Potential improvements:
- Blog CMS integration
- Project filtering system
- Analytics integration
- Multi-language support
- Advanced animations
- Portfolio gallery
- Testimonials section
Built with β€οΈ by Piyush Gupta
Machine Learning Engineer | AI Tool Builder | Research Enthusiast