很早就想自己写一个 OJ,趁着毕设的机会,手刃了一个垃圾版 OJ,判题部分代码见 JudgeClient
- 判题部分基于 Docker 和 linux C++
- Web 端前后端分离,采用 Springboot 微服务和 Vue
- 图表生成用的 eCharts
- 前端 UI 用的 iview
- axios 代替 jquery 的轻量级 ajax 插件
- Simditor 富文本编辑器
- codemirror 代码编辑器
- echarts 生成图表插件
- tar-simditor-markdown
遇到的坑
Simditor插件是模块化的,npm 装好了一直无法使用,后来找到替代品tar-simditor,如果需要支持 markdown,再装一个tar-simditor-markdown就行
- 前后端分离
公告页面
公告详情
题目列表
题目详情
竞赛列表
错误详细
竞赛详情
判题结果列表
排名
login
register
- 公告
- 题目
- 用户代码
- 排名浏览
- 竞赛
- 用户
- 权限鉴定 采用 JWT(Json Web Token) 验证,以 AOP 的方式执行验证
- 主从数据库 双 MySQL 可以减小单个数据库的压力
- 权限分类
Topic_adder题目管理Contest_organizer竞赛组织Contest_participant竞赛参与者Code_viewer代码查看Manual_judger远程判题Announcement_manager公告管理User_manager用户管理
- 判题结果
OJ_WT0Pending:等待判题OJ_WT1Waiting:排队中OJ_CIcompiling:编译中OJ_JIJudging:运行中OJ_ACAccepted:答案正确OJ_PEPresentation Error:格式错误OJ_WAWrong Answer:答案不对OJ_TLTime Limit Exceeded:运行超出时间限制OJ_MLMerrory Limit Exceeded:超出内存限制OJ_OLOutput Limit Exceeded:输出超过限制OJ_RERuntime Error:运行时错误OJ_CECompile Error:编译错误OJ_COCompetition Over:竞赛结束OJ_PAPartial Accepted:部分正确OJ_SESystem Error:系统错误











