1. היכנסו ל-Google Sheets
2. לחצו "Blank spreadsheet" (גיליון ריק)
3. שנו את השם ל: תוצאות מבחן — כיתה ד׳
4. שמרו את הגיליון פתוח — נחזור אליו בשלב 3
1. בגיליון שיצרתם, לחצו בתפריט: Extensions → Apps Script
2. ייפתח עורך קוד חדש
3. מחקו את כל הקוד הקיים (בדרך כלל כתוב function myFunction())
4. העתיקו את כל הקוד למטה והדביקו בעורך:
// ===== מערכת מבחנים דיגיטלית — Google Apps Script =====
function doPost(e) {
try {
var data = JSON.parse(e.postData.contents);
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
if (sheet.getLastRow() === 0) {
var headers = ['חותמת זמן','שם פרטי','שם משפחה','כיתה','ציון','נקודות','סה"כ','זמן'];
for (var i = 1; i <= 20; i++) {
headers.push('ש' + i + '-תשובה');
headers.push('ש' + i + '-נכון?');
headers.push('ש' + i + '-נק');
}
sheet.appendRow(headers);
var hr = sheet.getRange(1, 1, 1, headers.length);
hr.setBackground('#2563EB').setFontColor('white').setFontWeight('bold');
sheet.setFrozenRows(1);
}
var row = [
data.timestamp || new Date().toLocaleString('he-IL'),
data.firstName || '', data.lastName || '', data.class || '',
data.score || 0, data.earned || 0, data.total || 0, data.duration || ''
];
for (var i = 1; i <= 20; i++) {
row.push(data['q' + i] || '');
row.push(data['q' + i + '_correct'] || '');
row.push(data['q' + i + '_points'] || 0);
}
sheet.appendRow(row);
var lr = sheet.getLastRow();
var sc = sheet.getRange(lr, 5);
var s = parseInt(data.score) || 0;
if (s >= 85) sc.setBackground('#D1FAE5');
else if (s >= 60) sc.setBackground('#DBEAFE');
else sc.setBackground('#FEE2E2');
if (lr <= 3) sheet.autoResizeColumns(1, 8);
return ContentService.createTextOutput(JSON.stringify({status:'success'}))
.setMimeType(ContentService.MimeType.JSON);
} catch (err) {
return ContentService.createTextOutput(JSON.stringify({status:'error',message:err.toString()}))
.setMimeType(ContentService.MimeType.JSON);
}
}
function doGet(e) {
return ContentService.createTextOutput(JSON.stringify({status:'ok',message:'API works!'}))
.setMimeType(ContentService.MimeType.JSON);
}
5. לחצו Ctrl+S (או Cmd+S) לשמירה
6. תנו לפרויקט שם: Exam API
1. לחצו בתפריט: Deploy → New deployment
2. ליד "Select type" לחצו על גלגל השיניים ובחרו: Web app
3. הגדירו:
Exam API v1MeAnyone4. לחצו Deploy
5. אשרו הרשאות (Authorize access) — לחצו "Advanced" → "Go to Exam API (unsafe)" → "Allow"
6. העתיקו את ה-URL שמופיע!
https://script.google.com/macros/s/AKfycbx.../exec1. פתחו את הקובץ exam.html בעורך טקסט (Notepad, VS Code, או כל עורך)
2. חפשו את השורה (בערך שורה 360):
var GOOGLE_SCRIPT_URL = '';
3. הדביקו את ה-URL בין הגרשיים:
var GOOGLE_SCRIPT_URL = 'https://script.google.com/macros/s/AKfycbx.../exec';
4. אפשר גם לשנות את קוד המבחן (ברירת מחדל: 1234):
var EXAM_CODE = '1234'; // שנו לכל קוד שתרצו
5. שמרו את הקובץ
אפשרות א׳ — שרת מקומי: פתחו את exam.html בדפדפן במחשב המורה ושתפו את המסך
אפשרות ב׳ — העלאה לאינטרנט:
exam.html ל-GitHub Pages (חינם)אפשרות ג׳ — רשת בית הספר: שימו את הקובץ על שרת בית הספר
פתחו את ה-Google Sheet שיצרתם. תראו:
המבחן מתאפס והתלמיד צריך להתחיל מחדש. ודאו שהתלמידים יודעים לא לרענן.
המבחן נשלח אוטומטית עם מה שהספיקו לענות.
לא. התלמיד רואה רק את הציון שלו. הפירוט המלא נשלח רק ל-Google Sheet.
כן! ב-exam.html חפשו את var questions = [ ושנו/הוסיפו שאלות. כל שאלה היא אובייקט עם שדות: type (input/choice), points, html, answer, ו-alt (תשובות חלופיות).
Google Apps Script מטפל בעד 100 בקשות בו-זמנית. ל-30-50 תלמידים בכיתה זה מספיק בהחלט.