單字卡|間隔重複英文單字練習 Web App
把劍橋字典匯出的詞彙表變成翻卡測驗,用 Leitner 盒子法自動安排複習:記不熟的更常出現,熟記的間隔越拉越長。
期間:2026/9~2026/10角色:獨立開發(設計、前後端、部署)

依記憶程度自動排複習Leitner 盒子法:答對的卡複習間隔越拉越長,答錯的更常出現;搭配今日複習、錯題練習、隨機抽考三種模式。
帳號與資料安全HttpOnly Cookie、PBKDF2 密碼雜湊、一次性 token 只存雜湊、登入頻率限制,並避免從回應時間推測帳號是否存在。
多人共用,權限不外洩存取規則集中在單一服務,所有查詢先限定「看得到的詞彙表」;好友互相練習為唯讀,進度各自記錄。
畫面
行動裝置優先的設計,手機可以「加到主畫面」當 App 使用;支援自動深色模式。






主要功能
三種練習模式
今日複習(到期卡片優先,不足再補新單字)、錯題練習、隨機抽考;答錯的卡在同一輪最後會再出現一次。
匯入 .csv/.xlsx
不依賴第三方套件,自行解析 Excel 檔(zip+XML);同名詞彙表會合併,並保留既有學習進度。
學習統計
今日練習數與正確率、連續學習天數、近 14 天長條圖、記憶盒子分布、最常答錯的單字。
好友系統
對方接受邀請後可以練習彼此的詞彙表(唯讀),進度各自記錄;可選擇是否公開統計。
帳號
Email 驗證註冊、忘記密碼、修改密碼、Google 登入(第一次登入時選擇使用者名稱)。
多語系
繁中、簡中、英文、日文;驗證信依使用者設定的語言寄出;英式/美式發音。
技術重點
- 前端:Vue 3+TypeScript(Composition API)、Vue Router 路由守衛、vue-i18n 多語系,行動裝置優先的響應式設計。
- 後端:ASP.NET Core(.NET 10)REST API,EF Core+SQLite,以 Migrations 管理資料表版本,部署時保留既有資料。
- 權限:存取規則集中在單一服務,所有查詢都先限定「使用者看得到的詞彙表」;統計在資料庫端篩選與分組,不把整張表載入記憶體。
- 資安:HttpOnly+SameSite Cookie 驗證;改密碼後透過 SecurityStamp 讓其他裝置自動登出;PBKDF2 密碼雜湊;一次性連結 token 只存 SHA-256 雜湊;登入頻率限制;寄信改用背景佇列,避免從回應時間推測帳號是否存在;限定信件連結網址,防止 Host 標頭偽造。
- Google OAuth 2.0:以 Google 帳號固定不變的 Id 對應本站帳號,Email 相同且已驗證的帳號自動綁定,並防止他人先用相同 Email 搶註。
- 部署:Docker 多階段建置,把前端與後端打包成單一映像檔。