An interactive AI-powered portfolio website where visitors can chat with an AI assistant to learn about skills, projects, experience, and more. Built with vanilla JavaScript and powered by Supabase backend.
π Live Demo: https://dpkpaswan.github.io
- Interactive conversation with AI assistant
- Smart question understanding and contextual responses
- Quick suggestion buttons for common queries
- Real-time typing indicators with smooth animations
- Contact message collection through chat
- Mobile-optimized chat interface
- Automatic terminal typing effect on page load
- Realistic command execution simulation
- Shows skills, projects, and git commits
- Professional developer aesthetic
- Beautiful glassmorphism design with particle animations
- Command palette navigation (Ctrl+K)
- Dark/Light theme toggle
- Fully responsive design (mobile, tablet, desktop)
- Status bar with live clock
- Smooth scroll navigation
- Visitor session tracking
- Chat message storage and analytics
- Contact form submissions
- User interaction analytics
- Page view tracking
- Fork this repository to your GitHub account
- Enable GitHub Pages:
- Go to repository Settings β Pages
- Source: Deploy from branch
- Branch: main / (root)
- Customize content:
- Update personal info in
index.html - Modify skills, projects, and links
- Portfolio will work without Supabase (chat works offline)
- Update personal info in
# Fork the repository first, then clone your fork
git clone https://github.com/YOUR-USERNAME/dpkpaswan.github.io.git
cd dpkpaswan.github.io- Create Supabase account: supabase.com
- Create new project (choose region closest to you)
- Run database setup:
- Go to SQL Editor in Supabase dashboard
- Copy & paste contents of
supabase-setup.sql - Click "Run" to create tables and security policies
# Copy template and add your credentials
cp config.template.js config.js
# Edit config.js with your Supabase credentials:
# - Get URL and anon key from Supabase Project Settings β API# Add your changes (but config.js is ignored)
git add .
git commit -m "π Deploy portfolio"
git push origin main
# Enable GitHub Pages in repository settings
# Your site will be live at: https://YOUR-USERNAME.github.io- Add custom domain file:
echo "yourdomain.com" > CNAME
git add CNAME
git commit -m "Add custom domain"
git push- Configure DNS:
- Add CNAME record:
www.yourdomain.comβYOUR-USERNAME.github.io - Add A records for apex domain to GitHub Pages IPs
- Enable "Enforce HTTPS" in GitHub Pages settings
- Add CNAME record:
Since GitHub repositories are public, the config.js file is in .gitignore to protect credentials:
- β
Template file (
config.template.js) is committed - β Actual credentials (
config.js) stay local - π‘οΈ Supabase anon key is safe to expose (has Row Level Security)
- π Analytics work without exposing sensitive data
dpkpaswan.github.io/
βββ index.html # Main portfolio page
βββ styles.css # Complete styling system
βββ script.js # Interactive functionality
βββ config.template.js # Supabase config template
βββ config.js # Your credentials (gitignored)
βββ .gitignore # Protects sensitive files
βββ CNAME # Custom domain (if used)
β
βββ π Documentation/
β βββ supabase-setup.sql # Database schema
β βββ SUPABASE_SETUP.md # Setup instructions
β βββ API_DOCUMENTATION.md # API suggestions
β βββ QUICK_START.md # Quick reference
β
βββ ποΈ Backup Files/
βββ index-old.html # Previous version
βββ styles-old.css # Previous styles
βββ script-old.js # Previous scripts
-
Edit
index.html:- Change name, role, and description
- Update social media links
- Modify skills and experience
-
Edit
script.js:- Update
knowledgeBaseobject with your info - Change GitHub username for project loading
- Customize AI responses
- Update
- Edit CSS custom properties in
styles.css::root { --primary: #6366f1; /* Main brand color */ --secondary: #8b5cf6; /* Accent color */ /* Add your colors */ }
- Command palette commands (
commandPalette.executeCommand) - AI chatbot responses (
AIAssistant.generateResponse) - Terminal commands (
initTerminalTyping)
- Frontend: HTML5, CSS3, JavaScript (ES6+)
- Fonts: Inter, JetBrains Mono
- Icons: Font Awesome 6
- Backend: Supabase (PostgreSQL)
- Hosting: GitHub Pages
- Analytics: Custom Supabase analytics
Fully responsive design with:
- Touch-optimized buttons and inputs
- Mobile-friendly navigation
- Responsive grid layouts
- Optimized font sizes and spacing
- Touch action optimizations
- Mobile viewport configuration
- Lazy loading of heavy content
- Optimized particle animations
- Efficient scroll handlers
- Debounced API calls
- Minimal dependencies
- Fast static hosting on GitHub Pages
- Fork the repository
- Create your feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Supabase for backend infrastructure
- Font Awesome for icons
- Google Fonts for typography
- GitHub Pages for hosting
β If you found this helpful, please star the repository!
π Connect with me:
- GitHub: @dpkpaswan
- LinkedIn: Deepak Paswan
- Portfolio: dpkpaswan.github.io