Skip to content

Commit 908bfee

Browse files
authored
Create README.md
1 parent 668a951 commit 908bfee

1 file changed

Lines changed: 256 additions & 0 deletions

File tree

README.md

Lines changed: 256 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,256 @@
1+
# 🌐 Hari’s Interactive AI Portfolio
2+
3+
🚀 **Live Website:** https://thughari.github.io
4+
📦 **Repository:** https://github.com/thughari/thughari.github.io
5+
6+
This is **not a static portfolio**.
7+
8+
It is an **AI-powered, interactive personal website** where visitors can:
9+
- Ask **anything about me** using an AI chatbot (Gemini)
10+
- Let the **AI send messages on their behalf** directly through chat
11+
- Contact me using a **real backend-less system** powered by Google Apps Script
12+
13+
This portfolio itself is a **production-grade project**, not a template.
14+
15+
---
16+
17+
## ✨ Key Features
18+
19+
### 🤖 AI Assistant (Powered by Google Gemini)
20+
21+
- Integrated **Gemini AI** to answer questions about:
22+
- My skills
23+
- My experience
24+
- My projects
25+
- My background
26+
- Conversational and context-aware
27+
- **Action-capable AI**:
28+
- The bot can **send a message on behalf of the user**
29+
- Users don’t need to manually fill the contact form
30+
31+
> This is not just a chatbot - it performs real actions.
32+
33+
---
34+
35+
### 📬 Smart Contact System (No Traditional Backend)
36+
37+
- Contact form integrated using **Google Apps Script**
38+
- Stores submissions directly in **Google Sheets**
39+
- Sends **instant email notifications**
40+
- Handles optional fields gracefully
41+
42+
Captured data:
43+
- Name
44+
- Email
45+
- Phone number (optional)
46+
- Message
47+
- Timestamp
48+
49+
✅ No database
50+
✅ No backend server
51+
✅ Works perfectly on GitHub Pages
52+
53+
---
54+
55+
## 🧠 Why This Portfolio Is Different
56+
57+
- Not a template
58+
- Not static content
59+
- Demonstrates:
60+
- Real AI integration
61+
- Backend-less architecture
62+
- Event-driven automation
63+
- Production-ready frontend design
64+
65+
This portfolio is both **a showcase and a system**.
66+
67+
---
68+
69+
## 🛠️ Tech Stack
70+
71+
### Frontend
72+
- React
73+
- TypeScript
74+
- Vite
75+
- HTML5 / CSS3 / JavaScript
76+
77+
### AI
78+
- Google Gemini API
79+
80+
### Backend-less Automation
81+
- Google Apps Script
82+
- Google Sheets
83+
- Gmail (Email notifications)
84+
85+
### Hosting
86+
- GitHub Pages
87+
88+
---
89+
90+
## 📂 Project Structure
91+
92+
```
93+
├── src/
94+
| ├── public/ # Static assets
95+
│ ├── components/ # Reusable UI components
96+
│ ├── hooks/ # Custom React hooks
97+
│ ├── utils/ # Helper functions & configs
98+
│ ├── App.tsx # Main application
99+
│ └── main.tsx # Entry point
100+
├── vite.config.ts
101+
├── tsconfig.json
102+
├── package.json
103+
└── README.md
104+
105+
```
106+
107+
---
108+
109+
## 🤖 AI Capabilities (Detailed)
110+
111+
The AI assistant acts as a **smart interface**, not just a Q&A bot.
112+
113+
It can:
114+
- Answer portfolio-specific questions
115+
- Explain projects and technical choices
116+
- Guide users through my experience
117+
- **Trigger contact actions directly from chat**
118+
119+
Example:
120+
> “Send Hari a message saying I’m interested in collaborating.”
121+
122+
The AI handles the submission without the user touching the form.
123+
124+
---
125+
126+
## 📬 Contact Form – Google Apps Script Integration
127+
128+
This portfolio uses **Google Apps Script as a backend replacement**.
129+
130+
---
131+
132+
### 📊 Google Sheet Structure
133+
134+
Create a Google Sheet with the following headers **in this exact order**:
135+
136+
```
137+
138+
Name | Email | Message | Phone | Timestamp
139+
140+
````
141+
142+
---
143+
144+
### 🧠 Apps Script – Production Code
145+
146+
This is the **exact script used in this project**:
147+
148+
```javascript
149+
function doPost(data) {
150+
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
151+
var timestamp = new Date();
152+
153+
var name = data.parameter.name;
154+
var email = data.parameter.email;
155+
var message = data.parameter.message;
156+
var phone = data.parameter.phone || "Not provided";
157+
158+
sheet.appendRow([name, email, message, phone, timestamp]);
159+
160+
var subject = "New Contact Form Submission from " + name;
161+
162+
var body =
163+
`📩 New Contact Form Submission\n\n` +
164+
`Name: ${name}\n` +
165+
`Email: ${email}\n` +
166+
`Phone: ${phone}\n\n` +
167+
`Message:\n${message}\n\n` +
168+
`Submitted on: ${timestamp}`;
169+
170+
MailApp.sendEmail({
171+
to: "haribabutatikonda3@gmail.com",
172+
cc: "thughari3@gmail.com",
173+
subject: subject,
174+
body: body
175+
});
176+
177+
return ContentService.createTextOutput("Form submission successful!");
178+
}
179+
````
180+
181+
---
182+
183+
### 🔍 What This Script Does
184+
185+
* Accepts `POST` requests from the frontend
186+
* Extracts submitted form data
187+
* Handles optional phone numbers safely
188+
* Stores data in Google Sheets
189+
* Sends formatted email notifications
190+
* Returns a success response
191+
192+
No cron jobs. No polling. No backend server.
193+
194+
---
195+
196+
### 🚀 Deploying the Script
197+
198+
1. Open the Google Sheet
199+
2. Go to **Extensions → Apps Script**
200+
3. Paste the script above
201+
4. Click **Deploy → New Deployment**
202+
5. Choose **Web App**
203+
204+
* Execute as: **Me**
205+
* Who has access: **Anyone**
206+
6. Authorize permissions
207+
7. Copy the generated **Web App URL**
208+
209+
---
210+
211+
### 🌐 Frontend Connection
212+
213+
The frontend sends a `POST` request with form data to the deployed Apps Script URL.
214+
215+
This allows:
216+
217+
* Static hosting on GitHub Pages
218+
* Secure serverless form handling
219+
* Easy maintenance and scalability
220+
221+
---
222+
223+
### 🧪 Optional Local Testing
224+
225+
```javascript
226+
// function testDoPost() {
227+
// var data = {
228+
// parameter: {
229+
// name: "Test Name",
230+
// email: "test@example.com",
231+
// message: "This is a test message."
232+
// }
233+
// };
234+
// Logger.log(doPost(data));
235+
// }
236+
```
237+
238+
---
239+
240+
## 🧪 Verification Checklist
241+
242+
* Contact form submission works ✅
243+
* Google Sheet updates correctly ✅
244+
* Email notifications received ✅
245+
* AI chatbot responds correctly ✅
246+
* AI can send messages on behalf of the user ✅
247+
248+
---
249+
250+
## 📄 License
251+
252+
MIT License - feel free to explore the code and reuse ideas.
253+
254+
---
255+
256+
👉 **Visit the live site and try the AI assistant yourself -> https://thughari.github.io/**

0 commit comments

Comments
 (0)