All Projects → LanceLRQ → wejudge

LanceLRQ / wejudge

Licence: GPL-3.0 license
WeJudge1.0版本,已严重过时了,仅供学习,请不要继续使用。

Programming Languages

python
139335 projects - #7 most used programming language
HTML
75241 projects
javascript
184084 projects - #8 most used programming language
CSS
56736 projects
PHP
23972 projects - #3 most used programming language

WeJudge

An Online Judge Work for Education

程序设计在线评测辅助教学系统

演示网址:https://oj.bnuz.edu.cn:8081/;游客账号:guest,密码:wejudge

最新消息

2017年12月:WeJudge2.0于2017年9月发布第一个测试版本,目前仍在更新中。2.0项目已经申请著作权,并且决定暂时不开源,成立内部团队进行更新迭代。欢迎北师大珠海校区有意向加入项目组学习的同学们,发邮件到me#lanrongqi.com或者lancelrq#gmail.com联系我。岗位需求:Python后端开发、ReactJS前端开发、UI设计、产品运营。

2017年03月:WeJudge2.0正在开发中,此1.x版本不再更新;

介绍

 这是一个基于Python 2.7语言和django 1.8框架所开发的一套在线程序代码在线评测系统,支持C、C++、Java语言的评测。系统在支持代码评测的基础上,加入了在线教学管理和作业管理的功能,可以支持教学辅助使用。

  我曾经也是ACM校队的一员,大一的时候游走于国内各大OJ,刷题,并且还去2015广东省赛打了个酱油拿了个铜牌。因某些原因退出校队后,在一次与导师的聊天中不谋而合,萌生了开发这个OJ的想法。

  1.0版本于2015年5月开始着手研究,7月底开始开发,9月初第一版测试上线。经过一个学期的使用,发现存在的问题,决心对其代码重构,于2016年1月中旬开始重构系统代码,3月初完成并上线;而后又是一个学期的使用,师生反馈效果良好,并在16年暑假期间对其进行完善,最终于2016年8月20日发布正式版。历时1年零3个月。

  **从系统设计、数据建模,到代码编写、调试,再到部署、上线、维护,几乎都是我一个人搞定的。**同时也感谢学校和老师的大力支持,提供硬件设施,以及项目经费等。

  构建这样一个完整的系统需要付出很多辛劳,但是也是一次非常好的学习机会,从中的受益无穷。因此,我也希望将这个源代码以GPL协议公开,以便有意愿想要学习或者想要二次开发的朋友能够作为一个参考。代码写的不好,文档也不多,请见谅,如果有什么问题,欢迎发邮件到 me#lanrongqi.com 联系我。(为啥是#号,咱都懂的哈)

环境需求

环境

Ubuntu + Nginx + Python2.7 + MySQL 5.6 ,建议用gunicorn来作为uWSGI管理器。

组件

Lo-runner (这是我fork并且修改过的,直接安装即可:https://github.com/LanceLRQ/Lo-runner/)

django >= 1.8

dbutil

django-mysqlpool

smtplib

PIL

xlrd

xlwt

还有记不住了...反正报什么错装什么呗,Lorun去我个人主页下的那个fork里边下或者去原作者那下都行。

查重用的是那个什么Laven...的请自行看源代码..

apt install indent (这个是支持那个代码格式化的命令行工具)

存储目录

请自己看 const.py 文件内的内容

目录详解

<root>
├ wejudge					WeJudge网站目录

	├ apps					├ Django APP目录,里边所有APP文件夹内的结构和Django的模板文件结构一致
		├ account				├ 用户账户模块
		├ asgn					├ 作业模块
		├ bnuzoj				├ 历史遗留的名称,网站的全站内容
		├ contest				├ 比赛模块
		├ cpanel				├ 管理模块
		├ datacenter			├ 数据分析模块(即将废弃)
		├ education				├ 教学中心模块以及教学资源库模块
		├ helper				├ 帮助页面模块
		├ oauth2				├ 内部Oauth2实现模块(服务端),不完善,未使用。
		├ problem				├ 题目库模块
		
	├ kernel				├ 业务逻辑核心代码
	
		├ general				├ 系统的核心功能以及常量放置点
			├ const.py				├ 系统公共常量
			├ error_const.py		├ 系统错误代码常量
			├ ESConnector.py		├ (北师珠)教务系统对接模块
			├ GeneralTools.py		├ 通用功能模块
			├ LocalStorage.py		├ 本地文件存储封装
			├ PagerProvider.py		├ 分页、分页按钮渲染提供程序
			├ RestStruct.py			├ RESTful消息体
			├ ViewerFramework.py 	├ Django模板渲染器封装
			├ WebConfiguration.py	├ 网站配置信息模块
		(其余目录含义同上apps文件夹)
		
	├ static				├ 静态文件,请使用Nginx等来管理,Django自带静态管理的似乎没有用
	├ templates				├ HTML模板代码(子目录含义同上apps文件夹)
	├ settings.py			├ Django配置文件
	├ urls.py				├ 中央路由配置
	├ wsgi.py				├ uswgi 入口
	
	
├ JudgeService			评测机服务

	├ base.py				├ 基础功能模块
	├ config.py				├ 配置文件
	├ main.py				├ 入口
	├ master.py				├ 评测机模块
	├ master_func.py		├ 评测机模块
	├ tdmaker.py			├ 测试数据生成器模块
	├ master_func.py├ 测试数据生成器模块

版本说明

当前版本是V1.0.3,更新于2016年9月26日。

作者简介

蓝荣祺

联系邮箱:me#lanrongqi.com 或者 lancelrq#gmail.com

微信:LanceLRQ

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].