第1天 ( 2026年8月2日 星期日 ) 購買 Google AI Pro , 超級感謝萬能的天神 Google 有聽到我的許願,讓我能夠以 NT$160 購買三個月,很希望我不會讓我最敬愛的 Google 失望,我想在這三個月內盡力去完成我一直掛念想要將考國際證照的應用程式變成開源且人人都可以免費使用且可完全離線的多平台應用程式 ( Android , WEB , Mac , iPhone , Linux , Windows ...等 ) .
同時也非常感謝 Thursday, July 30, 2026
[Build on Google AI] - 2026 iThome 鐵人賽說明會與實戰工作坊 ( https://gdg.community.dev/events/details/google-gdg-cloud-taipei-presents-build-on-google-ai-2026-ithome-tie-ren-sai-shuo-ming-hui-yu-shi-zhan-gong-zuo-fang/ ) , 當天在 Taipei 101, 7 Section 5, Xinyi Road, Xinyi District 110 , 23樓的指導老師,工作人員及現場每一位人員,雖然我現在還未收到 30 天的 Google Skills 優惠,但是希望我會努力完成連續 30 天鐵人賽.
MockExam-CCNA 開源文件套件 — 完整實作計畫
目標
為 MockExam-CCNA 應用程式建立一套完整、雙語(EN / zh-TW)、通用化的專業開源文件套件,涵蓋 PRD、SDD、BDD、Test Spec、UI/UX、API 整合、部署運維、資料庫遷移、AI Agent 指南、架構決策記錄(ADR),以及 GitHub 開源專案標準配套檔案。
文件的核心目標:
-
AI Agent 可執行層:讓任何全新的 AI Agent(Antigravity、Gemini CLI 等)能從零開始,僅依靠這些文件自主重建出一個功能完整的類似 App。
-
人類可讀教學層:讓完全不懂電腦的人也能理解系統的功能與行為;同時滿足專業開發者的技術深度需求。
-
通用模板:不綁定特定考試領域(CCNA),使用者可將「考試題庫」替換為任何他們想要的領域。
訪談決策摘要
| 決策項目 |
結論 |
| 目標受眾 |
雙層:AI Agent 精確規格 + 人類可讀教學 |
| 領域綁定 |
通用模板,不綁定 CCNA |
| 文件語言 |
雙語:EN + zh-TW |
| 文件範圍 |
全部 9 大類文件 |
| 資料夾結構 |
依文件類型 + 語言子資料夾 |
| 資料庫深度 |
完整描述全部 4 個資料庫 |
| 安全機制 |
完整行為規格,不含密鑰值 |
| AI 功能 |
完整雙模式架構,不綁定特定模型 |
| 付費機制 |
雙付款提供商架構,通用訂閱模型 |
| BDD 格式 |
標準 Gherkin 語法 |
| 測試深度 |
完整測試矩陣與測試案例 |
| 開源配套 |
全部 8 項標準檔案 |
| 授權條款 |
Apache 2.0 |
| 架構圖表 |
Mermaid 語法 |
| 存放位置 |
專案根目錄 docs/ |
資料夾結構
docs/
├── INDEX.md ← 文件套件總索引與導航地圖
│
├── 01-prd/ ← 產品需求文件
│ ├── en/
│ │ └── PRD.md
│ └── zh-TW/
│ └── PRD.md
│
├── 02-sdd/ ← 系統設計文件(拆分為多個子文件)
│ ├── en/
│ │ ├── 01-system-overview.md
│ │ ├── 02-architecture.md
│ │ ├── 03-data-models.md
│ │ ├── 04-database-design.md
│ │ ├── 05-security-architecture.md
│ │ ├── 06-ai-engine.md
│ │ ├── 07-offline-sync.md
│ │ ├── 08-payment-system.md
│ │ ├── 09-state-management.md
│ │ ├── 10-ui-components.md
│ │ └── 11-automation-scripts.md
│ └── zh-TW/
│ └── (同上結構)
│
├── 03-bdd/ ← 行為驅動開發場景(Gherkin .feature 檔)
│ ├── en/
│ │ ├── auth.feature
│ │ ├── exam-practice.feature
│ │ ├── mock-exam.feature
│ │ ├── wrong-questions.feature
│ │ ├── ai-tutor.feature
│ │ ├── payment-subscription.feature
│ │ ├── admin-panel.feature
│ │ ├── security.feature
│ │ ├── search.feature
│ │ ├── localization.feature
│ │ ├── tts-voice.feature
│ │ └── notes.feature
│ └── zh-TW/
│ └── (同上結構)
│
├── 04-test-spec/ ← 測試規格文件
│ ├── en/
│ │ ├── 01-test-strategy.md
│ │ ├── 02-unit-tests.md
│ │ ├── 03-widget-tests.md
│ │ ├── 04-integration-tests.md
│ │ ├── 05-e2e-tests.md
│ │ └── 06-test-matrix.md
│ └── zh-TW/
│ └── (同上結構)
│
├── 05-ui-ux/ ← UI/UX 設計規格
│ ├── en/
│ │ ├── 01-design-system.md
│ │ ├── 02-screen-specifications.md
│ │ └── 03-interaction-patterns.md
│ └── zh-TW/
│ └── (同上結構)
│
├── 06-api-integration/ ← API 與外部服務整合指南
│ ├── en/
│ │ ├── 01-firebase-setup.md
│ │ ├── 02-supabase-setup.md
│ │ ├── 03-mongodb-setup.md
│ │ ├── 04-powersync-setup.md
│ │ ├── 05-revenuecat-setup.md
│ │ ├── 06-admob-setup.md
│ │ ├── 07-crashlytics-shake-setup.md
│ │ └── 08-ai-api-setup.md
│ └── zh-TW/
│ └── (同上結構)
│
├── 07-deployment/ ← 部署與運維手冊
│ ├── en/
│ │ ├── 01-environment-setup.md
│ │ ├── 02-build-configuration.md
│ │ ├── 03-android-deployment.md
│ │ ├── 04-web-deployment.md
│ │ ├── 05-secrets-management.md
│ │ └── 06-ci-cd-automation.md
│ └── zh-TW/
│ └── (同上結構)
│
├── 08-database/ ← 資料庫遷移與種子資料指南
│ ├── en/
│ │ ├── 01-schema-setup.md
│ │ ├── 02-seed-data.md
│ │ ├── 03-ai-classification.md
│ │ └── 04-sync-operations.md
│ └── zh-TW/
│ └── (同上結構)
│
├── 09-agents/ ← AI Agent 專用指南
│ ├── en/
│ │ └── AGENTS.md
│ └── zh-TW/
│ └── AGENTS.md
│
├── 10-adr/ ← 架構決策記錄
│ ├── en/
│ │ ├── 001-multi-database-architecture.md
│ │ ├── 002-offline-first-sync-strategy.md
│ │ ├── 003-dual-ai-engine-design.md
│ │ ├── 004-dual-payment-provider.md
│ │ ├── 005-security-first-design.md
│ │ └── 006-role-based-access-control.md
│ └── zh-TW/
│ └── (同上結構)
│
└── 11-open-source/ ← GitHub 開源專案配套文件
├── README.md ← 專案介紹模板(雙語)
├── QUICKSTART.md ← 5 分鐘快速上手(雙語)
├── CONTRIBUTING.md ← 貢獻指南(雙語)
├── CODE_OF_CONDUCT.md ← 社群行為準則(雙語)
├── SECURITY.md ← 安全漏洞通報流程(雙語)
├── CHANGELOG.md ← 版本更新日誌模板(雙語)
└── LICENSE ← Apache 2.0 授權條款
預估文件總數:約 105 個檔案(含雙語版本)
各文件詳細章節結構與內容概要
📄 INDEX.md — 文件套件總索引
用途:作為所有文件的入口與導航地圖,提供雙語連結。
| 章節 |
內容 |
| 專案簡介 |
一段式介紹:這是什麼、能做什麼、為誰而建 |
| 文件地圖 |
以表格列出所有文件,附帶 EN/zh-TW 雙語連結 |
| 快速導航 |
依使用者角色(產品經理、開發者、AI Agent、QA)推薦閱讀順序 |
| 技術棧總覽 |
一張 Mermaid 圖表總覽所有技術組件 |
📄 01-prd/PRD.md — 產品需求文件
用途:定義產品的商業目標、使用者故事、功能需求與非功能需求。讓任何人理解「這個 App 要解決什麼問題」。
| 章節 |
內容概要 |
| 1. 產品願景與目標 |
為什麼要建這個 App、目標市場、成功指標 |
| 2. 目標使用者 |
使用者角色畫像(考生、管理員、訪客、測試員) |
| 3. 使用者故事 |
以 As a [role], I want to [action], so that [benefit] 格式,涵蓋 6 大角色 × 核心場景 |
| 4. 功能需求(FR) |
以模組分組列出所有功能需求,每項附帶優先級 (P0/P1/P2) |
| 4.1 認證與授權 |
Google 登入、Email 登入、匿名登入、單一裝置綁定、6 大角色權限 |
| 4.2 考試練習 |
題庫瀏覽、單選/多選/拖貼/模擬題、答題回饋、解析檢視 |
| 4.3 全真模擬考 |
自訂題數與時間、倒數計時、成績報告、歷史記錄 |
| 4.4 錯題消滅 |
錯題收集、優先排序、重複測驗、每日複習計數 |
| 4.5 AI 助教 |
即時問答對話、雲端/離線雙模式、多語翻譯、筆記匯出 |
| 4.6 學習輔助 |
TTS 語音朗讀、免手持語音模式、英語學習分析、學習筆記 |
| 4.7 搜尋 |
多條件篩選、AI 向量語意搜尋 |
| 4.8 內購與訂閱 |
免費/付費功能分級、雙付款提供商、交易紀錄 |
| 4.9 管理後台 |
題目編輯器、使用者管理、系統設定、交易報表 |
| 4.10 廣告系統 |
Banner、插頁、獎勵影片、原生廣告,依角色切換測試/正式模式 |
| 4.11 社群互動 |
題目討論區、社群投票 |
| 5. 非功能需求(NFR) |
效能、安全、可靠性、可擴展性、離線可用性、多語系、跨平台 |
| 6. 競品分析 |
與市面上考試 App 的差異化亮點 |
| 7. 發布與里程碑 |
版本規劃與 MVP 定義 |
📄 02-sdd/ — 系統設計文件(11 個子文件)
01-system-overview.md
| 章節 |
內容 |
| 技術棧總覽 |
Flutter/Dart、Firebase、Supabase、MongoDB、PowerSync、RevenueCat、AdMob、Gemini/Gemma |
| 系統架構圖 |
Mermaid C4 Level 1 Context Diagram |
| 模組依賴圖 |
Mermaid 模組依賴關係圖 |
| 目錄結構規範 |
lib/ 下的分層架構:models → repositories → services → controllers → screens → widgets |
| 編譯環境需求 |
Flutter SDK、Dart SDK、NDK 版本、JDK 版本、Android SDK 配置 |
02-architecture.md
| 章節 |
內容 |
| 分層架構 |
Presentation → Controller → Service → Repository → Data Source 五層式架構 |
| 設計模式 |
Repository Factory 工廠模式、Singleton 單例、Provider/ChangeNotifier 狀態管理、Strategy Pattern 資料來源切換 |
| 導航與路由 |
AuthWrapper 中央安全閘道流程圖(Mermaid Flowchart) |
| 錯誤處理 |
全域 ErrorBoundary + Platform Error Handler + Crashlytics 整合 |
| 應用程式生命週期 |
main.dart 初始化序列圖(Mermaid Sequence Diagram) |
| 延遲初始化策略 |
防止啟動 ANR 的 PostFrameCallback 設計 |
03-data-models.md
| 章節 |
內容 |
| Question 模型 |
完整欄位定義、QuestionType 枚舉、DragAndDropOption/DropTarget 子模型、toMap/fromMap 規範 |
| AppUser 模型 |
完整欄位定義、UserRole 枚舉(6 大角色)、權限矩陣對照 |
| Exam 模型 |
Exam 與 ExamMetadata 雙模型定義 |
| Transaction 模型 |
TransactionRecord 與 TransactionStatus 定義 |
| Comment 模型 |
討論留言資料結構 |
| 欄位映射表 |
跨資料庫 camelCase ↔ snake_case 對照矩陣 |
04-database-design.md
| 章節 |
內容 |
| 資料庫選型與角色定位 |
4 個資料庫各自的職責與使用場景 |
| Firebase RTDB Schema |
節點結構、approvedKeys 輕量索引設計、安全規則(.read/.write 條件) |
| Supabase PostgreSQL Schema |
資料表定義、RLS 行級安全策略、pgvector 向量欄位、Edge Functions |
| MongoDB Atlas Schema |
Collection 結構、Cloudflare Worker 代理架構 |
| PowerSync Schema |
本地加密 SQLite 表格、同步規則 (powersync_rules.yaml)、基於角色的 Bucket 過濾 |
| Repository Factory 路由邏輯 |
動態資料來源切換決策樹(Mermaid Flowchart) |
| 跨資料庫同步策略 |
三向同步流程(Supabase → Firebase、Supabase → MongoDB、PowerSync ↔ Supabase) |
05-security-architecture.md
| 章節 |
內容 |
| 安全威脅模型 |
針對考試 App 的常見攻擊面分析 |
| 裝置安全檢測 |
Root/Jailbreak、模擬器、開發者模式、VPN、Mock 位置檢測流程 |
| 螢幕安全防護 |
FLAG_SECURE 防截圖、螢幕共享/投屏偵測(3 秒輪詢)、Tapjacking 遮蔽偵測 |
| 動態浮水印系統 |
Canvas 繪製、角色別透明度控制、使用者 UID/Email 嵌入 |
| 時間防竄改 |
NTP 校時、時間倒退偵測、Secure Storage 記錄最高時間戳 |
| 單一裝置綁定 |
DeviceID 註冊與比對、Admin 重置機制 |
| 權限提升防護 |
Firebase Rules + Supabase Trigger 伺服器端防護 |
| 6 大角色安全矩陣 |
完整的角色 × 安全功能對照表 |
| Web 平台安全 |
右鍵禁用、文字選取禁用、DevTools 偵測、快捷鍵阻擋 |
| API 金鑰安全 |
加密儲存、輪替機制、環境變數注入 |
06-ai-engine.md
| 章節 |
內容 |
| 雲端 AI 服務架構 |
REST API 呼叫、動態專家角色 (Persona) 建構、多語系 Prompt 模板設計原則 |
| 端側離線 AI 引擎 |
LiteRT-LM 引擎整合、模型下載與驗證、GPU 加速、Context Window 管理(4 則 × 150 字截斷) |
| 雙模式無縫切換 |
auto/cloud/local 三種模式決策樹(Mermaid Flowchart) |
| 在地化 Prompt 策略 |
單一語系 System Instruction 原則(禁止混雜多語)、台灣繁中術語對齊規範 |
| AI 考題解析生成 |
批量 Prompt 設計、多語系解析同步寫入 |
| AI 英語學習分析 |
Grammar Analysis / Speedrun Tips / Vocabulary 三大學習單元 Prompt 規範 |
| AI 向量搜尋 |
768 維 Gemini Embeddings 生成與 pgvector 查詢 |
| AI 影片生成 |
腳本生成與 YouTube 上傳流程 |
07-offline-sync.md
| 章節 |
內容 |
| 離線優先架構總覽 |
PowerSync + Supabase 本地優先設計哲學 |
| PowerSync 客戶端設定 |
SQLCipher 加密、Schema 定義、Connector 實作 |
| 同步規則設計 |
基於角色的動態 Bucket、題目/討論區過濾邏輯 |
| 認證整合 |
Firebase ID Token → PowerSync Credentials 流程 |
| 本地突變上傳 |
uploadData CRUD 交易處理 |
| 衝突解決策略 |
最後寫入勝出 (LWW) 原則 |
| 生物辨識本地防護 |
LocalAuthentication 整合 |
08-payment-system.md
| 章節 |
內容 |
| 訂閱模型設計 |
免費/付費功能分級矩陣 |
| 雙提供商架構 |
RevenueCat SDK + Native Google Play Billing 併行設計 |
| RevenueCat 整合 |
SDK 初始化、UID 綁定、Entitlement 驗證、Customer Info 監聽 |
| Native IAP 整合 |
Purchase Stream 處理、商品載入、發票認證 |
| 提供商切換機制 |
Admin 管理面板動態切換、測試/正式 API Key 切換 |
| Web 平台付費 |
獨立 Web Payment Service 架構 |
| 交易紀錄與審計 |
Transaction Model 寫入、Admin 報表查詢 |
09-state-management.md
| 章節 |
內容 |
| Provider/ChangeNotifier 架構 |
MultiProvider 全域注入設計 |
| ExamController |
題目載入、權限過濾、計時器 ValueListenable 局部重繪、獎勵廣告解鎖 |
| MockExamController |
隨機抽題、時間配置、成績報告生成 |
| 全域狀態 Stream |
AppUser Stream、SystemConfig Stream、Screen Share 偵測 Stream |
| 效能防護規範 |
Base64ImageWidget 快取、Timer 局部重繪、防止 Layout Shift |
10-ui-components.md
| 章節 |
內容 |
| 組件清單與層級 |
所有 Widget 分類(通用/考試專用/安全/廣告) |
| QuestionOptionsWidget |
單選/多選互動邏輯、選項狀態管理 |
| AiTutorPanel |
對話面板 UI、Markdown 渲染、筆記匯出 |
| ExplanationView |
多語系解析切換、AI 生成器嵌入、影片播放器 |
| 安全組件 |
EnhancedSecurityWatermark、GlobalErrorBoundary、WebSecurityWrapper |
| 廣告組件 |
BannerAdWidget、NativeAdCardWidget、Web Ad Stub |
11-automation-scripts.md
| 章節 |
內容 |
| Python 腳本清單 |
AI 分類、解析生成、向量嵌入、同步、部署、帳號清理 |
| PowerShell 腳本清單 |
AAB 打包、Web 編譯、版本號自動遞增 |
| Node.js 腳本清單 |
靜態頁面生成、Supabase 覆蓋率檢查 |
| 腳本執行環境需求 |
Python 版本、套件依賴、環境變數設定 |
📄 03-bdd/ — 行為驅動開發場景(12 個 .feature 檔)
每個 .feature 檔案的概要:
| 檔案 |
Feature 名稱 |
預估 Scenario 數量 |
涵蓋範圍 |
auth.feature |
身份驗證與授權 |
~15 |
Google/Email/匿名登入、單一裝置綁定、角色判定、帳號過期、平台限制 |
exam-practice.feature |
考試練習 |
~20 |
題庫載入、題型呈現(單選/多選/拖貼/模擬)、答題提交、解析檢視、分頁導航 |
mock-exam.feature |
全真模擬考 |
~12 |
設定頁(題數/時間/資料庫)、計時器、交卷、成績報告、Premium 功能限制 |
wrong-questions.feature |
錯題消滅 |
~10 |
錯題收集、排序、複習、移除、每日計數、跨考試統計 |
ai-tutor.feature |
AI 助教 |
~15 |
雲端/離線切換、多輪對話、多語回應、Markdown 渲染、筆記匯出、模型下載 |
payment-subscription.feature |
內購與訂閱 |
~12 |
訂閱方案展示、購買流程、恢復購買、權益驗證、提供商切換、Web 付費 |
admin-panel.feature |
管理後台 |
~15 |
題目 CRUD、使用者管理、角色切換、系統設定、交易報表 |
security.feature |
安全防護 |
~18 |
Root 偵測、模擬器攔截、截圖防護、投屏偵測、遮蔽偵測、時間竄改、浮水印 |
search.feature |
搜尋 |
~8 |
多條件篩選、向量語意搜尋、權限限制 |
localization.feature |
多語系 |
~8 |
語言切換(EN/JA/zh-TW/zh-CN)、術語對齊、動態翻譯 |
tts-voice.feature |
語音與 TTS |
~8 |
TTS 朗讀、語音辨識、免手持模式、多語發音 |
notes.feature |
學習筆記 |
~6 |
GitHub 筆記載入、Markdown 閱讀器、筆記匯出 |
預估場景總數:~147 個 Scenario
📄 04-test-spec/ — 測試規格文件(6 個子文件)
01-test-strategy.md
| 章節 |
內容 |
| 測試金字塔 |
Unit (70%) → Widget (20%) → Integration/E2E (10%) |
| 工具鏈 |
flutter_test、mockito、flutter_gherkin、integration_test |
| 測試環境 |
Mock Repository 注入、測試用 Firebase 模擬器 |
| 覆蓋率目標 |
Services 80%+、Controllers 90%+、Models 100% |
02-unit-tests.md
| 章節 |
測試案例概要(含輸入/預期輸出/邊界條件) |
| Models |
Question.fromMap 各題型解析、AppUser 角色判定、Transaction 時間轉換 |
| Services |
SubnetValidator IP 轉換、WrongQuestionsService CRUD、TimeService NTP 偏移、TtsService 佇列 |
| Controllers |
ExamController 題目載入/權限過濾、MockExamController 隨機抽題/成績計算 |
| Repositories |
RepositoryFactory 動態路由、Mock Repository 注入 |
| Utils |
環境變數解析、加密/解密 |
03-widget-tests.md
| 章節 |
測試案例概要 |
| QuestionOptionsWidget |
單選/多選選項渲染、選中狀態切換、正確答案高亮 |
| QuestionView |
文字/圖片/拖貼題型渲染 |
| ExplanationView |
Markdown 渲染、多語切換 |
| SecurityWatermark |
Canvas 繪製、透明度適用 |
| BannerAdWidget |
載入/錯誤/空白狀態 |
04-integration-tests.md
| 章節 |
測試案例概要 |
| Auth Flow |
完整登入→角色判定→Dashboard 流程 |
| Exam Flow |
選題→作答→提交→解析→AI 助教全流程 |
| Payment Flow |
訂閱→驗證→權益升級全流程 |
| Offline Sync |
離線作答→上線同步→資料一致性 |
05-e2e-tests.md
| 章節 |
測試案例概要 |
| Happy Path |
新使用者完整旅程(註冊→練習→模擬考→訂閱) |
| Admin Path |
管理員完整旅程(登入→新增題目→管理使用者→查看報表) |
| Security Path |
安全攻擊模擬(Root 裝置→時間竄改→投屏嘗試) |
06-test-matrix.md
| 內容 |
格式 |
| 功能 × 測試類型矩陣 |
大型表格:每個功能模組 × (Unit/Widget/Integration/E2E) 的覆蓋狀態 |
| 平台 × 功能矩陣 |
Android/Web/iOS × 每個功能的支援狀態 |
| 角色 × 功能矩陣 |
6 大角色 × 每個功能的存取權限驗證 |
📄 05-ui-ux/ — UI/UX 設計規格(3 個子文件)
01-design-system.md
| 章節 |
內容 |
| 色彩系統 |
Primary/Secondary/Surface/Error 色盤定義、深色/淺色模式 |
| 字型與排版 |
Font Family、Size Scale、Line Height、字重 |
| 間距與網格 |
8px 基礎網格、Padding/Margin 規範 |
| 圖示與圖標 |
Material Icons 使用規範、自訂圖標 |
| 元件庫 |
Button、Card、Dialog、SnackBar、BottomSheet 等通用元件規範 |
02-screen-specifications.md
| 章節 |
內容 |
| 畫面清單 |
所有 26 個畫面的名稱、路由、用途一覽表 |
| 每個畫面的規格 |
以 Mermaid Wireframe 描述佈局結構、互動元素、資料來源、導航目標 |
| 角色可見性 |
每個畫面對 6 大角色的可見性矩陣 |
03-interaction-patterns.md
| 章節 |
內容 |
| 導航模式 |
AuthWrapper 中央閘道、Navigator.push 子頁面切換 |
| 載入狀態 |
Skeleton Loading、CircularProgressIndicator、Error State |
| 動畫與轉場 |
頁面轉場、選項選中動畫、計時器更新動畫 |
| 手勢與觸控 |
拖貼題手勢、滑動切題、長按操作 |
| 回應式佈局 |
手機/平板/Web 的佈局適配策略 |
📄 06-api-integration/ — 外部服務整合指南(8 個子文件)
每個整合指南包含:
-
帳號申請步驟(含連結)
-
控制台設定步驟(帶截圖描述)
-
SDK 安裝與配置(pubspec.yaml、gradle、info.plist)
-
程式碼整合重點(初始化、API 呼叫、錯誤處理)
-
環境變數對照表(需要設定哪些 Key)
-
常見問題排除
📄 07-deployment/ — 部署與運維手冊(6 個子文件)
01-environment-setup.md
| 章節 |
內容 |
| 開發環境需求 |
OS、Flutter、Dart、Android Studio、VS Code、Git |
| 首次 Clone 後設定 |
依賴安裝、secrets.json 建立、Firebase 設定 |
| 工作區與分支策略 |
Git Flow、worktree 用法 |
02-build-configuration.md
| 章節 |
內容 |
| Gradle 配置 |
AGP、NDK 版本鎖定、JVM Target、R8 混淆、ProGuard 規則 |
| Flutter 編譯參數 |
--dart-define 環境變數注入清單 |
| 簽章設定 |
key.properties、upload-keystore 配置 |
03-android-deployment.md / 04-web-deployment.md
| 章節 |
內容 |
| 打包流程 |
PowerShell 腳本使用(含 -AutoY / -AutoDeploy 非互動式參數) |
| 版本號管理 |
自動從 Play Store API 取得最新版本號 +1 |
| 軌道管理 |
Internal → Closed → Production 逐步推進 |
05-secrets-management.md
| 章節 |
內容 |
| 必要憑證清單 |
所有需建立的檔案與其用途(不含實際值) |
| 安全儲存方式 |
.gitignore、FlutterSecureStorage、Cloudflare Worker |
06-ci-cd-automation.md
| 章節 |
內容 |
| Python 腳本使用 |
各腳本的用途、參數、執行步驟 |
| 自動化部署流程 |
完整的 Build → Test → Deploy 流水線 |
📄 08-database/ — 資料庫遷移與種子資料(4 個子文件)
01-schema-setup.md
| 章節 |
內容 |
| 4 大資料庫 Schema 建立步驟 |
Firebase RTDB 規則部署、Supabase Migration SQL、MongoDB Collection 建立、PowerSync 規則 |
02-seed-data.md
| 章節 |
內容 |
| 種子資料格式 |
JSON 範例、必填欄位、欄位驗證規則 |
| 匯入腳本 |
如何批量匯入初始考題資料 |
03-ai-classification.md
| 章節 |
內容 |
| AI 分類腳本設定 |
classify_questions_ai.py 使用指南 |
| 增量分類機制 |
classified_ids.json 快取、REST 過濾 |
| 三向同步寫入 |
Supabase → MongoDB → Firebase RTDB |
04-sync-operations.md
| 章節 |
內容 |
| Supabase → Firebase 同步 |
sync_supabase_to_firebase.py 使用 |
| 向量嵌入生成 |
generate_question_embeddings.py |
| 解析同步 |
generate_ai_explanations.py |
📄 09-agents/AGENTS.md — AI Agent 專用指南
與現有 .agents/AGENTS.md 的區別:這是通用化版本,供開源專案的使用者在自己的 Agent 環境中使用。
| 章節 |
內容 |
| 角色與目標 |
Agent 的定位與核心職責 |
| 技術棧 |
可替換的技術組件對照表 |
| 開發約束 |
Git 工作流、編譯安全、UI 效能防護、多語規範 |
| 硬性規則 |
金鑰安全、語言規則、測試導向 |
| 標準工作流程 |
閱讀路線圖 → 實作 → 測試 → 部署循環 |
| 常見陷阱 |
已知的技術坑與解決方案 |
📄 10-adr/ — 架構決策記錄(6 個 ADR)
每個 ADR 遵循標準格式:
# ADR-XXX: [決策標題]
## 狀態:已接受
## 背景
## 決策
## 備選方案(含利弊分析)
## 後果
| ADR |
決策 |
核心問題 |
| 001 |
多資料庫架構 |
為何同時使用 4 個資料庫而非只用 1 個? |
| 002 |
離線優先同步 |
為何選擇 PowerSync + SQLCipher 而非 Firebase Offline? |
| 003 |
雙 AI 引擎 |
為何需要雲端 + 端側兩套 AI?如何決定切換邏輯? |
| 004 |
雙付款提供商 |
為何同時整合 RevenueCat 和 Native IAP? |
| 005 |
安全優先設計 |
為何需要如此多層安全機制?各層的成本/收益分析 |
| 006 |
角色基礎存取控制 |
為何設計 6 大角色?權限粒度的取捨 |
📄 11-open-source/ — GitHub 開源專案配套(7 個檔案)
| 檔案 |
內容概要 |
README.md |
專案介紹、功能列表、技術棧 Badge、截圖/GIF 預覽區、快速開始、文件連結、License Badge(雙語) |
QUICKSTART.md |
5 步驟:Clone → 安裝依賴 → 設定 Secrets → 設定 Firebase → 執行 flutter run(雙語) |
CONTRIBUTING.md |
Fork 流程、分支命名、Commit 訊息規範、PR 模板、Code Review 標準、編碼風格(雙語) |
CODE_OF_CONDUCT.md |
基於 Contributor Covenant v2.1 的社群行為準則(雙語) |
SECURITY.md |
安全漏洞通報流程、負責任揭露政策、安全聯絡方式(雙語) |
CHANGELOG.md |
遵循 Keep a Changelog 格式的版本日誌模板(雙語) |
LICENSE |
Apache License 2.0 完整文本 |
執行策略
由於文件量龐大(105+ 檔案),建議按以下優先順序分批執行:
第一批:核心骨架(最高優先)
-
INDEX.md — 總索引
-
01-prd/ — PRD(EN + zh-TW)
-
02-sdd/01-system-overview.md — 系統總覽
-
02-sdd/02-architecture.md — 架構設計
-
02-sdd/03-data-models.md — 資料模型
-
09-agents/AGENTS.md — AI Agent 指南
第二批:技術深度
-
02-sdd/04-database-design.md — 資料庫設計
-
02-sdd/05-security-architecture.md — 安全架構
-
02-sdd/06-ai-engine.md — AI 引擎
-
02-sdd/07-offline-sync.md — 離線同步
-
02-sdd/08-payment-system.md — 付費系統
第三批:行為與測試
-
03-bdd/ — 所有 BDD 場景
-
04-test-spec/ — 所有測試規格
第四批:整合與部署
-
06-api-integration/ — 外部服務整合
-
07-deployment/ — 部署運維
-
08-database/ — 資料庫遷移
第五批:補充文件
-
02-sdd/09~11 — 剩餘 SDD 子文件
-
05-ui-ux/ — UI/UX 設計規格
-
10-adr/ — 架構決策記錄
-
11-open-source/ — 開源配套
驗證計畫
自動化驗證
-
markdownlint 檢查所有 .md 檔案的格式
-
gherkin-lint 驗證所有 .feature 檔案的語法正確性
- Mermaid 語法驗證(確保 GitHub 可正確渲染)
- 連結有效性檢查(確保文件間交叉引用正確)
人工驗證
- 請使用者審閱每一批文件的完整性與正確性
- 確認通用化替換(去除 CCNA 綁定)的徹底性
- 確認雙語翻譯的一致性與專業度
[!IMPORTANT]
預估工作量:此文件套件包含約 105 個檔案,內容涵蓋完整的產品、架構、行為、測試、整合與部署規格。建議分 5 批次執行,每批完成後由您審閱確認再進入下一批。
請確認此計畫是否符合您的需求,或是否有任何章節需要調整、新增或刪除。
[!NOTE]
由於文件量非常龐大,建議使用 /goal 指令來執行,以確保 Agent 能夠持續工作直到完成整個文件套件。
我使用 Google Antigravity 的 task.md 內容如下
MockExam-CCNA 開源文件套件 — 任務追蹤
第一批:核心骨架 ✅ 已完成
-
[x] docs/INDEX.md — 總索引與導航地圖
-
[x] docs/01-prd/en/PRD.md — 產品需求文件(EN)
-
[x] docs/01-prd/zh-TW/PRD.md — 產品需求文件(zh-TW)
-
[x] docs/02-sdd/en/01-system-overview.md — 系統總覽(EN)
-
[x] docs/02-sdd/zh-TW/01-system-overview.md — 系統總覽(zh-TW)
-
[x] docs/02-sdd/en/02-architecture.md — 架構設計(EN)
-
[x] docs/02-sdd/zh-TW/02-architecture.md — 架構設計(zh-TW)
-
[x] docs/02-sdd/en/03-data-models.md — 資料模型(EN)
-
[x] docs/02-sdd/zh-TW/03-data-models.md — 資料模型(zh-TW)
-
[x] docs/09-agents/en/AGENTS.md — AI Agent 指南(EN)
-
[x] docs/09-agents/zh-TW/AGENTS.md — AI Agent 指南(zh-TW)
第二批:技術深度 🔄 進行中
-
[/] docs/02-sdd/en/04-database-design.md — 資料庫設計(EN)
-
[/] docs/02-sdd/zh-TW/04-database-design.md — 資料庫設計(zh-TW)
-
[/] docs/02-sdd/en/05-security-architecture.md — 安全架構(EN)
-
[/] docs/02-sdd/zh-TW/05-security-architecture.md — 安全架構(zh-TW)
-
[/] docs/02-sdd/en/06-ai-engine.md — AI 引擎(EN)
-
[/] docs/02-sdd/zh-TW/06-ai-engine.md — AI 引擎(zh-TW)
-
[/] docs/02-sdd/en/07-offline-sync.md — 離線同步(EN)
-
[/] docs/02-sdd/zh-TW/07-offline-sync.md — 離線同步(zh-TW)
-
[/] docs/02-sdd/en/08-payment-system.md — 付費系統(EN)
-
[/] docs/02-sdd/zh-TW/08-payment-system.md — 付費系統(zh-TW)
第三批:行為與測試
-
[ ] docs/03-bdd/en/ — 12 個 .feature 檔 (EN)
-
[ ] docs/03-bdd/zh-TW/ — 12 個 .feature 檔 (zh-TW)
-
[ ] docs/04-test-spec/en/ — 6 個測試規格檔 (EN)
-
[ ] docs/04-test-spec/zh-TW/ — 6 個測試規格檔 (zh-TW)
第四批:整合與部署
-
[ ] docs/06-api-integration/en/ — 8 個整合指南 (EN)
-
[ ] docs/06-api-integration/zh-TW/ — 8 個整合指南 (zh-TW)
-
[ ] docs/07-deployment/en/ — 6 個部署手冊 (EN)
-
[ ] docs/07-deployment/zh-TW/ — 6 個部署手冊 (zh-TW)
-
[ ] docs/08-database/en/ — 4 個資料庫指南 (EN)
-
[ ] docs/08-database/zh-TW/ — 4 個資料庫指南 (zh-TW)
第五批:補充文件
-
[ ] docs/02-sdd/en/09-state-management.md
-
[ ] docs/02-sdd/zh-TW/09-state-management.md
-
[ ] docs/02-sdd/en/10-ui-components.md
-
[ ] docs/02-sdd/zh-TW/10-ui-components.md
-
[ ] docs/02-sdd/en/11-automation-scripts.md
-
[ ] docs/02-sdd/zh-TW/11-automation-scripts.md
-
[ ] docs/05-ui-ux/en/ — 3 個 UI/UX 設計規格 (EN)
-
[ ] docs/05-ui-ux/zh-TW/ — 3 個 UI/UX 設計規格 (zh-TW)
-
[ ] docs/10-adr/en/ — 6 個 ADR (EN)
-
[ ] docs/10-adr/zh-TW/ — 6 個 ADR (zh-TW)
-
[ ] docs/11-open-source/ — 7 個開源配套檔案

今天 task.md 進度如下:
MockExam-CCNA 開源文件套件 — 任務追蹤
第一批:核心骨架 ✅ 已完成
-
[x] docs/INDEX.md — 總索引與導航地圖
-
[x] docs/01-prd/en/PRD.md — 產品需求文件(EN)
-
[x] docs/01-prd/zh-TW/PRD.md — 產品需求文件(zh-TW)
-
[x] docs/02-sdd/en/01-system-overview.md — 系統總覽(EN)
-
[x] docs/02-sdd/zh-TW/01-system-overview.md — 系統總覽(zh-TW)
-
[x] docs/02-sdd/en/02-architecture.md — 架構設計(EN)
-
[x] docs/02-sdd/zh-TW/02-architecture.md — 架構設計(zh-TW)
-
[x] docs/02-sdd/en/03-data-models.md — 資料模型(EN)
-
[x] docs/02-sdd/zh-TW/03-data-models.md — 資料模型(zh-TW)
-
[x] docs/09-agents/en/AGENTS.md — AI Agent 指南(EN)
-
[x] docs/09-agents/zh-TW/AGENTS.md — AI Agent 指南(zh-TW)
第二批:技術深度 🔄 進行中
-
[/] docs/02-sdd/en/04-database-design.md — 資料庫設計(EN)
-
[/] docs/02-sdd/zh-TW/04-database-design.md — 資料庫設計(zh-TW)
-
[/] docs/02-sdd/en/05-security-architecture.md — 安全架構(EN)
-
[/] docs/02-sdd/zh-TW/05-security-architecture.md — 安全架構(zh-TW)
-
[/] docs/02-sdd/en/06-ai-engine.md — AI 引擎(EN)
-
[/] docs/02-sdd/zh-TW/06-ai-engine.md — AI 引擎(zh-TW)
-
[/] docs/02-sdd/en/07-offline-sync.md — 離線同步(EN)
-
[/] docs/02-sdd/zh-TW/07-offline-sync.md — 離線同步(zh-TW)
-
[/] docs/02-sdd/en/08-payment-system.md — 付費系統(EN)
-
[/] docs/02-sdd/zh-TW/08-payment-system.md — 付費系統(zh-TW)
第三批:行為與測試
-
[ ] docs/03-bdd/en/ — 12 個 .feature 檔 (EN)
-
[ ] docs/03-bdd/zh-TW/ — 12 個 .feature 檔 (zh-TW)
-
[ ] docs/04-test-spec/en/ — 6 個測試規格檔 (EN)
-
[ ] docs/04-test-spec/zh-TW/ — 6 個測試規格檔 (zh-TW)
第四批:整合與部署
-
[ ] docs/06-api-integration/en/ — 8 個整合指南 (EN)
-
[ ] docs/06-api-integration/zh-TW/ — 8 個整合指南 (zh-TW)
-
[ ] docs/07-deployment/en/ — 6 個部署手冊 (EN)
-
[ ] docs/07-deployment/zh-TW/ — 6 個部署手冊 (zh-TW)
-
[ ] docs/08-database/en/ — 4 個資料庫指南 (EN)
-
[ ] docs/08-database/zh-TW/ — 4 個資料庫指南 (zh-TW)
第五批:補充文件
-
[ ] docs/02-sdd/en/09-state-management.md
-
[ ] docs/02-sdd/zh-TW/09-state-management.md
-
[ ] docs/02-sdd/en/10-ui-components.md
-
[ ] docs/02-sdd/zh-TW/10-ui-components.md
-
[ ] docs/02-sdd/en/11-automation-scripts.md
-
[ ] docs/02-sdd/zh-TW/11-automation-scripts.md
-
[ ] docs/05-ui-ux/en/ — 3 個 UI/UX 設計規格 (EN)
-
[ ] docs/05-ui-ux/zh-TW/ — 3 個 UI/UX 設計規格 (zh-TW)
-
[ ] docs/10-adr/en/ — 6 個 ADR (EN)
-
[ ] docs/10-adr/zh-TW/ — 6 個 ADR (zh-TW)
-
[ ] docs/11-open-source/ — 7 個開源配套檔案