系統架構設計
1. 系統架構設計
- 
前端 (Frontend) - 功能: 提供用戶界面,讓學生可以登錄、瀏覽課程、選課、查看已選課程和參與社群討論。
- 技術:
- HTML, CSS, JavaScript
- 前端框架:React.js
- UI 庫:Tailwind CSS
- AJAX 或 Fetch API 用於與後端進行數據通信
 
 
- 
後端 (Backend) - 功能: 處理用戶認證、課程管理、選課處理、數據存儲和社群功能。
- 技術:
- 編程語言:Django
- 用戶認證和授權:JWT(JSON Web Token)、OAuth
 
 
- 
數據庫 (Database) - 功能: 存儲用戶信息、課程數據、選課記錄和社群討論內容。
- 技術:
- SQL 資料庫:PostgreSQL
 
 
- 
伺服器和部署 (Server and Deployment) - 功能: 承載和運行網站,確保網站的高可用性和可擴展性。
- 技術:
- 伺服器:Nginx
- 部署平台:AWS
- 容器化技術:Docker Container
- 持續集成和持續部署(CI/CD):GitHub Actions
 
 
- 
安全性 (Security)[未使用] - 功能: 保護用戶數據和系統免受攻擊。
- 技術:
- HTTPS/SSL/TLS(確保數據在傳輸過程中的安全)
- 數據加密
- 防火牆和入侵檢測系統
 
 
- 
其他 (Other) - 功能: 提供輔助功能和增強用戶體驗。
- 技術:
- 日誌和監控:ELK 堆疊(Elasticsearch, Logstash, Kibana)、Prometheus 和 Grafana [未決定]
- 測試:單元測試(Jest、Mocha)、端到端測試(Cypress、Selenium)[未決定]
- API 設計:RESTFUL API
 
 
2. 具體功能模塊設計
- 
用戶管理 - 用戶註冊、登錄和認證
- 用戶資料管理(個人信息、頭像等)
 
- 
課程管理 - 課程列表展示和搜索
- 課程詳情查看(課程介紹、教師信息、課程大綱等)
 
- 
選課系統 - 課程選擇和退選
- 已選課程查看
- 選課通知和提醒
 
- 
社群功能 - 課程討論區
- 學生交流論壇
- 課程評價和反饋
 
- 
管理後台 - 課程信息管理(添加、修改、刪除課程)
- 用戶管理(用戶權限設置、用戶行為監控)
 
3. 技術選擇的理由
- 
前端技術:選擇 React.js 作為前端框架,因為它提供了組件化的開發模式,便於維護和重用;Tailwind CSS 提供了方便的樣式設計工具,能夠快速構建響應式界面。 
- 
後端技術:Django 是一個成熟的網頁框架,具備高效的開發效率和強大的安全性,並且有著良好的社群支持。使用 JWT 和 OAuth 能夠簡化用戶認證流程並增強安全性。 
- 
數據庫選擇:PostgreSQL 是一個功能強大的關係型數據庫,支持複雜查詢和高並發,適合存儲結構化數據。 
- 
伺服器和部署:Nginx 作為反向代理伺服器,能夠提高網站的性能和安全性。AWS 提供了可擴展的雲服務平台,方便未 來的擴展和維護。 
- 
安全性考量:選擇 HTTPS 和數據加密技術,能夠有效保護用戶數據和系統安全,防止潛在的攻擊。 
- 
測試和監控:ELK 堆疊和 Prometheus 能夠提供良好的監控和日誌功能,有助於及時發現和解決問題。