feat: upgrade AI prompt with professional FITT prescription, fix token truncation and configure auto deploy

This commit is contained in:
Wright (Hermes Agent) 2026-08-24 19:49:02 +08:00
commit b3fdbc7cbf
3 changed files with 1905 additions and 0 deletions

39
README.md Normal file
View file

@ -0,0 +1,39 @@
# 國小學生跳繩運動紀錄與 BMI 智能建議系統 (Rope Helper)
專為台灣國小教師與體育教師量身打造的**純前端跳繩體能分析與 AI 運動處方建議系統**。結合**衛福部國健署兒童生長 BMI 對照常模**、**教育部體育署 SH150 普及化運動指引**與 **Google AI Studio (Gemini)** 免費模型。
---
## 🌟 核心特色
1. **純前端綠色架構**
- 單一獨立網頁檔 `index.html`,無需安裝 Node.js、Python 或架設後端資料庫。
- 所有學生資料均在老師本機瀏覽器內運算解析,確保學童個資安全。
2. **彈性 Excel 匯入與範本下載**
- 支援「學生基本資料」與「跳繩打卡紀錄」雙工作表整合活頁簿或分開上傳。
- 內建標準 Excel 範本下載與智慧欄位名稱對應。
- 預設提供「載入 3 個月示範資料(三年二班 25 位學童連續 90 天打卡數據)」,開箱即用。
3. **衛福部兒童 BMI 常模智能判定**
- 內建台灣 6~12 歲兒童生長標準,依性別與實足年齡精準判定「過輕、正常、過重、肥胖」。
4. **Google AI Studio 免費 API 串接**
- 老師可直接輸入自己的 Google AI Studio 免費 API Key安全儲存於本機 localStorage
- 支援 `gemini-2.5-flash`、`gemini-1.5-flash` 等模型。
- 支援「一鍵全班批量生成(內建 15 RPM 速率防護間隔與即時進度條)」與「個別學生生成/重新生成/文字自訂微調」。
5. **完整報表匯出與家長通知卡列印**
- 支援匯出含原始紀錄、統計分析與 AI 建議之完整 Excel 報告。
- 支援一鍵列印或轉存 PDF 專用之「學生跳繩運動成長卡A4 親職回饋聯版型)」。
---
## 🚀 快速開始使用
1. **直接開啟**
- 在電腦上直接雙擊打開 [index.html](file:///mnt/Project/Rope_hekper/index.html)(建議使用 Google Chrome、Edge 或 Safari 瀏覽器)。
2. **體驗功能**
- 點擊右上角「**載入示範班級資料**」即可立即查看班級數據儀表板與圖表。
3. **設定 AI Studio API Key**
- 點擊右上角「**設定 AI Studio Key**」。
- 前往 [Google AI Studio](https://aistudio.google.com/app/apikey) 免費取得 API Key 貼上並儲存。
- 點擊「**一鍵全班 AI 運動建議生成**」,系統將自動調用 Gemini 為每位學童產生量身打造的跳繩指引。
4. **匯出與列印**
- 點擊「**匯出分析 Excel**」或「**列印運動成長卡**」發放給家長。

62
deploy.sh Executable file
View file

@ -0,0 +1,62 @@
#!/bin/bash
# ==============================================================================
# Rope Helper 自動化部署腳本 (CI/CD Deploy Script)
# 目標:將本專案靜態檔案自動部署至本機 Docker (realm-view / Caddy)
# 服務網址https://ridgerealm.com/rope_helper/
# ==============================================================================
set -e
# 定義顏色
GREEN='\033[0;32m'
SKY='\033[0;36m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color
PROJECT_DIR="/mnt/Project/Rope_hekper"
TARGET_DIR="/mnt/focker/realm-view/public/rope_helper"
HEALTH_CHECK_URL="http://127.0.0.1:3333/rope_helper/"
echo -e "${SKY}======================================================${NC}"
echo -e "${SKY}🚀 開始執行 Rope Helper CI/CD 自動化部署流程...${NC}"
echo -e "${SKY}======================================================${NC}"
# 1. 檢查原始檔案
if [ ! -f "$PROJECT_DIR/index.html" ]; then
echo -e "${RED}❌ 錯誤:找不到來源檔案 $PROJECT_DIR/index.html${NC}"
exit 1
fi
# 2. 確保目標目錄存在
echo -e "${YELLOW}📁 [1/4] 檢查目標伺服器目錄...${NC}"
mkdir -p "$TARGET_DIR"
# 3. 部署同步檔案 (使用 rsync 保持檔案屬性與安全同步)
echo -e "${YELLOW}📦 [2/4] 同步靜態網頁檔案至 Docker Web 目錄...${NC}"
rsync -av --delete \
--exclude=".git" \
--exclude=".github" \
--exclude=".forgejo" \
--exclude="deploy.sh" \
--exclude="*.swp" \
"$PROJECT_DIR/" "$TARGET_DIR/"
# 4. 檔案權限設定
echo -e "${YELLOW}🔒 [3/4] 校正檔案存取權限...${NC}"
chmod -R 755 "$TARGET_DIR"
# 5. 健康檢查 (Health Check)
echo -e "${YELLOW}🩺 [4/4] 執行服務健康狀態檢查...${NC}"
HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" "$HEALTH_CHECK_URL" || echo "000")
if [ "$HTTP_STATUS" -eq 200 ] || [ "$HTTP_STATUS" -eq 304 ]; then
echo -e "${GREEN}✅ 健康檢查通過 (HTTP $HTTP_STATUS)${NC}"
else
echo -e "${YELLOW}⚠️ 內部測試回應碼為 $HTTP_STATUS,但檔案已成功同步。${NC}"
fi
echo -e "${GREEN}======================================================${NC}"
echo -e "${GREEN}🎉 部署完成!${NC}"
echo -e "${GREEN}🌐 網站正式網址https://ridgerealm.com/rope_helper/${NC}"
echo -e "${GREEN}======================================================${NC}"

1804
index.html Normal file

File diff suppressed because it is too large Load diff