Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
278 commits
Select commit Hold shift + click to select a range
897fdde
关闭RE信息的全输出模式,改为部分输出,不显示in文件中的输入数据,避免全输出模式下in、out文件输入输出数据的泄露而导致的恶意刷题行为
lixun2015 Mar 22, 2020
221066b
fixed
lixun2015 Mar 22, 2020
7c98e6f
恢复提交界面语法高亮开关$OJ_EDITE_AREA的作用
lixun2015 Mar 23, 2020
dcd462d
fixed:语法高亮组件中scheme、Lua和Go语言没有对应的格式刷,先用c的刷子替代,不然显示scheme、Lua和Go语言代码时J…
lixun2015 Mar 23, 2020
8e7ca06
fix css
lixun2015 Mar 23, 2020
657a410
完善并美化代码对比页面
lixun2015 Mar 24, 2020
67c3122
语言文件补充词汇
lixun2015 Mar 24, 2020
bd66046
修改:状态页增加SIM代码相似度过滤
lixun2015 Mar 24, 2020
7da6380
修改:增加显示类似代码作者的昵称+fixed:某个提交人工判题后需要刷新页面才能再次人工判题这个提交
lixun2015 Mar 24, 2020
2ffd003
fixed
lixun2015 Mar 24, 2020
f109735
fixed
lixun2015 Mar 25, 2020
b0079f9
add function get_set_name($pid)
lixun2015 Mar 26, 2020
76e3d79
语言文件用词修改
lixun2015 Mar 26, 2020
edc83b5
add function show_category($source,$size)
lixun2015 Mar 27, 2020
aa4456e
修改:前后台题目列表及题目页增加ajax动态添加来源/分类的功能
lixun2015 Mar 27, 2020
4485c63
修改:添加题目或者编辑题目时,增加对来源/分类的关键字去重
lixun2015 Mar 27, 2020
0a0d355
fixed
lixun2015 Mar 27, 2020
890d909
adjust css style
lixun2015 Mar 27, 2020
06c821e
fixed:只有可编辑的题目才能在后台显示,无论隐藏与否
lixun2015 Mar 27, 2020
0874579
upgrade function get_set_name($pid)
lixun2015 Mar 27, 2020
4195c8b
修改:增加来源/分类显示页
lixun2015 Mar 27, 2020
b8be601
修改:对有权限查看隐藏题目的管理员标示这道题是否是隐藏的
lixun2015 Mar 28, 2020
0c57ef3
fixed:题目删完之后,新加题目编号要从1000开始
lixun2015 Mar 28, 2020
55025d7
修改题目A+B的一些说明及测试数据和例程(C/C++)
lixun2015 Mar 28, 2020
0a118c8
fixed:安装时创建upload文件夹并赋权,以免后期因为文件夹权限问题导致上传文件失败
lixun2015 Mar 28, 2020
3c92462
fixed
lixun2015 Mar 28, 2020
10fa315
remove \n
lixun2015 Mar 28, 2020
f2ea959
fixed:OI信息奥赛模式下因正确代码的pass_rate是1.00,无法写入数据库导致判题无法成功
lixun2015 Mar 29, 2020
0534022
增加OI_MODE的切换脚本,方便修改比赛模式
lixun2015 Mar 29, 2020
55ed4a3
增加判题机重新编译脚本
lixun2015 Mar 29, 2020
2ac602e
补充说明
lixun2015 Mar 29, 2020
b578260
详细安装步骤,以及一些常用参数的配置说明
lixun2015 Mar 30, 2020
faa1e62
隐藏Pyhon3的语言选项,并补充相关注释说明(看maintainer-manual.md中说明Python2和Pyhon3可使用同一个语…
lixun2015 Mar 30, 2020
5dc6f4a
增加班级模式的说明,以及由旧版升级所需sql文件
lixun2015 Mar 30, 2020
804aaab
README文件添加目录
lixun2015 Mar 30, 2020
8390dcf
README文件添加目录
lixun2015 Mar 30, 2020
658b973
Merge branch 'master' of github.com:lixun2015/HZNUOJ
lixun2015 Mar 31, 2020
56a59d5
语言文件补充词汇
lixun2015 Mar 31, 2020
fc7380e
后台比赛列表页面增加比赛类型、状态筛选,并增加显示总赛时及是否运行中的信息
lixun2015 Mar 31, 2020
1a82309
前台比赛列表页面增加比赛类型、状态筛选
lixun2015 Mar 31, 2020
761e7a0
修正
lixun2015 Mar 31, 2020
82b0b36
change 'template/hznu' to 'template/$OJ_TEMPLATE'
lixun2015 Mar 31, 2020
304167a
change 'template/hznu/ojINDEX.jpg' to 'template/$OJ_TEMPLATE/ojINDEX.…
lixun2015 Mar 31, 2020
acffa4d
修改:根据参数$OJ_AUTO_SHARE决定是否显示相关帮助信息
lixun2015 Mar 31, 2020
f3d7e82
turn off $OJ_TEST_RUN
lixun2015 Apr 1, 2020
1be379b
fixed
lixun2015 Apr 1, 2020
420fb37
fixed:修复搜索结果显示在一页
lixun2015 Apr 1, 2020
8b53b4d
fixed:编辑题目时,若author留空保存时会自动填入编辑者的用户名
lixun2015 Apr 1, 2020
83a9a1c
增加题目是否启用的过滤,修改分页方式,另外通过关键词搜索的结果不分页
lixun2015 Apr 1, 2020
0f6044a
增加bootstrap-select中文化组件
lixun2015 Apr 1, 2020
e2e2176
修改:将来源/分类标签按字母排序再输出
lixun2015 Apr 1, 2020
d4e73a8
修改function show_category,根据前后台页面,分别生成对应的来源/分类链接
lixun2015 Apr 2, 2020
621fa35
add function sortByPinYin($array)
lixun2015 Apr 2, 2020
221033d
修改:将题目来源/分类的关键字按拼音字母排序后再写入数据库
lixun2015 Apr 2, 2020
0312527
修改:增加批量处理题目来源/分类标签的功能,给选定题目批量删除指定标签、批量打标签
lixun2015 Apr 2, 2020
61be0b3
fixed
lixun2015 Apr 2, 2020
f101ec4
修改:后台删除分类标签前先确认
lixun2015 Apr 4, 2020
fb7994d
fixed
lixun2015 Apr 5, 2020
172eca5
调整自增的起始值,比赛编号从1000开始,空表去掉自增起始值设置,solution表自增起始值从3开始
lixun2015 Apr 5, 2020
247fb74
fixed: change `user_id` CHAR(20) to `user_id` CHAR(48)
lixun2015 Apr 5, 2020
83cc7d2
fixed
lixun2015 Apr 11, 2020
c6e2ed2
remove whitespace beside "="
lixun2015 Apr 12, 2020
c1ff602
add index.php redirect to /OJ/
lixun2015 Apr 12, 2020
e21fedc
fixed
lixun2015 Apr 12, 2020
76b24d4
fixed
lixun2015 Apr 12, 2020
7101231
修改:导入题目的author字段留空
lixun2015 Apr 15, 2020
04a43ad
修改:若题目author字段是空则显示外部导入
lixun2015 Apr 15, 2020
45cd158
修改:若题目author字段是空则显示外部导入
lixun2015 Apr 15, 2020
da91cf6
修改:后台比赛管理页面增加显示比赛创建人
lixun2015 Apr 15, 2020
ce79a1f
修改:source来源标签显示全部文字,不缩写
lixun2015 Apr 18, 2020
e8c105d
add js.php to store function problem_add_source( )
lixun2015 Apr 18, 2020
eb9206d
修改:来源/分类标签的添加使用统一的js.php
lixun2015 Apr 18, 2020
6dd456b
修改:优化页码显示,避免页码过多导致页面拥挤
lixun2015 Apr 19, 2020
ab1ca8b
fixed
lixun2015 Apr 19, 2020
f1a2730
语言文件补充词汇
lixun2015 Apr 19, 2020
be099ec
修改权限+增加静默更新模式,方便在ranklist.php排名页由管理员手工更新排名数据
lixun2015 Apr 19, 2020
6f98119
修改:ranklist.php排名页,增加按年、月、周、日的排名统计,增加人工更新排序数据按钮及升降序排列按钮
lixun2015 Apr 19, 2020
665e2ff
修改:将后台题目列表中的用户标签替换成显示题目的通过率,并增加AC、submit、通过率的升降序排列按钮
lixun2015 Apr 19, 2020
a72c143
fixed:添加数据库触发器修复同一用户类似代码提交第二遍会被认定为抄袭的问题
lixun2015 Apr 20, 2020
34ffb10
修改:将连接mysql数据库的默认用户名密码root/root替换成debian-sys-maint/随机密码,提高系统安全性
lixun2015 Apr 21, 2020
6f56776
修改:去除数据库账户密码默认为root/root的相关说明
lixun2015 Apr 21, 2020
c80138f
修改:增加用户批量删除功能
lixun2015 Apr 23, 2020
67e1e96
修改:个人信息页增加代码提交数和AC数的按月统计图表
lixun2015 Apr 24, 2020
1dabe06
修改:比赛统计页增加代码提交数和AC数的分钟统计图表
lixun2015 Apr 24, 2020
a1d562c
修改:将比赛排名页ranklist_ajax_query查询结果的链接目标改为_blank,并在查询结果中增加人工判题功能。
lixun2015 Apr 27, 2020
0528161
修改:调整比赛排名中金银铜牌及题目结果的显示样式
lixun2015 Apr 27, 2020
117505b
fixed
lixun2015 Apr 29, 2020
60bdd20
remove unused js file
lixun2015 Apr 29, 2020
c11b70c
move tablesorter from include dir to plugins dir
lixun2015 Apr 29, 2020
b5e5cee
修改用词
lixun2015 Apr 29, 2020
e4c0ac0
修改:比赛排名页面使用tablesorter.js增加表格内排序功能
lixun2015 Apr 29, 2020
081bd7c
修改编译错误辅助说明
lixun2015 Apr 29, 2020
2d78844
修改:增加操作提示
lixun2015 Apr 29, 2020
b510424
修改:代码提交前增加一道简单的检查环节
lixun2015 Apr 29, 2020
f648541
fixed
lixun2015 Apr 29, 2020
d899c74
修改:精简代码
lixun2015 May 1, 2020
94bbc19
remove unused file
lixun2015 May 2, 2020
a1b7c2d
修改:根据$OJ_RANK_LOCK_PERCENT确定封榜时间
lixun2015 May 2, 2020
4fb8145
语言文件补充词汇
lixun2015 May 2, 2020
85281ce
修改:增加显示封榜时间
lixun2015 May 2, 2020
6d82543
修改:增加显示封榜状态
lixun2015 May 2, 2020
332a19b
修改:增加OI比赛模式的排名
lixun2015 May 2, 2020
b7d7e80
修改:将“/OJ/”这样的绝对路径修改为相对路径,以便将web部分部署到不同的文件夹
lixun2015 May 4, 2020
d3ba2b6
修改:使用$OJ_HOME统一设置OJ首页地址
lixun2015 May 4, 2020
b03fc81
修改:使用$ICON_PATH统一设置网站图标
lixun2015 May 4, 2020
fc6dbe9
remove unused file
lixun2015 May 4, 2020
e305475
修改配置说明
lixun2015 May 4, 2020
04e199b
修改:合并get_problemset() 和get_set_name()功能类似的函数
lixun2015 May 4, 2020
463aa60
修改:来源/分类为空时也对管理员显示添加来源/分类的按钮
lixun2015 May 4, 2020
d251cc9
修改:修改封榜机制,unlock字段为1不封榜,0用时间偏移量控制封榜(单位秒),2用总赛时的占比控制封榜(单位%),时间和比例共用一个l…
lixun2015 May 4, 2020
97ef9fd
修改:比赛添加及编辑页面增加封榜及奖牌参数设置
lixun2015 May 5, 2020
dc5792c
修改:去除封榜、奖牌参数设置
lixun2015 May 5, 2020
c755bb3
语言文件补充词汇
lixun2015 May 5, 2020
ab76cac
修改:恢复原先的按设定数量显示奖牌的机制
lixun2015 May 5, 2020
22e52d8
fixed
lixun2015 May 6, 2020
8a4756c
fixed
lixun2015 May 6, 2020
97d33c4
fixed
lixun2015 May 6, 2020
8c5f637
修改:增加批量分班的导航链接
lixun2015 May 7, 2020
01aac6c
修改:班级名称中可以包含加号
lixun2015 May 7, 2020
3f45fbb
fixed
lixun2015 May 8, 2020
801dab3
fixed:修正页码越界后的显示问题
lixun2015 May 8, 2020
db9d212
语言文件补充词汇
lixun2015 May 8, 2020
8419065
管理后台增加批量分班功能
lixun2015 May 8, 2020
832bbe2
fixed
lixun2015 May 10, 2020
682b674
修改:对比赛账号隐藏changeTag.php链接
lixun2015 May 10, 2020
44b022c
修改密码生成函数,增加密码强度
lixun2015 May 10, 2020
e362ab9
css
lixun2015 May 10, 2020
43daf39
fixed: replace ereg_replace() , ereg() and Constractor function
lixun2015 May 10, 2020
645ddf6
语言文件补充词汇
lixun2015 May 10, 2020
ce62fdf
修改:恢复密码重置功能
lixun2015 May 10, 2020
315288b
验证码图片添加cursor:pointer样式
lixun2015 May 10, 2020
487fd93
修改:增加邮箱输入时的自动补全功能
lixun2015 May 10, 2020
6e8ee81
fixed
lixun2015 May 10, 2020
0e9e795
fixed
lixun2015 May 11, 2020
bfe6a94
修改:修改CSS,美化删除、编辑等操作按钮
lixun2015 May 12, 2020
5d05f7e
fixed
lixun2015 May 12, 2020
2e2a026
修改:公告管理列表增加显示公告的优先级和创建者
lixun2015 May 12, 2020
00921b4
修改:createPwd()函数增加参数标示生成的密码是否要包含特殊符号的参数
lixun2015 May 12, 2020
9777b0d
fixed
lixun2015 May 12, 2020
4388014
修改:表problemset的主键index改为自动递增
lixun2015 May 13, 2020
1569cee
语言文件增减词汇
lixun2015 May 15, 2020
dee7594
修改:调整帮助信息前后位置
lixun2015 May 15, 2020
7e0ae2d
修改:后台增加题库管理功能
lixun2015 May 15, 2020
c6e778f
fixed
lixun2015 May 16, 2020
3e57d16
fixed
lixun2015 May 16, 2020
5f6e4a4
修改:管理后台增加批量更改题目归属题库的功能
lixun2015 May 16, 2020
d024c6e
修改:添加hustoj迁移到HZNUOJ的功能(迁移web部分,判题机不变)
lixun2015 May 18, 2020
561ea0a
增加将hustoj升级为HZNUOJ的相关说明(只迁移web部分,后台的判题机不变)
lixun2015 May 19, 2020
4bc5f88
修改排版
lixun2015 May 19, 2020
67d7692
修正提示语
lixun2015 May 19, 2020
6b702e0
fixed: Specified key was too long; max key length is 1000 bytes IN Ub…
lixun2015 May 23, 2020
48119b6
fixed
lixun2015 May 23, 2020
68b52a3
rename hustoj2HZNUOJ.sh To hustoj2HZNUOJ-ubuntu16+.sh
lixun2015 May 23, 2020
0fdca27
fixed
lixun2015 May 23, 2020
efc33a1
修改:统一数据库各表的引擎和字符集
lixun2015 May 24, 2020
ee359bc
补充说明
lixun2015 May 24, 2020
2fd3f29
修改:自动展开排在公告栏第一行的公告内容
lixun2015 May 24, 2020
3aac1c0
修改用词
lixun2015 May 24, 2020
d99ecfb
fixed
lixun2015 May 24, 2020
759677a
修改:提供备案号变量$OJ_BEIAN
lixun2015 May 24, 2020
d7fc8a2
fixed
lixun2015 May 24, 2020
92a6b3a
Update hustoj2HZNUOJ-ubuntu16+.sh
lixun2015 May 24, 2020
543c4ec
修改:修改`ip`字段长度为46适应IPv6
lixun2015 May 24, 2020
dbf023b
fixed
lixun2015 May 26, 2020
f6448d3
fixed
lixun2015 May 26, 2020
b513fb1
fixed css for mobile
lixun2015 May 27, 2020
156f4d6
修改:精简代码
lixun2015 May 30, 2020
44d828c
fixed
lixun2015 Jun 1, 2020
b0e00df
修改:安装和升级时提供主要参数定制
lixun2015 Jun 8, 2020
3b1b41f
fixed
lixun2015 Jun 20, 2020
793c631
修改:增加zTree插件
lixun2015 Jun 26, 2020
2523df3
语言文件补充词汇
lixun2015 Jun 26, 2020
f4e0b7f
修改:增加题目分类功能,可作为课程辅助手段,以树状目录显示,比通过题标签实现的来源/分类更系统,支持无极分类,支持通过拖拽调整节点次序和复制节点
lixun2015 Jun 26, 2020
4ef23fa
修改:界面微调
lixun2015 Jun 27, 2020
03a7a97
修改:默认不显示tag
lixun2015 Jun 30, 2020
13fb313
修改:界面微调
lixun2015 Jun 30, 2020
5c91a20
fixed
lixun2015 Jun 30, 2020
da92117
补充一些测试数据(contest及课程辅助的题目分类)
lixun2015 Jun 30, 2020
a57b021
fixed
lixun2015 Jul 1, 2020
f9b9a9e
fixed:修正比赛信息以及题号的显示
lixun2015 Jul 1, 2020
ccd54d1
修改:界面微调
lixun2015 Jul 1, 2020
b07f8bf
fixed for php7.2
lixun2015 Jul 2, 2020
192fd83
fixed for newest hustoj:新版的hustoj把solution表中的contest_id字段默认值从NULL改成了0…
lixun2015 Jul 2, 2020
622abe5
修改:界面微调,将浮点数取整
lixun2015 Jul 2, 2020
52302ea
fixed
lixun2015 Jul 2, 2020
696210b
修改:界面微调
lixun2015 Jul 2, 2020
81eb2c0
fixed:增加php-zip模块,以支持zip压缩包导入题目
lixun2015 Jul 4, 2020
3182088
fixed: 去除xml文件节点值中<![CDATA[]]>标签之外位置上的无关数据
lixun2015 Jul 5, 2020
df51458
语言文件补充词汇
lixun2015 Jul 5, 2020
2a9d2ee
修改:增加比赛固顶功能
lixun2015 Jul 5, 2020
2b25359
fixed
lixun2015 Jul 9, 2020
e22d0df
修改:比赛添加和编辑时可以批量添加选中班级的全部账号到比赛用户列表
lixun2015 Jul 10, 2020
c080897
修改:可以增加无入学年份标记的班级
lixun2015 Jul 10, 2020
4a6c0e4
班级显示相关修改
lixun2015 Jul 11, 2020
c05fbc2
语言文件补充词汇
lixun2015 Jul 12, 2020
b6bce73
修改:把submit和score更新合二为一,并加到后台管理菜单
lixun2015 Jul 12, 2020
e87dbdb
补充权限说明
lixun2015 Jul 14, 2020
35be674
fixed
lixun2015 Jul 14, 2020
b2b966a
修改:多语言支持
lixun2015 Jul 14, 2020
969cebe
fixed
lixun2015 Jul 20, 2020
50eeec7
修改:交换题库和竞赛&作业的菜单位置
lixun2015 Jul 20, 2020
282ead9
修改:增加两个显示开关
lixun2015 Jul 20, 2020
a0c8502
fixed
lixun2015 Jul 20, 2020
f2046a5
修改:提交代码后,自动的重新计算题目分值
lixun2015 Jul 20, 2020
2ec8a03
修改中文用词
lixun2015 Jul 21, 2020
2c04f1d
fixed:修复屏幕过窄或者移动端访问后台时,汉堡按钮不显示导致导航条不能访问的问题
lixun2015 Jul 21, 2020
bed02ba
微调
lixun2015 Jul 21, 2020
e562825
fixed
lixun2015 Jul 22, 2020
6cf3301
fixed
lixun2015 Jul 22, 2020
6b5d079
fixed
lixun2015 Jul 22, 2020
78596b4
微调
lixun2015 Jul 23, 2020
718b125
fixed
lixun2015 Jul 26, 2020
823f9cc
补充说明
lixun2015 Jul 26, 2020
f2aff66
修改:增加复制题目功能,包括复制题目文件夹中所有测试文件及prepend、append文件等,但不包括ac文件夹,方便将原题改编为代码附加题
lixun2015 Jul 26, 2020
84194dc
修改:增加access_level字段用于题库访问权限控制
lixun2015 Jul 27, 2020
1d24d47
修改:增加题库的访问权限管理,访问等级为x的用户只能查看、答题等级<=x的题库中的题目(只对用户在题库页面访问题目时有效,比赛中的题目无访…
lixun2015 Jul 31, 2020
2d03778
题库列表显示微调
lixun2015 Aug 2, 2020
1462931
修改:比赛排名页面中新增显示在参赛名单内(指定的比赛账号或者指定的竞赛&作业用户)但还未开始提交代码的用户,方便教师掌握情况。
lixun2015 Aug 3, 2020
97acdf4
修改:增加管理库内题目的链接
lixun2015 Aug 3, 2020
f3879f2
补充说明信息
lixun2015 Aug 3, 2020
4b409cf
修改:导入比赛用户时支持自定义密码
lixun2015 Aug 4, 2020
2e9c26b
修改:比赛账号导入增加一个学校信息
lixun2015 Aug 6, 2020
f07b28a
fixed
lixun2015 Aug 6, 2020
caf4a5f
修改:用户查询结果显示在一页上,方便后继处理
lixun2015 Aug 6, 2020
530ce96
修改:当题目同时在练习赛和正常的比赛中时,使练习赛中对应题目的答题不受限制(不会被锁定)
lixun2015 Aug 7, 2020
2076d6f
fixed
lixun2015 Aug 7, 2020
b5e42fa
修改练习赛中真实题号和代码查看按钮的显示策略
lixun2015 Aug 7, 2020
63ec504
修改:在练习赛中,如果开启了源代码查看,且本人已经AC该题,用户可以查看其他用户提交的本题代码
lixun2015 Aug 7, 2020
1c352ad
fixed
lixun2015 Aug 8, 2020
7051519
修改:1、更新排名代码打包成updateRank函数;2、登录时增加更新排名信息;3、普通账号登录后跳转回原页面
lixun2015 Aug 9, 2020
9624b6e
fixed:修复排名页面班级排序错乱问题
lixun2015 Aug 9, 2020
37889c6
fixed
lixun2015 Aug 11, 2020
82507ba
题库列表显示微调
lixun2015 Aug 11, 2020
2a17181
fixed:添加题目时富文本编辑器中内容的换行会变成\r\n
lixun2015 Aug 11, 2020
86a558c
修改:增加样例数据的复制功能
lixun2015 Aug 17, 2020
44ad091
fixed
lixun2015 Aug 20, 2020
c406cb9
调整kindeditor编辑器初始高度
lixun2015 Aug 26, 2020
613cb15
fixed:管理员只能编辑、修改权限比自身小的用户
lixun2015 Sep 2, 2020
76ea143
fixed
lixun2015 Sep 13, 2020
fe0b481
页面微调
lixun2015 Nov 13, 2020
04d002f
升级到hustoj的最新版判题机(截止到20201201)
lixun2015 Dec 10, 2020
38c3bac
根据判题机的升级,相应增加SQL/Fortran/Matlab三个语言
lixun2015 Dec 10, 2020
abc848e
更新安装脚本及说明文件,新增Ubuntu18下的安装脚本
lixun2015 Dec 10, 2020
9bc59d4
fix upload directory
lixun2015 Dec 15, 2020
0ac12f2
fixed
lixun2015 Feb 22, 2021
b694f46
调整下载比赛排名数据的列项目
lixun2015 Feb 22, 2021
94ab5ce
fixed:首页地址
lixun2015 Feb 22, 2021
f83a34a
修改:将过长的昵称和学校截短显示
lixun2015 Feb 22, 2021
f87f417
修改:管理员可修改用户的昵称、学校、邮箱
lixun2015 Feb 22, 2021
48c2487
修改:增加需要登录才能访问的开关
lixun2015 Mar 16, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
122 changes: 109 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,24 @@
**HZNUOJ 是基于 [HUSTOJ](https://github.com/zhblue/hustoj) 改造而来的,遵循GPL协议开源**
## **HZNUOJ 是基于 [HUSTOJ](https://github.com/zhblue/hustoj) 改造而来的,遵循GPL协议开源**

目录
--
[优势](#%E4%BC%98%E5%8A%BF)

[界面截图](#%E7%95%8C%E9%9D%A2%E6%88%AA%E5%9B%BE)

[部署指南](#%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97)

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[基于Docekr部署](#%E4%BD%BF%E7%94%A8docker%E6%8E%A8%E8%8D%90)

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[基于源码部署](#%E4%BD%BF%E7%94%A8%E6%BA%90%E7%A0%81)

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[功能配置](#%E5%8A%9F%E8%83%BD%E9%85%8D%E7%BD%AE)

[使用教程](#%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B)

[贡献代码/Bug反馈](#%E8%B4%A1%E7%8C%AE%E4%BB%A3%E7%A0%81bug%E5%8F%8D%E9%A6%88)



# 优势

Expand Down Expand Up @@ -48,10 +68,12 @@

#### 自行build

在仓库根目录下
下载源文件,在仓库根目录下执行build

```bash
docker build -t hznuoj:latest -f docker/Dockerfile ./
admin@ubuntu16:~$ git clone https://github.com/wlx65003/HZNUOJ.git
admin@ubuntu16:~$ cd HZNUOJ
admin@ubuntu16:~/HZNUOJ$ sudo docker build -t hznuoj:latest -f docker/Dockerfile ./
```

等待build完成即可。
Expand All @@ -67,13 +89,13 @@ HZNUOJ的Docker Hub主页:https://hub.docker.com/r/wlx65003/hznuoj ,会持
使用docker pull下载即可,由于HZNUOJ的Judger依赖较多,所以镜像很大,约1.2G,请耐心等待,或者自行寻找科学上网方式。最好还是自己build。

```bash
docker pull wlx65003/hznuoj
admin@ubuntu16:~$ docker pull wlx65003/hznuoj
```

### 启动容器

```
docker run -it --rm -p 90:80 --privileged hznuoj:latest
```bash
admin@ubuntu16:~$ docker run -it --rm -p 90:80 --privileged hznuoj:latest
```

其中`-p 90:80`表示把容器的80端口映射到宿主机的90端口,可自行修改,可以直接改成http默认的80端口以省去网址里的端口号。
Expand All @@ -87,17 +109,91 @@ docker run -it --rm -p 90:80 --privileged hznuoj:latest

## 使用源码

0. HZNUOJ目前只在Ubuntu16.04上跑过,在更高版本下判题机可能无法正常运行。
1. HZNUOJ目前只在Ubuntu16.04上跑过,在更高版本下判题机可能无法正常运行。(**2020年12月已将判题机更新到hustoj的最新版本判题机,Ubuntu18/20都已适配。**)

2. 下载源码,root权限运行`judger/install/install.sh` , 安装脚本会自动将系统默认更新源换成国内访问速度更快的阿里云更新源。
本地登录或者ssh远程登录Ubuntu16系统后,命令行下按顺序执行以下指令:
```bash
admin@ubuntu16:~$ git clone https://github.com/wlx65003/HZNUOJ.git
admin@ubuntu16:~$ sudo bash HZNUOJ/judger/install/install.sh
```

在Ubuntu18中安装时,命令行下按顺序执行以下指令:
```bash
admin@ubuntu18:~$ git clone https://github.com/wlx65003/HZNUOJ.git
admin@ubuntu18:~$ sudo bash HZNUOJ/judger/install/install-ubuntu18.04.sh
```
源码或者还可以直接访问`https://github.com/wlx65003/HZNUOJ` 下载zip包

3. 安装完成后访问localhost、服务器IP或相应域名即可。

4. 若想在现存的hustoj上使用HZNUOJ,请参看[HZNUOJ常见问题列表/将hustoj升级为HZNUOJ(只迁移web部分,后台的判题机不变)](wiki/maintainer-manual.md),

5. OJ的默认运行模式为OJ_OI_MODE=0 ACM竞赛模式,若要用于OI信息学奥赛训练,可以在安装前修改`/judger/install/judge.conf`OJ_OI_MODE=1,或在安装后运行/judger/install/**ch_OI_MODE.sh**脚本修改运行模式。

## 功能配置

### 原理

系统分为后台的Core(判题机)和前台的web(网站)两大部分。两个部分相对独立,通过数据库关联。判题机通过轮询数据库提取判题队列,生成判题信息回写数据库,web部分读取数据库显示在网页上。

若发现提交代码后无法判题,一直显示pending或者等待,请尝试服务器中运行以下命令重启判题机进程
```bash
admin@ubuntu16:~$ sudo pkill -9 judged && sudo judged && ps -A | grep judged
若出现类似"xxxx ? 00:00:00 judged"的字样,说明进程重启成功
```

更多原理和说明可参考[hustoj文档大全.pdf](https://github.com/zhblue/hustoj/wiki/hustoj文档大全.pdf)及[HZNUOJ常见问题列表](wiki/maintainer-manual.md)

### 参数配置

Core判题机部分的配置文件为/home/judge/etc/judge.conf,web网站部分的配置文件为/home/judge/HZNUOJ/web/OJ/include/static.php

详细的配置说明可以参看[HZNUOJ配置手册](wiki/Configuration.md)或者配置文件中的注释。

下面把几个可能会用到的功能配置参数说明一下:

### 比赛模式切换 OJ_OI_MODE

judge.conf中的OJ_OI_MODE负责标记判题机的判题模式是OI信息学奥赛模式还是ACM大学生程序设计竞赛模式。

#### OJ_OI_MODE = 0
判题模式默认为ACM大学生程序设计竞赛模式,一旦有测试实例出错就停止运行,比赛根据 AC 数量排名。

#### OJ_OI_MODE = 1
判题模式为OI信息学奥赛模式,即使有测试实例出错,它依旧会测试下去,比赛根据数据通过率排名,而不只看 AC 数量;另外会在status.php状态页中显示测试实例的通过率和程序最大运行时间。

可运行脚本快速修改或手动修改judge.conf文件
```bash
执行源码目录下的 `judger/install/ch_OI_MODE.sh` ,按照提示操作即可
admin@ubuntu16:~$ sudo bash HZNUOJ/judger/install/ch_OI_MODE.sh
```

### 判题WrongAnswer信息相关参数,输出模式切换 OJ_FULL_DIFF 和 对比信息查看开关 $OJ_SHOW_DIFF

judge.conf中的OJ_FULL_DIFF负责标记判题机的错误信息对比说明输出模式,static.php中的$OJ_SHOW_DIFF负责控制用户是否有权限在reinfo.php页看到上述错误信息对比说明。

**OJ_FULL_DIFF的修改不会对老的判题WrongAnswer信息产生影响,除非修改后重新判题。**

#### OJ_FULL_DIFF = 0
部分输出模式,若有测试实例出错,将出错的各组测试实例数据的输出数据xx.out,以及代码运行结果输出到表`runtimeinfo`,供reinfo.php页调用显示。

#### OJ_FULL_DIFF = 1
全输出模式,若有测试实例出错,将出错的各组测试实例数据的输入xx.in、输出数据xx.out,以及代码运行结果全部输出到表`runtimeinfo`,若将此类reinfo开放给选手,很容易因为in、out文件输入输出数据的泄露而导致恶意刷题,请谨慎使用。

#### $OJ_SHOW_DIFF = true
用户可以在reinfo.php页查看判题错误信息的对比说明。

#### $OJ_SHOW_DIFF = false
reinfo.php页会被禁止访问,用户不能查看判题错误信息的对比说明。

1. 下载源码
`git clone https://github.com/wlx65003/HZNUOJ.git`
或者直接访问`https://github.com/wlx65003/HZNUOJ` 下载zip包
### 代码相似度检测开关 OJ_SIM_ENABLE 和 $OJ_SIM

2. 若已安装mysql,请修改`intall.sh` `judge.conf` `/web/OJ/include/db_info.inc.php` 中的相应账户密码信息(默认为root/root)。若还未安装,请确保接下来安装mysql的过程中将用户名和密码都设成root
OJ_SIM_ENABLE负责标记判题机是否开启代码相似度检测,$OJ_SIM负责标记web部分的状态页上是否显示代码相似度检测的结果

3. 以root权限运行`judger/install/install.sh` , 请确保在目录 `judger/install/` 下
通过配置judge.conf中的OJ_SIM_ENABLE = 1 和 static.php中的$OJ_SIM = true 开启代码相似度检测,也就是抄袭检查功能,但只针对AC的代码,不检测没通过的代码。

4. 安装完成后访问localhost即可
判题机通过调用第三方应用程序SIM对**AC的提交代码**进行语法分析判读文本相似度,通过检验的代码将由判题机复制进题目数据的 ac 目录成为新的参考样本(基于此,长期开启本功能会占用大量硬盘存储空间)

# 使用教程

Expand Down
Loading