参考教程
https://github.com/Bit-Developer/online-judge-mean
https://jojozhuang.github.io/project/online-judge-mean/
https://github.com/QingdaoU/OnlineJudgeDeploy/tree/2.0
https://github.com/QingdaoU/OnlineJudge/blob/master/README-CN.md
https://medium.com/@saisandeepmopuri/system-design-online-judge-with-data-modelling-40cb2b53bfeb
online judge组成部分:
主要用途:主要用于做算法题,通过提交所有测试用例
主要功能:
- 用户身份验证
- 用户管理:创建,更新, 删除用户
- 题目管理:创建,更新和删除问题
- 数据库:导入和导出用户,问题和提交记录,使用csv格式
https://blog.csdn.net/weixin_43931358/article/details/111224558
- 评测机:评测的引擎,提交的模版,提交的历史,多种语言支持
- UI-编辑器:代码编辑器,进度条,加载图像
- 比赛功能:通过从问题库中随机选择四个问题来生成竞赛
- note功能:在听课中能记笔记
- 知识图谱:不在迷茫
- 开源模板
- 安装教程
开发中所用到的技术:
- 服务器:使用Express, MongoDB进行构建
教程:Express,MongoDB
- RESTful API: express, express router, mongoose, cors
- Logging: morgan, winston
- User Authentication(用户认证): jsonwebtoken, passport, cookie-parser, express-jwt
- Import/Export Data(导入导出数据): multer, csv-express, fast-csv
使用 express 作为web server去管理RESTAPI
- 客户端:使用 Angular和3rd-party库进行构建
教程:Typescript,Angular,3rd-party,ngx-editor
- CSS和图标:bootstrap,font-awesome
- Rich Text Editor: ngx-editor
- Code Editor: ngx-monaco-editor
- Progress Bar: ngx-progressbar
客户端构建教程
代码编辑器
- 评测系统
这是整个online judge的核心技术
- 题解的主数据:
对于每个问题我们都有多种语言指定的解决方案,目前这款在线裁判系统引用支持三个语言方别是Java,python,JavaScript- 评测引擎
- 依赖
为了编译和运行Java,JavaScript和Python,相关的软件和工具需要被安装
3.1 jdkJDK (jdk 8 or above)
3.2 Node.Js (node 6 or above)
3.3 Python(2 or 3)
打造评测系统
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)