這是一個基於 Flask 和 SM-2 演算法的輕量級記憶卡 (Anki-like) Web 應用程式,專為在樹莓派 (Raspberry Pi) 或 Intranet 環境上運行而設計。它結合了傳統的抽認卡學習與 Discord 的整合,讓學習過程更有效率。
- 🧠 間隔重複 (Spaced Repetition): 內建 SM-2 演算法,根據你的記憶曲線自動安排複習時間。
- 🔊 語音朗讀 (TTS):
- 支援 Text-to-Speech,可點擊喇叭圖示聆聽單字或句子發音(使用 Microsoft Edge TTS 或 Google TTS)。
- 背景生成: 系統會在新增卡片、匯入或啟動時自動於背景掃描並生成缺少的語音檔,確保學習時的流暢體驗。
- 🛠️ 資料庫優化 (Merge Duplicates):
- 支援匯入時自動合併重複的單字卡片(將新內容串接於舊內容之後)。
- 📚 學習模式:
- 傳統模式 (Traditional Mode): 標準的翻卡式學習,支援兩種記憶策略。
- 📂 方便的卡片管理:
- 支援多層次資料夾與牌組結構。
- 支援從 CSV 格式「貼上內容」進行批次匯入。
- 一鍵重置所有學習進度或刪除所有卡片。
- 🛡️ 安全與備份:
- 自動備份: 每次執行更新腳本時,系統會自動備份資料庫至
backups/資料夾。 - 一鍵還原: 提供還原腳本 (
restore.sh/restore.ps1),可隨時將資料庫回復至先前的狀態。
- 自動備份: 每次執行更新腳本時,系統會自動備份資料庫至
- 🔔 Discord 通知:
- 每日定時 (預設 09:00) 推送通知,提醒今日需複習的卡片總數與細項。
- 🎨 現代化介面:
- 簡潔、響應式的網頁設計,適配桌機與行動裝置。
- 後端: Python, Flask
- 前端: 原生 HTML/CSS/JavaScript (無須編譯)
- 資料庫: SQLite
- 語音: edge-tts, gTTS
- 環境管理: dotenv (
config.py統一管理)
我們提供了一套自動化腳本,讓你在樹莓派、Linux 或 Windows 系統上輕鬆部署。
前置需求:
- 樹莓派 OS (Raspberry Pi OS) 或基於 Debian/Ubuntu 的 Linux 系統
- Python 3.x
步驟:
-
克隆專案:
git clone https://github.com/your-username/anki_pi.git cd anki_pi -
執行安裝腳本: (請使用一般使用者執行,不要加 sudo)
./install.sh
安裝過程中,腳本會協助建立
.env設定檔:SECRET_KEY: 自動生成。DISCORD_WEBHOOK_URL: (選填) 設定 Discord 通知。
-
完成!
- 服務將自動註冊為 Systemd Service (
anki_pi.service) 並啟動。 - 瀏覽器打開
http://<你的IP>:10000即可使用。
- 服務將自動註冊為 Systemd Service (
前置需求:
- Windows 10/11
- Python 3.x (安裝時請勾選 "Add Python to PATH")
- Git for Windows
步驟:
-
克隆專案: 在 PowerShell 或 CMD 中執行:
git clone https://github.com/your-username/anki_pi.git cd anki_pi
-
執行安裝腳本:
- 在
anki_pi資料夾中找到install.ps1。 - 右鍵點擊檔案,選擇 「使用 PowerShell 執行」 (Run with PowerShell)。
- 或是直接在 PowerShell 視窗中執行:
.\install.ps1
- 在
-
設定:
- 腳本會自動建立虛擬環境、安裝依賴。
- 依照提示輸入
.env設定 (SECRET_KEY 會自動生成)。
-
完成!
- 桌面會建立一個 Anki Pi 的捷徑。
- 雙擊捷徑即可啟動應用程式 (會開啟一個黑色視窗,請勿關閉)。
- 瀏覽器打開
http://127.0.0.1:10000即可使用。
當專案有新版本時,請使用更新腳本來確保資料庫與依賴的完整性。
./update.sh此腳本會自動:
- 備份當前資料庫至
backups/。 - 執行
git pull拉取最新程式碼。 - 更新 Python 依賴套件。
- 重新啟動服務。
- 關閉正在運行的 Anki Pi 視窗。
- 右鍵點擊
update.ps1,選擇 「使用 PowerShell 執行」。 - 腳本會自動備份資料庫、拉取最新程式碼並更新依賴。
- 更新完成後,重新使用桌面捷徑啟動即可。
若更新後發生問題,或想回溯資料庫狀態:
./restore.sh右鍵點擊 restore.ps1,選擇 「使用 PowerShell 執行」。
系統將列出可用的備份檔供您選擇還原。
-
手動新增:
- 點擊主畫面的 "✏️ 新增卡片"。
- 輸入正面 (英文)、背面 (中文),並選擇卡片類型。
- 卡片類型說明:
- 只要認得 (recognize): 固定顯示正面 (英文),考驗你是否能回想起中文含義。
- 需要會拼 (spell): 隨機顯示正面或背面。若顯示中文 (背面),則需拼寫出英文 (正面)。
-
批次匯入:
- 點擊 "📋 貼上內容匯入"。
- 直接將 CSV 格式的文字貼入文字框中。
- 格式範例:
apple,蘋果 banana,香蕉
- 點擊首頁的資料夾或牌組開始學習。
- 播放發音: 點擊 🔊 圖示。
- 評分: 根據記憶程度選擇按鈕,系統將自動計算下次複習時間。
歡迎提交 Pull Request 或回報問題!
本專案採用 Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) 授權。