专栏首页Python七号来练手吧,一个类似力扣的在线测评项目

来练手吧,一个类似力扣的在线测评项目

阅读大约需要 2 分钟

程序员对力扣应该都熟悉的,在上面可以使用任意一门熟悉的编程语言写代码,在线执行代码,提交,看到击败超过 90%,你会不会心跳一下?用的同时,你是否想过力扣背后的设计和实现,假如让你自己设计一个类似力扣的系统呢?你可以把这个当作系统设计的面试题,思考如何回答。

最好的回答,就是自己真正动手设计一个,当然这太难了,不过 GitHub 上有现成的,你只需要自己部署下,然后用一用,对照着功能,阅读源码,最后觉得不爽的话,自己改一改源码。这个过程,一定能学到很多知识。我的 Web 技能就是从别人的项目那里学到的。

先来个截图

通过这个项目,你可以学习到 Docker、Django、Django REST Framework、Vue、Redis、PostgreSQL 技术栈,前后端分离,模块化编程,微服务等设计实践。

功能点

1、ACM/OI 两种比赛模式、实时/非实时评判 任意选择

2、丰富的可视化图表,一图胜千言

3、支持 Template Problem,可以添加函数题甚至填空题

4、更细致的权限划分,超级管理员和普通管理员各司其职

5、多语言支持:C, C++, Java, Python2, Python3,题目可以选择使用的语言

6、Markdown & MathJax 支持

7、比赛用户IP限制 (CIDR ranges)

安装部署

无论你是 Linux、MacOS 还是 Windows,请先安装 Docker、Python、pip、git、docker-compose 工具,确保在命令行可以执行 docker、python、pip、git、docker-compose 命令,安装方法自行搜索。

请选择磁盘空间富余的位置,克隆项目,并进入目录:

git clone -b 2.0 https://github.com/QingdaoU/OnlineJudgeDeploy.git && cd OnlineJudgeDeploy

Docker 一键部署:

docker-compose up -d

想知道到底启动了那些服务,可以看文件 docker-compose.yml 的内容,看不懂就去 Doker 官方文档看每一个命令的解释。

根据网速情况,大约 5 到 20 分钟就可以自动搭建完成,全程无需人工干预。

等命令执行完成,然后运行 docker ps -a,当看到所有的容器的状态没有 unhealthy 或 Exited (x) xxx 就代表已经启动成功。

浏览器打卡 http://localhost/ 就可以看到

注册后,可以在个人设置页面设置系统为中文语言。

截图

源代码

在线测评项目源代码:

后端(Django): https://github.com/QingdaoU/OnlineJudge

前端(Vue): https://github.com/QingdaoU/OnlineJudgeFE

判题沙箱(Seccomp): https://github.com/QingdaoU/Judger

判题服务器(对Judger的封装): https://github.com/QingdaoU/JudgeServer

公众号回复「在线测评」也可以获取,这样当某天你需要项目地址的时候不需要翻页找文章。

另外,公众号回复「GitHub」告诉你如何找到有趣的开源项目。

本文分享自微信公众号 - Python七号(PythonSeven),作者:somenzz

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-08-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

推荐阅读

  • 从0到1快速了解ElasticSearch数据检索

    这篇文章主要讨论一下ElasticSearch数据检索内部流程,方便大家对数据检索的理解。如果对ElasticSearch的文档写入不了解的同学可以先看一下上一篇文章【从0到1了解ElasticSearch文档写入】。

    爱拼才会赢
    ElasticsearchServiceNoSQL存储
  • 秒杀设计服务稳定性思考

    秒杀活动主要涉及的前端页面有活动推广页、商品详情页,涉及到的后端服务主要有商品服务、库存服务、订单服务,简要流程图如下:

    爱拼才会赢
  • 容灾系列(五)——数据库容灾建设

    在一个数据为王时代,数据安全视为一家企业命根子,因此如何保障企业数据安全尤为重要。本文主要从数据库容灾方案视角,基于当前客户业务并结合技术&产品,制定最佳容灾方案。主要从以下三个方面来介绍:

    开元
    数据库解决方案数据库架构设计
  • Elasticsearch 7.10.1集群压测报告(4核16G*3,Intel)

    本文描述问题及解决方法同样适用于 腾讯云 Elasticsearch Service(ES)。

    岳涛
    大数据大数据解决方案压力测试ElasticsearchService
  • Elasticsearch 7.10.1集群压测报告(4核16G*3,AMD)

    本文描述问题及解决方法同样适用于 腾讯云 Elasticsearch Service(ES)。

    岳涛
    压力测试大数据大数据解决方案ElasticsearchService
  • Elasticsearch压测工具esrally部署之踩坑实录(下)

    本文描述问题及解决方法同样适用于 腾讯云 Elasticsearch Service(ES)。

    岳涛
    压力测试ElasticsearchService大数据大数据解决方案
  • Elasticsearch 6.0.0本地单机16核32G压测报告

    本文描述问题及解决方法同样适用于 腾讯云 Elasticsearch Service(ES)。

    岳涛
    ElasticsearchService大数据大数据解决方案性能测试
  • Elasticsearch压测工具esrally部署之踩坑实录(上)

    本文描述问题及解决方法同样适用于 腾讯云 Elasticsearch Service(ES)。

    岳涛
    性能测试大数据大数据解决方案ElasticsearchService
  • 第一届腾讯云“开发者开放麦”,10月31日等你来talk!

    PS:想要结交到更多热爱云产品,喜欢云技术讨论的朋友,想有更多机会与产品&开发面对面交流,想参与更多腾云先锋(TDP)活动,获取更多TDP专属福利,欢迎扫描下图群二维码,加入腾云先锋(TDP)反馈交流群,我们共同成长进步。

    腾云先锋团队
  • Android 搭建人脸核身静默验证模式

    (2)腾讯云控制台开通人脸核身权限 https://console.cloud.tencent.com/faceid/access

    袁伦桥
    人脸核身Android

扫码关注云+社区

领取腾讯云代金券