开发一个online judge

开发一个online judge,第1张

参考教程

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组成部分:

主要用途:主要用于做算法题,通过提交所有测试用例
主要功能:

  1. 用户身份验证
  2. 用户管理:创建,更新, 删除用户
  3. 题目管理:创建,更新和删除问题
  4. 数据库:导入和导出用户,问题和提交记录,使用csv格式

https://blog.csdn.net/weixin_43931358/article/details/111224558

  1. 评测机:评测的引擎,提交的模版,提交的历史,多种语言支持
  2. UI-编辑器:代码编辑器,进度条,加载图像
  3. 比赛功能:通过从问题库中随机选择四个问题来生成竞赛
  4. note功能:在听课中能记笔记
  5. 知识图谱:不在迷茫
  6. 开源模板
  7. 安装教程

开发中所用到的技术:

  • 服务器:使用Express, MongoDB进行构建
    教程:Express,MongoDB
  1. RESTful API: express, express router, mongoose, cors
  2. Logging: morgan, winston
  3. User Authentication(用户认证): jsonwebtoken, passport, cookie-parser, express-jwt
  4. Import/Export Data(导入导出数据): multer, csv-express, fast-csv

使用 express 作为web server去管理RESTAPI

  • 客户端:使用 Angular和3rd-party库进行构建
    教程:Typescript,Angular,3rd-party,ngx-editor
  1. CSS和图标:bootstrap,font-awesome
  2. Rich Text Editor: ngx-editor
  3. Code Editor: ngx-monaco-editor
  4. Progress Bar: ngx-progressbar

客户端构建教程
代码编辑器

  • 评测系统
    这是整个online judge的核心技术
  1. 题解的主数据:
    对于每个问题我们都有多种语言指定的解决方案,目前这款在线裁判系统引用支持三个语言方别是Java,python,JavaScript
  2. 评测引擎
  3. 依赖
    为了编译和运行Java,JavaScript和Python,相关的软件和工具需要被安装
    3.1 jdkJDK (jdk 8 or above)
    3.2 Node.Js (node 6 or above)
    3.3 Python(2 or 3)

打造评测系统

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1295077.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存