A modern, fully-featured personal portfolio website built with React, featuring smooth animations, beautiful UI components, and integrated backend services for contact form functionality.
- π Home Page - Eye-catching hero section with animated profile image, floating shapes, and clickable scroll indicator
- π€ About Page - Personal introduction with dynamic statistics cards and resume download functionality
- π» Skills Page - Interactive skill bars with smooth progress animations showcasing technical expertise
- π Projects Page - 9 real projects with live demos, GitHub links, and detailed descriptions
- π Education Page - Timeline view of academic background and professional internship experience
- π§ Contact Page - Fully functional contact form with Supabase database integration and EmailJS notifications
- π Light/Dark Mode - Seamless theme switching with smooth transitions and localStorage persistence
- π Scroll Progress Bar - Visual indicator showing page scroll progress
- β¨ Particle Background - Animated particle system with connecting lines for visual appeal
- π¨ Gradient Animations - Dynamic gradient effects throughout the site
- π± Fully Responsive - Optimized for all devices from mobile to desktop
- π Framer Motion Animations - Professional animations on all page elements
- π Scroll to Top - Automatic scroll to top on page navigation
- π¦Ά Modern Footer - Comprehensive footer with newsletter signup, quick links, and contact info
- π Theme Persistence - User theme preference saved across sessions
- π§ Email Notifications - Automatic email alerts via EmailJS when contact form is submitted
- πΎ Database Integration - Contact form submissions stored in Supabase database
- Supabase - PostgreSQL database for storing contact form submissions
- EmailJS - Automated email notifications for new contact form entries
- Form Validation - Client-side validation for all form fields
- Frontend Framework: React 18
- Routing: React Router DOM
- Animations: Framer Motion
- Build Tool: Vite
- Styling: CSS3 with custom properties
- Database: Supabase (PostgreSQL)
- Email Service: EmailJS
- Deployment Ready: Optimized for production builds
- Node.js (v16 or higher)
- npm or yarn package manager
- Clone the repository:
git clone https://github.com/piyush06singhal/Portfolio_Website.git
cd Portfolio_Website- Install dependencies:
npm install- Configure Environment Variables:
Create a
.envfile in the root directory and add:
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
VITE_EMAILJS_SERVICE_ID=your_emailjs_service_id
VITE_EMAILJS_TEMPLATE_ID=your_emailjs_template_id
VITE_EMAILJS_PUBLIC_KEY=your_emailjs_public_key-
Set up Supabase Database: Run the SQL script from
supabase_setup.sqlin your Supabase SQL editor to create the contacts table. -
Start the development server:
npm run dev- Build for production:
npm run build- Preview production build:
npm run preview-
Home Page (
src/pages/Home.jsx):- Update name: Change "Piyush Singhal" to your name
- Modify title: Update "Computer Science Engineering Student"
- Edit hero description
- Replace profile image in
/publicfolder
-
About Page (
src/pages/About.jsx):- Edit the "Who Am I?" section text
- Update statistics: Years Experience, Projects Completed, Technologies, Certifications
- Replace resume file: Update
/public/Piyush_Singhal_Resume.pdfwith your resume - Change profile image path
-
Skills Page (
src/pages/Skills.jsx):- Add/remove skills in each category (Frontend, Backend, Tools & Technologies)
- Adjust skill proficiency levels (0-100)
- Modify skill categories as needed
-
Projects Page (
src/pages/Projects.jsx):- Update all 9 project cards with your own projects
- Add project descriptions, technologies, images
- Update live demo and GitHub repository links
- Replace project images in
/publicfolder
-
Education Page (
src/pages/Education.jsx):- Update degree, institution, period, CGPA
- Modify education timeline
- Add/update internship experiences
- Change technologies used in internships
-
Contact Page (
src/pages/Contact.jsx):- Update email: piyush.singhal.2004@gmail.com
- Change phone: +91 9694984312
- Modify location: Rajasthan, India
- Update social media links (LinkedIn, GitHub, Instagram, Twitter)
- Change availability status
-
Footer (
src/components/Footer.jsx):- Update contact information
- Modify social media links
- Change newsletter subscription text
Edit the CSS variables in src/index.css:
:root {
--primary: #6366f1;
--secondary: #8b5cf6;
--accent: #ec4899;
/* ... more colors */
}portfolio/
βββ public/
β βββ resume.pdf # Resume file for download
β βββ [project-images] # Project and profile images
βββ src/
β βββ components/
β β βββ Navbar.jsx # Navigation bar with theme toggle
β β βββ Navbar.css
β β βββ Footer.jsx # Footer with links and newsletter
β β βββ Footer.css
β β βββ ThemeToggle.jsx # Light/Dark mode toggle
β β βββ ThemeToggle.css
β β βββ ScrollToTop.jsx # Auto scroll to top component
β β βββ ParticleBackground.jsx # Animated particle system
β βββ pages/
β β βββ Home.jsx & Home.css # Hero section with profile
β β βββ About.jsx & About.css # About section with stats
β β βββ Skills.jsx & Skills.css # Skills with progress bars
β β βββ Projects.jsx & Projects.css # 9 project showcases
β β βββ Education.jsx & Education.css # Education timeline
β β βββ Contact.jsx & Contact.css # Contact form with backend
β βββ App.jsx # Main app component with routing
β βββ App.css # Global app styles
β βββ main.jsx # React entry point
β βββ index.css # Global CSS variables and styles
βββ .env # Environment variables (not in repo)
βββ index.html # HTML entry point
βββ package.json # Dependencies and scripts
βββ vite.config.js # Vite configuration
βββ supabase_setup.sql # Database setup script
βββ README.md # Project documentation
The portfolio showcases 9 real projects:
- Travel Landing Page - HTML5, CSS3, JavaScript
- YouTube Video Classifier - Python, Anvil, ML, YouTube API
- LinkedIn Automation - Next.js, AI, OAuth, TypeScript
- Basic Banking System - HTML5, CSS3, JavaScript, PHP, MySQL
- Weather Application - HTML5, CSS3, JavaScript, OpenWeather API
- Finance Manager Application - Next.js, TypeScript, Supabase, 2FA
- PDF Chat Application - Python, Streamlit, LangChain, FAISS, Google AI
- AI Holiday Planner - AI, React, Calendar Analysis
- AI Medicine Assistant - Python, Streamlit, AI, Healthcare
- Smooth page transitions with Framer Motion
- Hover effects on cards and buttons
- Scroll indicators and progress bar
- Floating shapes and particles
- Progress bar animations
- Gradient shift animations
- Typing effect animations
- Ripple effects
- Mobile-first approach
- Breakpoints for tablets and desktops
- Hamburger menu for mobile devices
- Responsive typography
- Flexible grid layouts
- Gradient text effects
- Glass-morphism cards
- Custom scrollbar
- Interactive buttons with glow effects
- Timeline layout
- Particle background system
- Theme toggle button
- Scroll progress indicator
- Newsletter signup form
- Availability status badge
- Social media integration
- β Chrome (latest)
- β Firefox (latest)
- β Safari (latest)
- β Edge (latest)
- β Mobile browsers (iOS Safari, Chrome Mobile)
This project can be deployed on:
- Vercel (Recommended)
- Netlify
- GitHub Pages
- Firebase Hosting
npm install -g vercel
vercel- Create a Supabase project at supabase.com
- Run the SQL script from
supabase_setup.sql - Get your project URL and anon key from Settings > API
- Add them to your
.envfile
- Create an account at emailjs.com
- Create an email service and template
- Get your Service ID, Template ID, and Public Key
- Add them to your
.envfile
Edit CSS variables in src/index.css:
:root {
--primary: #6366f1; /* Primary brand color */
--secondary: #8b5cf6; /* Secondary color */
--accent: #ec4899; /* Accent color */
--dark: #0f172a; /* Dark background */
--dark-light: #1e293b; /* Light dark background */
--text: #f1f5f9; /* Text color */
--text-secondary: #cbd5e1; /* Secondary text */
}- Mobile: < 576px
- Tablet: 576px - 968px
- Desktop: > 968px
Contributions, issues, and feature requests are welcome!
MIT License - feel free to use this template for your own portfolio!
Piyush Singhal
- GitHub: @piyush06singhal
- LinkedIn: Piyush Singhal
- Email: piyush.singhal.2004@gmail.com
- React team for the amazing framework
- Framer Motion for smooth animations
- Supabase for backend services
- EmailJS for email functionality
Give a βοΈ if you like this project!
Created with β€οΈ using React, Framer Motion, Supabase, and EmailJS