NUK App 2

去伺服器化的校園輔助應用,支援本地端課表模擬與學分管理,解決流量限制問題,新增進度追蹤與 OTA 更新功能。

Nuxt Full Stack Rust Tauri Open Source

一、 概要

NUK App 2 是 NUK App 1 的進化版本,專為國立高雄大學學生設計,採用 去伺服器化架構,在本地端運行以解決流量瓶頸與 IP 封鎖問題。應用保留了核心功能並新增進階模組,包括:

  • 課表模擬:本地端模擬課程組合,檢查衝堂與學分需求。
  • 成績查詢:離線存取與管理學期成績。
  • 學分進度分析:追蹤畢業進度,提供預警功能。
  • 進度追蹤:支援長期學業目標設定與進度管理。
  • OTA 更新:自動檢查並下載最新課程資料與應用更新。

以開源方式開發,NUK App 2 提供更高的穩定性與靈活性,大幅提升學生在選課與學業管理中的使用體驗。


二、 動機

NUK App 1 因集中式伺服器架構在選課高峰期遭遇流量瓶頸,並因單一 IP 過度使用被學校封鎖,導致服務中斷。為了解決這些問題,我們設定以下目標:

  1. 消除伺服器依賴:設計去伺服器化架構,所有運算與儲存在本地端執行。
  2. 提升穩定性:避免流量限制與封鎖,確保選課高峰期的正常使用。
  3. 增強功能:新增進度追蹤與 OTA 更新,提升應用靈活性和長期可用性。
  4. DevOps 實踐:探索去伺服器化應用的開發與部署流程,提升技術能力。

本專案也是一個探索開源開發與本地端應用的機會,旨在提供更穩定的工具並鼓勵社群貢獻。


三、 架構

系統架構

NUK App 2 採用 去伺服器化設計,以桌面應用(PC 版)形式運行,所有資料處理與儲存均在本地端完成。核心技術包括:

  • 前端:使用 Tauri 配合 Nuxt,實現跨平台的桌面應用介面。
  • 本地儲存:採用 JSON 檔案儲存課程、成績與學分資料。
  • 資料同步:本地端爬蟲定期從校方系統或手動匯入更新課程資料。
  • 模組化設計:支援多語系與可擴充功能,方便未來新增模組。

技術亮點

  • 去伺服器化:所有運算與資料處理在使用者設備上完成,無需伺服器支援。
  • OTA 更新:定期檢查校方資料更新,確保課程資訊即時且準確。
  • 開源模式:程式碼公開於 GitHub,允許社群參與功能開發與錯誤修正。

四、 展示

使用成果

  • 穩定性提升:去伺服器化設計完全解決了流量瓶頸與 IP 封鎖問題,選課高峰期運行穩定。
  • 功能擴展
    • 進度追蹤:支援長期學業目標設定,顯示學分完成比例與建議課程。
    • 多語系支援:提供中英文介面,適應國際學生需求。
    • 本地化儲存:所有資料儲存於使用者設備,無需網路連線。
  • 使用者反饋:學生表示本地端運行顯著提升操作流暢度,OTA 更新確保資料即時性。

展示範例

課表模擬介面
課表模擬介面
進度追蹤功能
進度追蹤功能

開源貢獻

NUK App 2 以開源方式發布,社群已貢獻多語系模組與 UI 優化,未來計畫新增更多功能,如 AI 課程推薦與跨平台行動版。

Taoyuan, Taiwan | © 2025 Hong Yu Chang