EduLearn
Học tập dễ dàng
📖

Chào mừng đến với EduLearn!

Chọn lớp và môn học để bắt đầu hành trình khám phá kiến thức nhé! 🚀

🔐

Trang quản lý

Nhập mật khẩu để vào trang quản lý nội dung bài học

⚙️ Quản lý bài học
Thêm bài học và đồng bộ tự động với Google Sheets

📝 Thêm bài học mới

📋 Danh sách bài học

0 bài được chọn
LớpMônBài họcVideoPDF

📖 Hướng dẫn thiết lập Google Sheets

1
Tạo Google Sheets mới. Tên tab sheet có thể là bất kỳ — code tự lấy sheet đầu tiên.
2
Vào Tiện ích mở rộng → Apps Script. Xóa code cũ, dán code bên dưới và nhấn Lưu.
3
Nhấn Deploy → New deployment. Type = Web app. "Execute as" = Me, "Who has access" = Anyone. Deploy, sao chép URL.
4
Dán URL vào ô Google Apps Script URL ở đầu trang quản lý, nhấn Lưu URL. Xong!

📝 Code Apps Script

function doPost(e) { try { if (!e || !e.postData || !e.postData.contents) { return respond({ status: "error", message: "No POST data" }); } var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0]; var data = JSON.parse(e.postData.contents); // ✅ THÊM 1 BÀI MỚI (append, không xóa dữ liệu cũ) if (data.action === "add") { // Nếu sheet trống thì thêm tiêu đề trước if (sheet.getLastRow() === 0) { sheet.appendRow(["Lop","Mon","Chuong","TenBai", "YouTube","PDF","GhiChu"]); } sheet.appendRow([ data.lop || "", data.mon || "", data.chuong || "", data.bai || "", data.video || "", data.pdf || "", data.note || "" ]); return respond({ status: "ok" }); } // 🔄 ĐỒNG BỘ TOÀN BỘ (xóa và ghi lại) if (data.action === "sync") { sheet.clearContents(); sheet.appendRow(["Lop","Mon","Chuong","TenBai", "YouTube","PDF","GhiChu"]); data.lessons.forEach(function(r) { sheet.appendRow([ r.lop || "", r.mon || "", r.chuong || "", r.bai || "", r.video || "", r.pdf || "", r.note || "" ]); }); return respond({ status: "ok", count: data.lessons.length }); } return respond({ status: "error", message: "Unknown action" }); } catch(err) { return respond({ status: "error", message: err.toString() }); } } function doGet(e) { try { var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0]; var rows = sheet.getDataRange().getValues(); rows.shift(); // Bỏ hàng tiêu đề return respond({ status: "ok", data: rows }); } catch(err) { return respond({ status: "error", message: err.toString() }); } } function respond(obj) { return ContentService .createTextOutput(JSON.stringify(obj)) .setMimeType(ContentService.MimeType.JSON); }
⚠️ Quan trọng: Sau khi cập nhật code, bạn phải Deploy lại:
Deploy → Manage deployments → chọn deployment hiện có → nhấn ✏️ Edit → New version → Save.
Không cần tạo deployment mới, URL vẫn giữ nguyên.