GithubHelp home page GithubHelp logo

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

WeJudge Team's Projects

bnuz-jw-spider icon bnuz-jw-spider

BNUZ教务系统认证爬虫Python语言实现,你可以用这个爬虫去模拟登录教务系统以检验学生账号是否合法

fancy-rank icon fancy-rank

模拟ACM ICPC World Final的滚动排行榜工具,React实现

lo-runner icon lo-runner

Loco's program runner core, for online judge

system-stats icon system-stats

采集cpu/内存/磁盘占用/io状态/负载/内外网卡流量等相关指标

wejudge-1.0 icon wejudge-1.0

WeJudge 在线程序代码评测辅助教学系统 1.0 开源

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.