Skip to main content

系統架構設計

1. 系統架構設計

  1. 前端 (Frontend)

    • 功能: 提供用戶界面,讓學生可以登錄、瀏覽課程、選課、查看已選課程和參與社群討論。
    • 技術:
      • HTML, CSS, JavaScript
      • 前端框架:React.js
      • UI 庫:Tailwind CSS
      • AJAX 或 Fetch API 用於與後端進行數據通信
  2. 後端 (Backend)

    • 功能: 處理用戶認證、課程管理、選課處理、數據存儲和社群功能。
    • 技術:
      • 編程語言:Django
      • 用戶認證和授權:JWT(JSON Web Token)、OAuth
  3. 數據庫 (Database)

    • 功能: 存儲用戶信息、課程數據、選課記錄和社群討論內容。
    • 技術:
      • SQL 資料庫:PostgreSQL
  4. 伺服器和部署 (Server and Deployment)

    • 功能: 承載和運行網站,確保網站的高可用性和可擴展性。
    • 技術:
      • 伺服器:Nginx
      • 部署平台:AWS
      • 容器化技術:Docker Container
      • 持續集成和持續部署(CI/CD):GitHub Actions
  5. 安全性 (Security)[未使用]

    • 功能: 保護用戶數據和系統免受攻擊。
    • 技術:
      • HTTPS/SSL/TLS(確保數據在傳輸過程中的安全)
      • 數據加密
      • 防火牆和入侵檢測系統
  6. 其他 (Other)

    • 功能: 提供輔助功能和增強用戶體驗。
    • 技術:
      • 日誌和監控:ELK 堆疊(Elasticsearch, Logstash, Kibana)、Prometheus 和 Grafana [未決定]
      • 測試:單元測試(Jest、Mocha)、端到端測試(Cypress、Selenium)[未決定]
      • API 設計:RESTFUL API

2. 具體功能模塊設計

  1. 用戶管理

    • 用戶註冊、登錄和認證
    • 用戶資料管理(個人信息、頭像等)
  2. 課程管理

    • 課程列表展示和搜索
    • 課程詳情查看(課程介紹、教師信息、課程大綱等)
  3. 選課系統

    • 課程選擇和退選
    • 已選課程查看
    • 選課通知和提醒
  4. 社群功能

    • 課程討論區
    • 學生交流論壇
    • 課程評價和反饋
  5. 管理後台

    • 課程信息管理(添加、修改、刪除課程)
    • 用戶管理(用戶權限設置、用戶行為監控)

3. 技術選擇的理由

  1. 前端技術:選擇 React.js 作為前端框架,因為它提供了組件化的開發模式,便於維護和重用;Tailwind CSS 提供了方便的樣式設計工具,能夠快速構建響應式界面。

  2. 後端技術:Django 是一個成熟的網頁框架,具備高效的開發效率和強大的安全性,並且有著良好的社群支持。使用 JWT 和 OAuth 能夠簡化用戶認證流程並增強安全性。

  3. 數據庫選擇:PostgreSQL 是一個功能強大的關係型數據庫,支持複雜查詢和高並發,適合存儲結構化數據。

  4. 伺服器和部署:Nginx 作為反向代理伺服器,能夠提高網站的性能和安全性。AWS 提供了可擴展的雲服務平台,方便未來的擴展和維護。

  5. 安全性考量:選擇 HTTPS 和數據加密技術,能夠有效保護用戶數據和系統安全,防止潛在的攻擊。

  6. 測試和監控:ELK 堆疊和 Prometheus 能夠提供良好的監控和日誌功能,有助於及時發現和解決問題。