# NotebookLM / Gemini 到 Google Workspace 行政專案工作流

這個 repo 是一套「課程 + 工具 + 可部署範本」：前半段從一般教師使用 NotebookLM 與 Gemini 整理資料、產出教學與行政文件開始；後半段延伸到學校行政承辦情境，使用 Google Forms、Sheets、Drive、Docs、Calendar、Gmail 與 Apps Script 建立可追蹤的行政專案工作流。

它可以作為研習講義、校內工作坊教材，也可以作為回校後建置第一版 Google Workspace 行政流程的實作基礎。

## Repo 定位

本 repo 同時保留兩條主線：

- **教學主線**：從一般教師的 NotebookLM / Gemini 使用情境出發，練習資料整理、課程準備、行政文字、成果報告與知識庫建立。
- **系統主線**：把行政專案流程落到 Google Workspace，透過 Forms、Sheets、Drive、Docs、Calendar、Gmail 與 Apps Script 建立可部署的半自動工作流。

換句話說，它不是單純的程式碼 repo，也不是單純的講義資料夾，而是一套從「會用 AI 工具整理工作」走到「能把行政流程固定下來」的完整課程與工具包。

## 適用情境

- 教師想用 NotebookLM / Gemini 整理課程資料、行政資料或成果素材。
- 主任、組長或行政承辦人想把公文、活動、會議與成果資料整理成同一個專案脈絡。
- 收到公文後，需要建立可追蹤的行政專案。
- 行政專案有多個階段日期，例如報名截止、採購期限、成果送出期限、結案檢討日。
- 承辦人需要固定的資料夾、待辦表、成果檢核表與提醒機制。
- 學校希望先用 Google Workspace 建立低成本、可調整的第一版流程。

## 為什麼適合學校行政

- **教育行政情境**：針對公文、活動、計畫、成果、會議、照片與附件等常見校務工作設計。
- **一案一資料夾**：每個行政專案自動建立標準 Drive 資料夾結構，避免檔案散落在個人雲端硬碟或通訊軟體。
- **一案一紀錄**：用 Sheets 追蹤承辦人、日期、狀態、待辦、成果檢核與階段日期紀錄。
- **一案多日期**：活動日、報名截止日、成果繳交日、經費核銷日、結案檢討日都能持續加入 Calendar。
- **一案一知識庫**：專案資料整理完成後，可放入 NotebookLM 或 Gemini，協助理解脈絡、整理公文要求與產出草稿。
- **成果報告導向**：不是只管理過程，而是從一開始就保留成果報告需要的資料、附件、照片與檢核紀錄。

## 主要功能

### 課程與教材

- 教師 NotebookLM / Gemini 基礎工作流。
- 行政公文到成果報告的進階工作流。
- Google Workspace 行政專案流程化講義。
- 回校建置用的詳細落地實作手冊。

### Workspace 自動化

- `公文專案啟動表`：建立新行政專案骨架。
- `專案階段日期新增表`：替既有專案新增階段日期、待辦與 Calendar 提醒。
- `行政專案總控表`：集中管理專案編號、負責人、資料夾、待辦表與狀態。
- `專案階段日期紀錄`：保留階段日期、提醒設定、Calendar 事件 ID 與處理狀態。
- 每個專案自動建立標準 Drive 子資料夾、Docs 專案紀錄、Sheets 待辦追蹤表、成果檢核表。

## 系統架構

```mermaid
flowchart LR
  A["公文專案啟動表<br>Google Forms"] --> B["onFormSubmit<br>Apps Script"]
  B --> C["Drive<br>專案資料夾與子資料夾"]
  B --> D["Docs<br>專案紀錄"]
  B --> E["Sheets<br>待辦追蹤與成果檢核"]
  B --> F["Calendar<br>初始提醒"]
  B --> G["Gmail<br>通知承辦人"]
  B --> H["行政專案總控表"]

  I["專案階段日期新增表<br>Google Forms"] --> J["onMilestoneFormSubmit<br>Apps Script"]
  J --> H
  J --> K["專案階段日期紀錄"]
  J --> E
  J --> F
  J --> G
```

## 5 分鐘快速安裝

1. 在 Google Drive 建立一個「行政專案工作流」總資料夾。
2. 複製總資料夾網址中的 folder ID。
3. 開啟 `generate_apps_script_installer.php`，填入 Drive folder ID、Calendar ID 與管理者 Email。
4. 把產生的程式碼貼到新的 Google Apps Script 專案。
5. 執行 `setupAdminWorkflow()`，完成授權後到 Logger 複製兩張表單網址。

完整設定與測試請看 [docs/install.md](docs/install.md) 與 [docs/testing.md](docs/testing.md)。

## 專案檔案

```text
.
├─ README.md
├─ LICENSE
├─ CHANGELOG.md
├─ src/
│  └─ Code.gs
├─ docs/
│  ├─ install.md
│  ├─ workflow.md
│  ├─ form-fields.md
│  ├─ testing.md
│  ├─ privacy.md
│  ├─ troubleshooting.md
│  └─ publish-github.md
├─ basic-lesson/
├─ advanced-lesson/
├─ generate_apps_script_installer.php
├─ index.html
├─ admin_ai_workflow_detailed_implementation.html
└─ notebooklm_gemini_admin_workflow_agent_auto_v4.html
```

## 快速開始

1. 在 Google Drive 建立一個總資料夾。
2. 開啟 `generate_apps_script_installer.php`，填入 Drive 總資料夾 ID、Calendar ID 與管理者 Email。
3. 複製產生的 Apps Script 程式碼，貼到新的 Google Apps Script 專案。
4. 執行 `setupAdminWorkflow()`。
5. 從 Logger 取得兩張表單網址：
   - `公文專案啟動表`
   - `專案階段日期新增表`

詳細步驟請看 [docs/install.md](docs/install.md)。

## 重要設計原則

`公文專案啟動表` 不處理公文附件上傳。它只負責建立專案骨架。專案建立完成後，承辦人再把公文與附件自行上傳到專案資料夾中的 `00_原始公文與附件`。

這樣可以避免表單檔案上傳權限、暫存檔案連結、檔案 ID 解析等問題，流程也更符合行政現場。

## 人工確認邊界

本系統只做建檔、追蹤與提醒，不自動做以下事項：

- 正式公告
- 經費核銷
- 成果送出
- 對外通知
- 法規或個資判斷
- 校內簽核與核准

## 注意

請勿把真實 Drive Folder ID、Calendar ID、學校帳號、學生資料、公文附件或任何個資提交到公開 GitHub repo。
