Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

高雄大學學分分析與排課系統

這是一個專為高雄大學學生設計的桌面應用程式,旨在幫助學生分析自己的學分修習狀況、查詢最新的課程資訊,並輔助排課。

本系統整合了兩大核心功能:

  1. 學分分析系統:登入學校的學分查詢系統,抓取學生的修課成績,並與畢業學分要求進行比對,幫助學生了解尚缺少的學分。
  2. 課程查詢與排課系統:提供一個介面來查詢學校開設的課程,並能即時從學校網站獲取特定課程的最新資訊(例如剩餘名額)。

✨ 主要功能

  • 自動學分分析
    • 使用 Selenium 自動化登入學生資訊系統並下載歷年成績資料。
    • 解析成績資料,並根據系所畢業要求計算目前已修、尚缺的學分。
  • 即時課程查詢
    • 提供所有課程的快取資料庫,加快查詢速度。
    • 可針對特定課程向學校伺服器發送請求,獲取最即時的剩餘名額等資訊。
  • Web 介面
    • 使用 Flask 作為後端伺服器,提供 API 接口。
    • 啟動程式時會自動在瀏覽器中開啟操作介面,方便使用。
  • 效能優化
    • 設有記憶體內快取機制 (In-Memory Cache),避免在短時間內重複向學校伺服器請求相同資料,減少等待時間。
    • 設有請求頻率限制 (Rate Limiter),防止對學校伺服器造成過大壓力。

🚀 安裝與啟動

環境需求

  • Python 3.x
  • Google Chrome 瀏覽器

安裝步驟

  1. 複製專案

    git clone https://github.com/YOUR_USERNAME/YOUR_REPOSITORY.git
    cd YOUR_REPOSITORY
  2. 建立虛擬環境 (建議)

    python -m venv venv
    • Windows: venv\Scripts\activate
    • macOS/Linux: source venv/bin/activate
  3. 安裝依賴套件requirements.txt 檔案安裝所有必要的 Python 套件。

    pip install -r requirements.txt
  4. 啟動應用程式 執行後端的 Flask 應用程式。

    python backend/app.py

    程式啟動後,會自動在您的預設瀏覽器開啟 http://localhost:5000

📖 如何使用

  1. 學分分析

    • 在主畫面上,點擊「啟動學分分析」按鈕。
    • 程式會自動開啟一個 Chrome 瀏覽器視窗,並導向高雄大學的登入頁面。
    • 請在該瀏覽器視窗中手動輸入您的學號與密碼以登入系統。
    • 登入成功後,程式會自動抓取您的歷年成績並進行分析,最後將結果顯示在介面上。
  2. 課程查詢

    • 在主畫面的課程查詢區塊,您可以透過關鍵字搜尋課程。
    • 點擊任一課程,可以查看詳細資訊。
    • 點擊「更新即時資訊」之類的按鈕,系統會向學校伺服器請求該課程的最新狀態並更新在介面上。

🛠️ 技術堆疊

本專案使用了以下的技術與函式庫:

  • 後端 (Backend)
    • Flask: 輕量級的 Web 框架,用於建立 API 伺服器。
    • Flask-Cors: 處理跨域請求。
    • Flask-Limiter: 用於 API 的請求頻率限制。
    • Waitress: 用於生產環境的 WSGI 伺服器。
  • 網頁爬蟲 (Web Scraping)
    • Selenium: 用於模擬瀏覽器操作,自動登入與抓取學分資料。
    • BeautifulSoup4: 用於解析 HTML 網頁內容。
    • Requests: 用於發送 HTTP 請求以獲取課程資訊。
  • 前端 (Frontend)
    • HTML, CSS, JavaScript (詳細請見 frontend 資料夾)。

📝 授權條款

本專案採用 MIT License 授權。

About

協助你分析高雄大學的學分以及排課系統

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages