Attendance Management System
Go to sheets.google.com → create a new sheet → name it Attendance.
In row 1, add these headers exactly:
Timestamp Name Phone Session Date Time Trainer Venue
In your Google Sheet, click Extensions → Apps Script. Delete any existing code, then paste this:
const SHEET_NAME = "Attendance";
function doPost(e) {
try {
const data = JSON.parse(e.postData.contents);
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME);
sheet.appendRow([
new Date().toLocaleString("en-MY"),
data.name, data.phone, data.session,
data.date, data.time, data.trainer, data.venue
]);
return ContentService
.createTextOutput(JSON.stringify({ result: "success" }))
.setMimeType(ContentService.MimeType.JSON);
} catch(err) {
return ContentService
.createTextOutput(JSON.stringify({ result: "error", error: err.toString() }))
.setMimeType(ContentService.MimeType.JSON);
}
}
function doGet(e) {
try {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME);
const rows = sheet.getDataRange().getValues();
const headers = rows[0];
const data = rows.slice(1).map(row => {
const obj = {};
headers.forEach((h, i) => obj[h] = row[i]);
return obj;
});
return ContentService
.createTextOutput(JSON.stringify({ result: "success", data: data }))
.setMimeType(ContentService.MimeType.JSON);
} catch(err) {
return ContentService
.createTextOutput(JSON.stringify({ result: "error", error: err.toString() }))
.setMimeType(ContentService.MimeType.JSON);
}
}
Click Deploy → New deployment
• Type: Web app
• Execute as: Me
• Who has access: Anyone
Click Deploy → copy the URL it gives you.
Paste the deployment URL into the field at the top of this page and click Save. You're done — data will now go directly to your Google Sheet.
Each session can send data to a different Google Sheet. Paste a unique Apps Script URL here, or leave blank to use the default.
Please fill in your details to record your attendance.
Your information is only used for attendance purposes.