This portfolio website showcases my work, skills, and provides a contact form that directly saves messages to Google Sheets. Built with modern HTML5, CSS3, and JavaScript, this responsive website features a clean design and seamless form integration.
git clone https://github.com/Uzmakh/Task-02-Portfolio-Website.git
cd portfolio-website
2. Google Sheets Integration Setup
Create a new Google Sheet
Go to Extensions > Apps Script
Replace the default code with:
const sheetName = ‘Sheet1’ const scriptProp = PropertiesService.getScriptProperties()
function doPost(e) { const lock = LockService.getScriptLock() lock.tryLock(10000)
try { const doc = SpreadsheetApp.openById(scriptProp.getProperty(‘key’)) const sheet = doc.getSheetByName(sheetName) const headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0] const nextRow = sheet.getLastRow() + 1 const newRow = headers.map(header => e.parameter[header])
sheet.getRange(nextRow, 1, 1, newRow.length).setValues([newRow]) return ContentService .createTextOutput(JSON.stringify({ ‘result’: ‘success’, ‘row’: nextRow })) .setMimeType(ContentService.MimeType.JSON) } catch (e) { return ContentService .createTextOutput(JSON.stringify({ ‘result’: ‘error’, ‘error’: e })) .setMimeType(ContentService.MimeType.JSON) } finally { lock.releaseLock() } }
function setup() { const doc = SpreadsheetApp.getActiveSpreadsheet() scriptProp.setProperty(‘key’, doc.getId()) }
const googleFormUrl = ‘YOUR_GOOGLE_SCRIPT_URL_HERE’;
4. Customize Content
Edit the following files to personalize:
- index.html: Update sections, projects, and personal info
- styles.css: Customize colors, fonts, and styling
- assets/: Add your profile image and project screenshots
# File Structure
portfolio-website/
├── index.html
├── styles.css
├── script.js
├── assets/
│ ├── profile.jpg
│ ├── project-1.jpg
│ └── project-2.jpg
├── LICENSE
└── README.md