跳到主要內容

發表文章

Puti-AI測驗產生器:打造智能化教學評量工具

【先說囉】這次複製難度高了點,不必勉強! ~各位老師好!今天要為大家介紹一個我開發的教學利器 - Puti-AI測驗產生器。這是一個結合 Google Apps Script 與 Gemini AI 的智能測驗系 統 ,可以幫助老師快速生成符合教學內容的選擇題,並進行線上施測和成績管理。
最近的文章

【Puti-評量分析助手】:老師的智慧教學小幫手(家長、學生也好用喔!)

親師生都能用神器~「ai評量助手」 : 老師可以用來教學(生成類題、學生錯誤分析)。家長能用來教孩子(解題說明、生成類題),學生能用自學(解題說明、生成類題) ,不要拿去抄作業就好~哈!。 發想緣由是,期中考結束,都要填些表格,例如「...評量結果檢核表」,所以我創建了這個小工具,有圖片和文字兩種輸入模式,三個主要功能是:解題、生成類題、學生錯誤分析。但開放給大家用,圖片辨識的額度就不知道能撐多久,個人經驗分享: 圖片不要超過 1Mb。 清晰明亮(辨識不佳,就會胡說八道) jpg,png可以 我無償分享,只求大家繼續分享他人,並回貼自己的結果在留言,回饋我使用心得,感恩 ✨ 強大功能一次看 解題與說明: 快速解析題目重點 提供詳細解題步驟 附上教學建議和知識點說明 生成類似題: 自動產生相似程度的練習題 調整難度層次更靈活 幫助學生充分練習 錯誤分析: 預測常見迷思概念 分析可能的答錯原因 提供針對性的教學建議 🌟 獨特優勢 雙重輸入模式: 直接上傳題目圖片 複製貼上題目文字 靈活切換最便利 人性化界面: 簡潔清晰的操作介面 即時圖片預覽功能 直覺操作零學習曲線 即時回饋: 快速生成分析結果 完整且有條理的解說 適合課前備課和課後檢討 📱 使用教學 步驟1:選擇輸入方式 點擊「上傳圖片」或「輸入文字」 支援拖曳上傳圖片 可即時預覽確認 步驟2:輸入題目內容 拍照上傳紙本題目 或直接貼上題目文字 系統自動識別處理 步驟3:選擇分析模式 「解題與說明」適合理解題目 「生成類似題」助於練習 「錯誤分析」提升教學質量 💡 實用場景 課前備課 快速掌握題目重點 預先了解學生可能遇到的困難 準備更有針對性的教學內容 課堂教學 即時生成練習題 靈活調整教學進度 提供多樣化的例題 課後輔導 分析學生常見錯誤 提供個別化指導建議 追蹤學習成效 ✅ 特點 節省備課時間 快速生成教材和練習題 減少重複性工作 騰出更多時間關注學生 提升教學品質 更全面的題目解析 更有系統的教學建議 更準確的錯誤預測 學生反應佳 解說清晰易懂 練習題難度適中 提高學習興

【Puti學生個人成績查詢系統 V3.6】個人成績顯示頁面新增「班級」

  檔案連結: V3.6  https://docs.google.com/spreadsheets/d/1oKkG2L4qUZWfO9CcZWepDvmQYkJHMAlP9nsxzNnVWfc/edit?usp=sharing V3.5  https://docs.google.com/spreadsheets/d/1k9E8JKNfwDHJtF6LiE3tXN6JiCZOTIwahWZFec4cWaI/edit?usp=sharing 其他詳細說明和教學請詳閱前兩版,不再贅述 V2.0  https://clongwh.blogspot.com/2024/10/v20.html V1.0  https://clongwh.blogspot.com/2024/10/blog-post.html 黃老師其他好用工具  https://sites.google.com/view/aiteachtools

【Puti學生個人成績查詢系統 V3.5】打造免費便利的數位化成績管理方案

在數位化教學的時代,如何讓學生和家長便利地查詢成績,同時確保資料安全,一直是教育工作者關注的議題。今天要為各位介紹一個基於Google Apps Script(GAS)開發的「Puti學生個人成績查詢系統」,這是一個完全免費、安全且容易部署的解決方案。

【學生個人成績查詢系統Q&A】請問被擋/GOOGLE說會共享雲端的相關資料

  這個警告是因為 Google Apps Script 應用程式尚未通過 Google 的 OAuth 驗證程序。解決方法有以下幾種: 繼續使用(適合內部測試): 點擊「Advanced」(進階) 選擇「Go to [您的應用程式名稱] (unsafe)」 點選「Allow」(允許)來繼續使用 正式解決方案(推薦): markdown 複製 1. 前往 Google Cloud Console (https://console.cloud.google.com/) 2. 選擇您的專案 3. 到「API 和服務」→「OAuth 同意畫面」 4. 設定應用程式資訊: - 選擇使用者類型(內部/外部) - 填寫應用程式名稱 - 添加授權網域 - 設定應用程式首頁 5. 設定範圍(Scopes) 6. 添加測試使用者 限制使用範圍: 如果是學校或組織內部使用 將部署設定為「只限組織內部使用者存取」 臨時解決方案: 將程式碼複製給其他使用者 讓他們自行部署使用 ⚠️ 建議作法: 組織內部使用 複製 - 使用組織的 Google Workspace 帳戶 - 設定為內部應用程式 - 限制只有組織成員可存取 對外服務使用 複製 - 完成 Google OAuth 驗證 - 設定適當的應用程式資訊 - 通過 Google 安全審查 測試階段 複製 - 添加特定測試使用者 - 使用進階選項繼續測試 - 待功能確認後再進行驗證 🔒 安全注意事項: 確保應用程式只請求必要的權限 定期檢查存取權限設定 移除不需要的使用者存取權

【學生個人成績查詢系統Q&A】如果使用者對工作表改名或增加,網頁會出現嗎?還是需要重新部署?

 工作表的更動會影響網頁運作,讓我詳細說明不同情況的處理方式: 📊 工作表更動的影響: 更改工作表名稱 會導致網頁無法正常運作 因為程式碼中的工作表名稱參照已失效 需要修改程式碼並重新部署 新增工作表 如果新工作表沒有被程式碼引用,不影響現有功能 如果要在網頁中顯示新工作表資料,需要修改程式碼 調整欄位 更改欄位名稱會影響程式運作 新增/刪除欄位需要更新程式碼 🔧 解決步驟: 修改工作表名稱後 javascript 複製 // 在 Code.gs 中更新對應的工作表名稱 function getData ( ) { var ss = SpreadsheetApp.getActiveSpreadsheet(); // 更新以下工作表名稱 var sheet1 = ss.getSheetByName( '新工作表名稱1' ); var sheet2 = ss.getSheetByName( '新工作表名稱2' ); // ...其餘程式碼 } 新增工作表時 javascript 複製 // 添加新工作表的處理函數 function getNewSheetData ( ) { var ss = SpreadsheetApp.getActiveSpreadsheet(); var newSheet = ss.getSheetByName( '新工作表名稱' ); var data = newSheet.getDataRange().getValues(); return data; } 修改 HTML 對應部分 html 複製 <!-- 在 Index.html 中添加新的顯示區域 --> < div class = "new-sheet-section" > < h3 > 新工作表資料 </ h3 > < div id = "newSheetData" > </ div > </ div > 重新整理 新分頁 分享 控制台 關閉控制台 📝 建

【學生個人成績查詢系統Q&A】請問iPhone 使用safari開啟網頁都會顯示無法開啟此檔案,必須使用chrome或是safari的私密瀏覽才能看到網頁,這可能是什麼問題?如何解決?

 這是 Safari 瀏覽器的安全性設定和 Cookie 問題,讓我為您說明原因和解決方法: 🔍 問題原因: Safari 預設的嚴格隱私設定可能阻擋了 Google 的第三方 Cookie Safari 可能儲存了錯誤的快取或 Cookie Google 驗證需要第三方 Cookie 支援 ✅ 解決方案(由簡單到進階): 方案一:調整 Safari 設定 開啟 iPhone 的「設定」 往下滾動找到「Safari」 關閉「阻擋跨網站追蹤」 關閉「防止跨網站追蹤」 重新開啟 Safari 試試 方案二:清除 Safari 快取 開啟 iPhone 「設定」 找到「Safari」 點選「清除歷程記錄和網站資料」 確認清除 重新開啟網頁 方案三:修改網頁程式碼 在 HTML 檔案的 head 區段加入: html 複製 < meta name = "viewport" content = "width=device-width, initial-scale=1" > < meta name = "apple-mobile-web-app-capable" content = "yes" > < meta name = "apple-mobile-web-app-status-bar-style" content = "black" > 重新整理 新分頁 分享 控制台 關閉控制台 方案四:調整部署設定 開啟指令碼編輯器 在 Code.gs 中加入: javascript 複製 function doGet ( e ) { var template = HtmlService.createTemplateFromFile( 'Index' ); var html = template.evaluate() .setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL) .addMetaTag( 'viewport' ,