Groveland
Veterans Wall
No veterans match your filters. Try adjusting the branch or war.
Their Story
Community Memories
0 memoriesADD YOUR MEMORY
Shared Memories & Veterans Data via Google Sheets
Memories and veteran information are stored in a Google Sheet. Admin access is password protected.
1. Spreadsheet Setup
Use the provided spreadsheet. Create two sheets:
Veterans sheet headers (row 1):
id | name | rank | branch | war | years | bio | photo
Memories sheet headers (row 1):
veteranId | authorName | memoryText | timestamp
Spreadsheet: Open Sheet
2. Apps Script (Fixed Version)
The provided script URL is already set. If you need to update the script, use this code (uses openById to work as standalone):
function doGet(e) {
const ss = SpreadsheetApp.openById("1G_2TWWa3FX6nMgqR-EJbPCTRw-qMhGLLnLaUzFQHFQU");
const sheetName = (e.parameter && e.parameter.sheet) || "Memories";
const sheet = ss.getSheetByName(sheetName) || ss.getSheets()[0];
const data = sheet.getDataRange().getValues();
if (data.length < 2) return ContentService.createTextOutput(JSON.stringify([])).setMimeType(ContentService.MimeType.JSON);
const headers = data[0].map(h => String(h).trim());
const rows = data.slice(1).filter(row => row[0]).map(row => {
const obj = {};
headers.forEach((h, i) => obj[h] = row[i] || "");
return obj;
});
return ContentService.createTextOutput(JSON.stringify(rows)).setMimeType(ContentService.MimeType.JSON);
}
function doPost(e) {
const ss = SpreadsheetApp.openById("1G_2TWWa3FX6nMgqR-EJbPCTRw-qMhGLLnLaUzFQHFQU");
const sheet = ss.getSheetByName("Memories") || ss.getSheets()[0];
const data = JSON.parse(e.postData.contents);
sheet.appendRow([data.veteranId, data.authorName, data.memoryText, new Date().toISOString()]);
return ContentService.createTextOutput(JSON.stringify({status: "success"}));
}
Current Web App: https://script.google.com/macros/s/AKfycbwkzKy5EeJbRuUzRU4rO34yr2YWxWkwJbffoJ_g3qydMCemnck58jQs4E0ZhgeDbp6RCQ/exec
3. Admin Notes
Veterans data (including photos as image URLs) and memories load automatically from the sheets on page load. Edit the sheet directly to update. Password required to view this guide: 1922