https://space.bilibili.com/700332132?spm_id_from=333.788.0.0
- 實驗內容
- 爬蟲
- Web系統設計
- 數據分析
- 實驗指導
- 爬蟲
- Web系統設計
- 自然語言處理與信息檢索
- 數據可視化
- 評分標準
- FAQ
- 實驗二:在線評測系統
- 實驗概述
- 實驗內容
- Step1:題目管理
- Step2:題目評測
- Step3:評測列表
- Step4:用戶管理
- Step5:日志與權限
- Step6:持久化存儲
- Adv1:特殊題目評測
- Adv2:前端交互
- Adv3:安全機制
- Adv4:代碼查重
- API 文檔
- 評分標準
- FAQ
- 倉庫拉取教程
- 附錄:本地 Git 安裝與配置指南
目錄
- 實驗目標
- 技術要求
- 基礎模塊(必做,共30分)
- 進階模塊(選做,最多加10分)
- API 文檔
- 評分標準
- 學習資源
- 致謝
OJ 系統實驗說明?
本實驗作業參考了清華大學韓文弢老師 Rust 程序設計訓練 OJ 大作業(作業背景)。
實驗目標?
構建一個小型但功能完整的 Online Judge (OJ) 系統,分階段實現,逐步掌握系統設計、API開發、安全控制等核心能力。
快速入門可參考快速入門文檔。
技術要求?
異步編程實踐:本次作業要求使用 FastAPI 的異步接口(async def)完成所有 API 開發,目的是讓大家初步體驗異步編程的概念和用法。異步編程是現代 Web 開發的重要技術,有助于提高應用程序的并發性能。不使用異步編程接口將拿不到本次作業分數,請同學們務必注意。
項目規模:為了讓大家初步體驗較大項目的開發,本次作業代碼行數預計在兩千行左右,請同學們合理規劃時間,做好進度管理。
提交規范:要求按照?Conventional Commits?規范編寫 Git 提交信息,不符合規范的提交將酌情扣分。
基礎模塊(必做,共30分)?
Step名稱主要功能描述詳細文檔Step1配置解析題目配置加載、字段校驗、異常處理step1.mdStep2評測控制程序執行、資源限制、輸出比對、動態注冊語言step2.mdStep3用戶系統用戶注冊/更新、權限管理、人工判題接口step3.mdStep4任務狀態管理評測任務流轉、調度、APIstep4.mdStep5評測日志日志結構化記錄、日志接口、權限step5.mdStep6數據持久化數據存儲、備份恢復、持久化結構與接口step6.md
進階模塊(選做,最多加10分)?
Advance名稱主要功能描述Adv1Special Judge特殊題目評測,支持多種評測方式Adv2前端交互極簡前端界面(如 Streamlit),與后端交互Adv3安全機制Docker 容器控制、命令過濾、資源限制Adv4代碼查重查重算法實現、抄襲檢測
API 文檔?
所有接口、參數、異常、狀態碼等詳見?api.md。
評分標準?
參見?requirements.md
學習資源?
- 技術教程:
- 系統設計基礎
- Python 異步編程
- Docker 容器技術
- 參考項目:
- Codeforces?- 知名OJ平臺
- LeetCode?- 編程練習平臺
- HackerRank?- 技術評測平臺
程序設計訓練(Python)keg-course 清華大學