commit a97fad137763e600e73939f87c577268bc70f5ce Author: Chang Shu-Huai Date: Mon Feb 23 10:24:08 2026 +0000 today process: 2026-02-23 diff --git a/SOP/MIS/QRCode 產生和課務行政流程.md b/SOP/MIS/QRCode 產生和課務行政流程.md new file mode 100644 index 0000000..08b17f5 --- /dev/null +++ b/SOP/MIS/QRCode 產生和課務行政流程.md @@ -0,0 +1,63 @@ + +## 登入上課日期 + +### 磁卡 +![[1.網站相關SOP-18.png]] + +https://class.aiacademy.tw/enter_logs/admin/kind.php 新增磁卡類型 + +填入課程名稱之後,看下面現存 kind 是否有增加 +沒有的話手動加後綴字 + +![[1.網站相關SOP-15.png]] + +https://class.aiacademy.tw/enter_logs/admin/set_class_dates.php 設定上課日期 + +![[1.網站相關SOP-16.png]] + +#### database:class_aiacademu_tw ->table:class_dates 登入時數 +這個去 [Adminer](https://aiacademy.tw/adminer_73625988/adminer-4.8.1-mysql.php?server=mysql8&username=root&db=class_aiacademy_tw&select=class_dates) 做 + +預設是 7.5 ,若要改成 7 小時就手動改 + +![[1.網站相關SOP-17.png]] + +## 產生QRcode、學員卡片ID + +1. 向同仁取得學員資料(會是一個試算表,範例:https://docs.google.com/spreadsheets/d/1mlbYSDINhR6w1G_Gr9MJDnMZvhFEUGk5/edit#gid=4295135502 檢查標題欄位( 課程代號,學號,姓名,手機,信箱 ) + 1. 1-1, 如果沒有提供電話、EMail ,產生一組 99 開頭的電話(以前炳勛是產生 09 開頭的假電話,雖然因為最後都會 md5 跟學員混合加密用,所以重覆沒關係,但我覺得還是能一眼看出是假電話比較好,就加了這個規則)[[PM/epics/優化開課、網站相關流程.md#2026-01-12 修改事項|這邊連過去]] + 2. 改成 99 開頭的用這個函式: `="99"®EXEXTRACT(B2, "\d{6}")&ROUND(RAND()*89+10)` ,產生完之後要複製 Ctl 貼上一次,不然每次動一下都會 random 末兩碼 +2. 下載成csv檔案 +3. 修改AIA工作區 `/QRcode/generateQRCode.py`(新做法:下指令 `python generateQRCode.py AB151` +4. 把QR Code連結跟 QRcode ID 填回試算表 +5. 把 python 產生的資料(QRcode圖檔,outData,outData4enterlog) 放到試算表所在的共用資料夾 +6. 把 QR Code 放到網站class_aiacademy_tw/assets/qrcode 和課程的雲端硬碟 + +![[1. 網站相關SOP-3.png]] +這個通常會傳給廠商製作吊牌 +7. 掃描 QR Code 驗證 連結位置 及 顯示的 QR Code ID 是否正確 +8. 把卡片資料上傳 https://class.aiacademy.tw/enter_logs/admin/cards.php +這頁建立的是 `enter_cards` 這個表格的資料,可以用 `SELECT * FROM 'enter_cards' WHERE 'school_no' LIKE '%AB151%' LIMIT 50` +這邊把第二個 csv 檔貼到這邊 +![[1. 網站相關SOP-2.png]] +9. (已更新,在 cards.php 可勾選少掉此步驟)設定每張卡片的類型 https://class.aiacademy.tw/enter_logs/admin/card_kind.php +這邊會建立資料到 `enter_card_kind` 資料表,這個表只有用到 card_id <=> kind_id ,其中 kind_id 前面有建過,每堂課一個,可以[這裡](https://class.aiacademy.tw/enter_logs/admin/card_kind.php)查最新的 +![[1. 網站相關SOP.png]] +10. (已更新,在 cards.php 可勾選少掉此步驟)設定每張卡片ID 所對應的內碼 (同ID) https://class.aiacademy.tw/enter_logs/admin/card_inputs.php ,目前就是 ID 對 ID + 這裡資料表是對應到 `enter_card_inputs` +![[1. 網站相關SOP-1.png]] + +行政會用這個去掃 QRCode 做測試 +https://class.aiacademy.tw/enter_logs/bb2qrcode/index.html + +#### 刪除刷卡測試資料 +到 [Adminer](https://aiacademy.tw/adminer_73625988/adminer-4.8.1-mysql.php?server=mysql8&username=root&db=class_aiacademy_tw&select=enter_logs&page=last) 刪除行政測試的資料,在 `event_log` 資料表 + +#### 註記,以前會設定刷卡寄信,但很久沒做了 + +``` +# Check-in Notification +3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 8-20 * * 3,4,5,6,7 docker exec python2.7 python /data/www/class.aiacademy.tw/__crontab__/crontab__enter_logs_notify.py >> /tmp/cron_Checking_Notification.log 2>&1 +``` + +以前課程比較長,學員希望都能收到打卡紀錄。現在課程比較短(大概 2,3 堂而已)就沒這個需求 \ No newline at end of file diff --git a/SOP/MIS/網站相關SOP.md b/SOP/MIS/網站相關SOP.md index 3d53536..bda38c1 100644 --- a/SOP/MIS/網站相關SOP.md +++ b/SOP/MIS/網站相關SOP.md @@ -69,69 +69,6 @@ https://edm.aiacademy.tw/tools/view_signup_number/ https://edm.aiacademy.tw/tools/view_signup_number/index.php -## 登入上課日期 - -### 磁卡 -![[1.網站相關SOP-18.png]] - -https://class.aiacademy.tw/enter_logs/admin/kind.php 新增磁卡類型 - -填入課程名稱之後,看下面現存 kind 是否有增加 -沒有的話手動加後綴字 - -![[1.網站相關SOP-15.png]] - -https://class.aiacademy.tw/enter_logs/admin/set_class_dates.php 設定上課日期 - -![[1.網站相關SOP-16.png]] - -#### database:class_aiacademu_tw ->table:class_dates 登入時數 -這個去 [Adminer](https://aiacademy.tw/adminer_73625988/adminer-4.8.1-mysql.php?server=mysql8&username=root&db=class_aiacademy_tw&select=class_dates) 做 - -預設是 7.5 ,若要改成 7 小時就手動改 - -![[1.網站相關SOP-17.png]] - -## 產生QRcode、學員卡片ID - -1. 向同仁取得學員資料(會是一個試算表,範例:https://docs.google.com/spreadsheets/d/1mlbYSDINhR6w1G_Gr9MJDnMZvhFEUGk5/edit#gid=4295135502 檢查標題欄位( 課程代號,學號,姓名,手機,信箱 ) - 1. 1-1, 如果沒有提供電話、EMail ,產生一組 99 開頭的電話(以前炳勛是產生 09 開頭的假電話,雖然因為最後都會 md5 跟學員混合加密用,所以重覆沒關係,但我覺得還是能一眼看出是假電話比較好,就加了這個規則)[[PM/epics/優化開課、網站相關流程.md#2026-01-12 修改事項|這邊連過去]] - 2. 改成 99 開頭的用這個函式: `="99"®EXEXTRACT(B2, "\d{6}")&ROUND(RAND()*89+10)` ,產生完之後要複製 Ctl 貼上一次,不然每次動一下都會 random 末兩碼 -2. 下載成csv檔案 -3. 修改AIA工作區 `/QRcode/generateQRCode.py` -4. 把QR Code連結跟 QRcode ID 填回試算表 -5. 把 python 產生的資料(QRcode圖檔,outData,outData4enterlog) 放到試算表所在的共用資料夾 -6. 把 QR Code 放到網站class_aiacademy_tw/assets/qrcode 和課程的雲端硬碟 - -![[1. 網站相關SOP-3.png]] -這個通常會傳給廠商製作吊牌 -7. 掃描 QR Code 驗證 連結位置 及 顯示的 QR Code ID 是否正確 -8. 把卡片資料上傳 https://class.aiacademy.tw/enter_logs/admin/cards.php -這頁建立的是 `enter_cards` 這個表格的資料,可以用 `SELECT * FROM `enter_cards` WHERE `school_no` LIKE '%AB151%' LIMIT 50` -這邊把第二個 csv 檔貼到這邊 -![[1. 網站相關SOP-2.png]] -9.設定每張卡片的類型 https://class.aiacademy.tw/enter_logs/admin/card_kind.php -這邊會建立資料到 `enter_card_kind` 資料表,這個表只有用到 card_id <=> kind_id ,其中 kind_id 前面有建過,每堂課一個,可以[這裡](https://class.aiacademy.tw/enter_logs/admin/card_kind.php)查最新的 -![[1. 網站相關SOP.png]] -9. 設定每張卡片ID 所對應的內碼 (同ID) https://class.aiacademy.tw/enter_logs/admin/card_inputs.php ,目前就是 ID 對 ID - 這裡資料表是對應到 `enter_card_inputs` -![[1. 網站相關SOP-1.png]] - -行政會用這個去掃 QRCode 做測試 -https://class.aiacademy.tw/enter_logs/bb2qrcode/index.html - -#### 刪除刷卡測試資料 -到 [Adminer](https://aiacademy.tw/adminer_73625988/adminer-4.8.1-mysql.php?server=mysql8&username=root&db=class_aiacademy_tw&select=enter_logs&page=last) 刪除行政測試的資料,在 `event_log` 資料表 - -#### 註記,以前會設定刷卡寄信,但很久沒做了 - -``` -# Check-in Notification -3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 8-20 * * 3,4,5,6,7 docker exec python2.7 python /data/www/class.aiacademy.tw/__crontab__/crontab__enter_logs_notify.py >> /tmp/cron_Checking_Notification.log 2>&1 -``` - -以前課程比較長,學員希望都能收到打卡紀錄。現在課程比較短(大概 2,3 堂而已)就沒這個需求 - ## mgr 站會開學員專區 https://mgr.aiacademy.tw/mgr/admin/ diff --git a/attachment/2026-02-23-1.png b/attachment/2026-02-23-1.png new file mode 100644 index 0000000..d0a6b5b Binary files /dev/null and b/attachment/2026-02-23-1.png differ diff --git a/diary/2026/02/2026-02-23.md b/diary/2026/02/2026-02-23.md new file mode 100644 index 0000000..ee0fa73 --- /dev/null +++ b/diary/2026/02/2026-02-23.md @@ -0,0 +1,112 @@ +> [!NOTE] 每天注意事項 +> +> 每天上班前在路上做的事: +> - 想想今天即將要進行的工作內容 +> +> 每天下班前 30 分鐘做的事: +> * 整理今日結果+寫個 diff 出來存到 .diff 資料夾(daily-commit skill) +> * 看今天的成果是否要 Deliever 給 Richie + + +> [!Danger] 今日工項 +> ### + + +## Tasks +### ISO27001 +```tasks +path includes epics/ISO27001 +not done +``` + +```tasks +path includes epics/MIS +not done +due on or before today +group by heading +``` + +### [[EN 英文網站]]事項 +```tasks +path includes PM/epics/EN +not done +``` + +### [[AIATC 認證網站建置]]的工作事項 +```tasks +path includes PM/epics/AIATC +not done +``` + +### 活動網站 +```tasks +path includes PM/epics/活動網站 +not done +``` + +## Note + +- [x] 寶云的素養認證實作班第四期建立 QRCode ✅ 2026-02-23 13:50 + - [用到的 Google Drive](https://drive.google.com/drive/folders/1Pi-QEbIVMk6OYSlDtvS81bwjOL3UrFrN) + - 相關[試算表](https://docs.google.com/spreadsheets/d/1Pq3z_yaROr7jPpxn-Huc5oIoRcGPccs4/edit?gid=578432901#gid=578432901) +- [x] 夏伶指派三竹_G5-第一梯次 QRCode 的工作 ✅ 2026-02-23 16:42 + - [試算表](https://docs.google.com/spreadsheets/d/1qn1f_VzCy-sMUjGiL3_Q6Zms4l-1Co0YtelJlwHLNjQ/edit?gid=1058349903) +- [x] 寶云指派協助更新[G7 招生簡章](https://docs.google.com/document/d/16X-nJttxJkADPho2LWKEWfpZblwbIryy/edit) ✅ 2026-02-23 16:10 +- [x] 于慧這邊也有跟寶云一樣要更新的地方 ✅ 2026-02-23 17:04 +- [x] 突然插入自己想做的:用 ActivityWatch 看一天的工作內容,開發本專案 `watchActivity.py`(workTrace) ✅ 2026-02-23 + - 做法: + - 1. 寫了一個整理 activityWatch log 的 python + - 2. 用 Claude 分析 ActivityWatch log + - 3. 想辦法把這件事寫成常態 + +今天的殘業: +- AIATC 要啟動 +- EN 站要有進度,整理 2025 新聞和活動 +- ISMS 跟廠商部份要進行,不要被動等廠商來催 + +特別事項 +* 重點發現: + * GCP 中,在組織 sted.tw 中把使用者加入到「擁有者」權限,就能看到所有專案 +* 修正了 enter_log/admin/cards.php ,加上在輸入掃QRCode 資料時可同時加入 kind, card_kind, card_input 等資訊,減少以後產生 QRCode 資料花費時間 +* ![[2026-02-23-1.png]] +## Log +- [開工時間::09:32] + +| time | 預計 | 實際 | +| :---- | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | +| 09-10 | 早餐+QRCode 準備 | | +| 10-11 | QRCode | 產生一部份的 code、產生專案
WP 資料上架提早處理 | +| 11-12 | WP網站資料上架 | | +| 12-13 | 午餐 | | +| 13-14 | 處理 QRCode | QRCode 的動作超複雜。交付給寶云。 | +| 14-15 | [MIS]檢查[GCP裡面的專案清理](https://console.cloud.google.com/cloud-resource-manager?hl=zh-tw&orgonly=true&supportedpurview=organizationId) | - Google Cloud「AIA_Infuse」安全性深入分析(IAM 與管理)
- 用 Grok 查詢 AIA-ISO27001 合規問題 | +| 15-16 | | 持續開發 `cards.php`、`kind.php`、`card_inputs.php`(class.aiacademy.tw SSH: Liverserver2024)
- 處理「三竹_G5-第二梯次學員名單」Google 試算表 | +| 16-17 | | - `_aiacademy_helper.php` 開發(約 11 分鐘,最長單一任務)
- 編輯「LLM 初階班第 11 期招生簡章」Google 文件
- WordPress「經理人 AI PM 班 (第1期)」頁面調整 | +| 17-18 | | - 繼續完善 `watchActivity.py`(workTrace 本專案)
- 更新 WordPress「經理人 AI PM 班 (第1期)」 | + +## AI 總結今日報告 + +### 今日變更摘要 + +**SOP 重整** +- **新增獨立文件**:[QRCode 產生和課務行政流程.md](SOP/MIS/QRCode%20產生和課務行政流程.md) — 從 網站相關SOP.md 抽出,並補充改進說明 + - 更新 step 3 指令方式(`python generateQRCode.py AB151`) + - step 9 改用 cards.php 勾選方式(可省略 card_kind 和 card_inputs 的獨立設定) +- **網站相關SOP.md**:移除已獨立出去的 QRCode 段落 + +**程式碼文件補充** +- **20251205-AIacademy.tw程式檢查.md**:為 aiacademy.tw 主機的目錄清單補充詳細說明(用途、資安注意事項、建議刪除項目) + +### 今日工作重點 +- 產生寶云「素養認證實作班第四期」QRCode(完成,13:50) +- 產生夏伶「三竹_G5-第一梯次」QRCode(完成,16:42) +- 協助寶云更新 G7 招生簡章(完成,16:10) +- 協助于慧更新相同內容(完成,17:04) +- 開發 `cards.php`、`kind.php`、`card_inputs.php`(class.aiacademy.tw) +- 開發 `_aiacademy_helper.php` +- 更新 WordPress「經理人 AI PM 班 (第1期)」頁面 +- 開發 `watchActivity.py`(workTrace)— 使用 ActivityWatch + Claude 分析每日工作 + +### 今天特別的事 +- **GCP 重點發現**:在組織 sted.tw 中把使用者加入「擁有者」權限,即可看到所有專案 +- **cards.php 重大改進**:加入掃 QRCode 資料時,可同時設定 kind、card_kind、card_inputs,大幅減少產生 QRCode 所需步驟 diff --git a/note/20251205-AIacademy.tw程式檢查.md b/note/20251205-AIacademy.tw程式檢查.md index 7772ded..95d2254 100644 --- a/note/20251205-AIacademy.tw程式檢查.md +++ b/note/20251205-AIacademy.tw程式檢查.md @@ -45,61 +45,61 @@ Nov 1 2017 ajax-subscribe.php // ⚠ `ls -lt | grep ^d` ``` -Dec 5 13:28 wp-content // 🈶 -Aug 8 21:30 img // 🈶 -Jul 30 19:54 wp-includes // 🈶 -Feb 5 2025 alumni // 看起來是「在台灣」書,太大,已移出資料夾 -Feb 5 2025 ai-in-taiwan // 看起來是「在台灣」書 -Nov 21 2024 wp-admin // 🈶 -Oct 30 2024 __crontab__ -Oct 30 2024 __internalapi__ -Oct 23 2024 google_apiclient -Oct 23 2024 mvc -Oct 22 2024 adminer_73625988 -Aug 8 2024 Vcache-aiaaia -Jul 9 2024 swc // https://aiacademy.tw/swc/ -Apr 19 2024 AIA_QA -Apr 16 2024 j -Apr 3 2024 ajax -Nov 11 2023 cache_testing -Nov 4 2023 c -Oct 26 2023 writer -Oct 26 2023 files -Feb 10 2023 wp-admin_bk -Jan 11 2023 ip -Mar 27 2022 event // 看起來是「在台灣」書 -Mar 19 2022 1admission-mgr-tc -Mar 19 2022 admission-mgr-tc -Dec 18 2021 manufacturing-tc2 -Nov 20 2021 lib -Oct 5 2021 assets -Jul 21 2021 omo2 -Jul 21 2021 omo_bk -Jun 26 2021 deprecated_liberal -Jun 19 2021 liberal -Mar 6 2021 advisory -Feb 6 2021 webapi -Dec 12 2020 wh -Dec 12 2020 wp-includes_bk -Nov 26 2020 SOP -Nov 1 2020 mydata -Oct 4 2020 stedglogin -Sep 9 2020 googlelogin -Sep 8 2020 check_signup -Aug 29 2020 staff -Jul 25 2020 api -Jun 8 2020 node_modules -Feb 25 2020 seo_keywords -Feb 1 2020 test_htaccess_referrer -Dec 24 2019 vendor -Nov 28 2019 _match_email_ -Nov 22 2019 unit_test -Nov 2 2019 tools -Aug 25 2019 adtraffic -May 3 2019 my_signup -Nov 14 2018 _global_match_email_ -Oct 4 2018 fe -Dec 8 2017 svg +Dec 5 13:28 wp-content // 🈶 WP 主站內容 (主題/外掛/上傳/快取) +Aug 8 21:30 img // 🈶 圖片資源目錄 +Jul 30 19:54 wp-includes // 🈶 WP 核心函式庫 +Feb 5 2025 alumni // 獨立 WP 站 (校友網),含整套 WP 安裝 +Feb 5 2025 ai-in-taiwan // 獨立 WP 站 (AI in Taiwan 書),含整套 WP 安裝 +Nov 21 2024 wp-admin // 🈶 WP 管理後台 +Oct 30 2024 __crontab__ // 排程腳本集 (Python/Node.js):發通知信、快取、磁碟監控 +Oct 30 2024 __internalapi__ // 內部 API:發送企業版/Liberal 版 Email +Oct 23 2024 google_apiclient // Google API 客戶端整合 (Google Sheets, Composer 管理) +Oct 23 2024 mvc // MVC 架構程式碼,分 Enterprise/Liberal 兩套 +Oct 22 2024 adminer_73625988 // ⚠ 資料庫管理工具 Adminer,建議刪除 (資安風險) +Aug 8 2024 Vcache-aiaaia // 主站 Vcache 快取目錄 +Jul 9 2024 swc // https://aiacademy.tw/swc/ 獨立活動/課程頁面 +Apr 19 2024 AIA_QA // 問答資料處理 (Google Sheets),僅單一 PHP 檔 +Apr 16 2024 j // 自訂 JS 資源 (banner/courses/base/vendors 等) +Apr 3 2024 ajax // AJAX 處理,分 enterprise/liberal/frontend_edit 子目錄 +Nov 11 2023 cache_testing // 快取功能測試,建議刪除 +Nov 4 2023 c // CSS 資源目錄 (v2base.css、各頁面 CSS、fonts) +Oct 26 2023 writer // 寫作/編輯功能模組 (IP 限制,edit.php/index.php) +Oct 26 2023 files // 檔案儲存 (PDF/JPG 等上傳媒體) +Feb 10 2023 wp-admin_bk // WP 管理後台備份,建議刪除 +Jan 11 2023 ip // IP 相關工具 (HTTP 狀態碼/curl/sleep 測試,含 vendor) +Mar 27 2022 event // 活動頁面 (含 ai-in-taiwan/epaper/general/st3 等子目錄) +Mar 19 2022 1admission-mgr-tc // 轉址到 /admission-manufacturing-tc,建議改用 .htaccess +Mar 19 2022 admission-mgr-tc // 轉址到 /admission-manufacturing-tc,建議改用 .htaccess +Dec 18 2021 manufacturing-tc2 // 轉址目錄,建議改用 .htaccess +Nov 20 2021 lib // 通用程式庫 (含 securimage 驗證碼) +Oct 5 2021 assets // 靜態資源 (CSS/JS/Bootstrap) +Jul 21 2021 omo2 // OMO 功能第二版 (ai-forum/ai-outlook/ai-plus/cdo-talk) +Jul 21 2021 omo_bk // OMO 功能備份,建議刪除 +Jun 26 2021 deprecated_liberal // 舊版 Liberal WP 站備份,建議刪除 +Jun 19 2021 liberal // 獨立 WP 站 (Liberal 版) +Mar 6 2021 advisory // 顧問服務靜態頁面 (index.html) +Feb 6 2021 webapi // Web API (檔案監控/日曆/新聞),供 crontab 呼叫 +Dec 12 2020 wh // ⚠ phpinfo() 頁面 (info.php),建議刪除 (資安風險) +Dec 12 2020 wp-includes_bk // WP 核心備份,建議刪除 +Nov 26 2020 SOP // 標準作業程序文件 (僅一份 001_new_staff_join.txt) +Nov 1 2020 mydata // 個人資料頁面 (Angular 前端) +Oct 4 2020 stedglogin // Google API 登入模組 +Sep 9 2020 googlelogin // Google 登入整合 +Sep 8 2020 check_signup // 報名狀態檢查 (已棄用),建議刪除 +Aug 29 2020 staff // 員工資訊靜態頁面 +Jul 25 2020 api // 自訂 API 集合 (分類/文章/Google Sheets 等),供 crontab 呼叫 +Jun 8 2020 node_modules // Node.js 依賴套件,可重新安裝 +Feb 25 2020 seo_keywords // SEO 關鍵字管理 API +Feb 1 2020 test_htaccess_referrer // 測試 .htaccess referrer 規則,建議刪除 +Dec 24 2019 vendor // PHP 依賴套件 (Composer) +Nov 28 2019 _match_email_ // Email 匹配功能 (已棄用),建議刪除 +Nov 22 2019 unit_test // 單元測試 (test_bread.php) +Nov 2 2019 tools // 維護工具 (清理/爬蟲/轉址/訂閱/Vimeo 工具) +Aug 25 2019 adtraffic // 廣告流量統計 (admin/ajax/api 子目錄) +May 3 2019 my_signup // 報名/註冊功能頁面 +Nov 14 2018 _global_match_email_ // 全域 Email 匹配 (未測試/未使用),建議刪除 +Oct 4 2018 fe // 前端資源 (Bootstrap/zabuto/CSS/JS) +Dec 8 2017 svg // SVG 圖檔 (logo/banner-text) ```