π Hariβs Interactive AI Portfolio
December 16, 2025 Β· View on GitHub
π Live Website: https://thughari.github.io
π¦ Repository: https://github.com/thughari/thughari.github.io
This is not a static portfolio.
It is an AI-powered, interactive personal website where visitors can:
- Ask anything about me using an AI chatbot (Gemini)
- Let the AI send messages on their behalf directly through chat
- Contact me using a real backend-less system powered by Google Apps Script
This portfolio itself is a production-grade project, not a template.
β¨ Key Features
π€ AI Assistant (Powered by Google Gemini)
- Integrated Gemini AI to answer questions about:
- My skills
- My experience
- My projects
- My background
- Conversational and context-aware
- Action-capable AI:
- The bot can send a message on behalf of the user
- Users donβt need to manually fill the contact form
This is not just a chatbot - it performs real actions.
π¬ Smart Contact System (No Traditional Backend)
- Contact form integrated using Google Apps Script
- Stores submissions directly in Google Sheets
- Sends instant email notifications
- Handles optional fields gracefully
Captured data:
- Name
- Phone number (optional)
- Message
- Timestamp
β
No database
β
No backend server
β
Works perfectly on GitHub Pages
π§ Why This Portfolio Is Different
- Not a template
- Not static content
- Demonstrates:
- Real AI integration
- Backend-less architecture
- Event-driven automation
- Production-ready frontend design
This portfolio is both a showcase and a system.
π οΈ Tech Stack
Frontend
- React
- TypeScript
- Vite
- HTML5 / CSS3 / JavaScript
AI
- Google Gemini API
Backend-less Automation
- Google Apps Script
- Google Sheets
- Gmail (Email notifications)
Hosting
- GitHub Pages
π Project Structure
βββ src/
| βββ public/ # Static assets
β βββ components/ # Reusable UI components
β βββ hooks/ # Custom React hooks
β βββ utils/ # Helper functions & configs
β βββ App.tsx # Main application
β βββ main.tsx # Entry point
βββ vite.config.ts
βββ tsconfig.json
βββ package.json
βββ README.md
π€ AI Capabilities (Detailed)
The AI assistant acts as a smart interface, not just a Q&A bot.
It can:
- Answer portfolio-specific questions
- Explain projects and technical choices
- Guide users through my experience
- Trigger contact actions directly from chat
Example:
βSend Hari a message saying Iβm interested in collaborating.β
The AI handles the submission without the user touching the form.
π¬ Contact Form β Google Apps Script Integration
This portfolio uses Google Apps Script as a backend replacement.
π Google Sheet Structure
Create a Google Sheet with the following headers in this exact order:
Name | Email | Message | Phone | Timestamp
π§ Apps Script β Production Code
This is the exact script used in this project:
function doPost(data) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var timestamp = new Date();
var name = data.parameter.name;
var email = data.parameter.email;
var message = data.parameter.message;
var phone = data.parameter.phone || "Not provided";
sheet.appendRow([name, email, message, phone, timestamp]);
var subject = "New Contact Form Submission from " + name;
var body =
`π© New Contact Form Submission\n\n` +
`Name: ${name}\n` +
`Email: ${email}\n` +
`Phone: ${phone}\n\n` +
`Message:\n${message}\n\n` +
`Submitted on: ${timestamp}`;
MailApp.sendEmail({
to: "haribabutatikonda3@gmail.com",
cc: "thughari3@gmail.com",
subject: subject,
body: body
});
return ContentService.createTextOutput("Form submission successful!");
}
π What This Script Does
- Accepts
POSTrequests from the frontend - Extracts submitted form data
- Handles optional phone numbers safely
- Stores data in Google Sheets
- Sends formatted email notifications
- Returns a success response
No cron jobs. No polling. No backend server.
π Deploying the Script
-
Open the Google Sheet
-
Go to Extensions β Apps Script
-
Paste the script above
-
Click Deploy β New Deployment
-
Choose Web App
- Execute as: Me
- Who has access: Anyone
-
Authorize permissions
-
Copy the generated Web App URL
π Frontend Connection
The frontend sends a POST request with form data to the deployed Apps Script URL.
This allows:
- Static hosting on GitHub Pages
- Secure serverless form handling
- Easy maintenance and scalability
π§ͺ Optional Local Testing
// function testDoPost() {
// var data = {
// parameter: {
// name: "Test Name",
// email: "test@example.com",
// message: "This is a test message."
// }
// };
// Logger.log(doPost(data));
// }
π§ͺ Verification Checklist
- Contact form submission works β
- Google Sheet updates correctly β
- Email notifications received β
- AI chatbot responds correctly β
- AI can send messages on behalf of the user β
π License
MIT License - feel free to explore the code and reuse ideas.
π Visit the live site and try the AI assistant yourself -> https://thughari.github.io/