|
1 | | -## Usage |
| 1 | +# 📅 Moodle to Google Calendar Extension |
2 | 2 |
|
3 | | -``` |
| 3 | +這是一個用於將 CCU(中正大學)Moodle 上的作業或行事曆事件,一鍵匯出至 Google Calendar 的 Chrome/Edge 擴充功能。 |
| 4 | +可選擇匯出 `.ics` 檔案下載,或直接自動授權後匯入 Google 行事曆。 |
| 5 | + |
| 6 | +> 幫助學生更有效管理 Moodle 上的課業與繳交時程。 |
| 7 | +
|
| 8 | +--- |
| 9 | + |
| 10 | +## 🚀 功能特色 |
| 11 | + |
| 12 | +- 🔍 自動抓取 Moodle 課程中的行事曆事件(需登入) |
| 13 | +- 📥 支援下載 `.ics` 檔案,可匯入至任何行事曆 App |
| 14 | +- 📆 可直接登入 Google 帳戶,將事件自動新增至 Google Calendar |
| 15 | +- 🖱️ 操作簡單,一鍵完成 |
| 16 | + |
| 17 | +--- |
| 18 | + |
| 19 | +## 🛠 技術架構 |
| 20 | + |
| 21 | +- Chrome Extension (Manifest V3) |
| 22 | +- Content Script + Popup UI |
| 23 | +- Tailwind CSS for styling |
| 24 | +- Vite 作為打包工具 |
| 25 | +- Google OAuth(`chrome.identity` + `launchWebAuthFlow`) |
| 26 | +- ESLint + Prettier 做為開發輔助 |
| 27 | + |
| 28 | +--- |
| 29 | + |
| 30 | +## 📦 安裝與使用 |
| 31 | + |
| 32 | +### 安裝依賴套件 |
| 33 | + |
| 34 | +```bash |
4 | 35 | npm install |
5 | 36 | ``` |
6 | 37 |
|
7 | | -``` |
| 38 | +--- |
| 39 | + |
| 40 | +### 建置專案 |
| 41 | + |
| 42 | +```bash |
8 | 43 | npm run build |
9 | 44 | ``` |
10 | 45 |
|
11 | | -## Tailwind hotfix |
| 46 | +產出可安裝的 extension 專案在 `dist/` 目錄中,可透過 Chrome 擴充功能手動載入。 |
12 | 47 |
|
13 | | -``` |
| 48 | +--- |
| 49 | + |
| 50 | +### Tailwind 修復樣式(可選) |
| 51 | + |
| 52 | +```bash |
14 | 53 | npm run hotfixcss |
15 | 54 | ``` |
16 | 55 |
|
17 | | -## eslint |
18 | | -``` |
19 | | -npm run lint |
20 | | -``` |
| 56 | +在樣式未正常更新或 Tailwind 出現異常時手動執行。 |
| 57 | + |
| 58 | +--- |
| 59 | + |
| 60 | +### 程式碼檢查與格式化 |
21 | 61 |
|
22 | | -## format |
| 62 | +```bash |
| 63 | +npm run lint # 使用 ESLint 檢查語法 |
| 64 | +npm run format # 使用 Prettier 自動格式化程式碼 |
23 | 65 | ``` |
24 | | -npm run format |
25 | | -``` |
| 66 | + |
| 67 | +--- |
| 68 | + |
| 69 | +## 📚 使用說明 |
| 70 | + |
| 71 | +1. 登入 Moodle(目前支援中正大學 https://ecourse2.ccu.edu.tw/) |
| 72 | +2. 點擊瀏覽器右上角 Extension 圖示,開啟插件視窗 |
| 73 | +3. 選擇年份與月份,點擊: |
| 74 | + - 「📥 取得行事曆」:下載 `.ics` 檔案 |
| 75 | + - 「📤 匯入行事曆」:登入 Google 並自動新增至 Google Calendar |
| 76 | + |
| 77 | +--- |
| 78 | + |
| 79 | +## 🔐 授權與隱私 |
| 80 | + |
| 81 | +- 本插件僅在使用者當前登入 Moodle 且主動點擊下操作才會擷取資料 |
| 82 | +- Google OAuth 權限僅限寫入行事曆事件,不會存取其他個資 |
| 83 | +- 資料僅存在本地,無傳送至第三方伺服器 |
| 84 | + |
| 85 | +--- |
| 86 | + |
| 87 | +## 🧪 瀏覽器支援狀況 |
| 88 | + |
| 89 | +| 瀏覽器 | 支援情況 | 備註 | |
| 90 | +|--------|----------|------| |
| 91 | +| Chrome | ✅ 完整支援 | 使用 `getAuthToken()` 快速登入 | |
| 92 | +| Edge | ✅ 部分支援 | 改用 `launchWebAuthFlow()`,需初次登入後允許 | |
| 93 | +| Brave / Others | ⚠️ 未測試 | 如有需求可補充支援判斷邏輯 | |
| 94 | + |
| 95 | +--- |
| 96 | + |
| 97 | +## 🙌 貢獻與反饋 |
| 98 | + |
| 99 | +歡迎 issue/PR! |
| 100 | +如果你是 CCU 學生,覺得這個擴充功能有幫助,也歡迎幫我按星 🌟 或留言回饋 🙏 |
0 commit comments