OJ平台产品文档
-
用户
-
[用户名(username), 密码,userId]
-
{性别,学号,年龄,邮箱,头像}
-
登录(用户名登录,邮箱登录)
-
注册(邮箱注册)
-
-
用户分组
- [分组标签]
-
编程题
-
[题目名称, 题目描述(详细信息,提示), 题目示例, 时间, 题目类型(客观, 编程题,主观),题目标签(树,图…), 题目状态(public, private), 作者,难度]
-
{}
-
出题
先出题目名称&题目描述&几组题目示例(>=1)
上传文件压缩一个zip(1.in,1.out,2.in,2.out…),前端计算校验值(sha256)一并回传后端,后端先校验sha256,然后校验格式,后端将压缩包+sha256传输到ftp服务器,判题端判题的时候先获取sha256的值,缓存不一致获取zip重新覆盖解压
ftp服务器 /题目编号/checkpoints.zip,/题目编号/checkpoints.sha256,
-
-
主观/客观题
- [题目, 时间, 题目标签(树,图), 题目状态(public, private), 作者,难度, 参考答案]
- {描述}
-
题目集(作业形式)
- [名称, 开始时间, 结束时间, 创建时间, 作者, 题目集状态(public, protected, private)]
- {描述, 使用范围}
-
题目集(测验形式)
-
[名称, 创建时间, 作者, 题目集状态(protected, private)]
-
{使用范围, 持续时间}
-
出题目集
备课时候制作题目集,第二天上课的时候发布,发布的时候,选择适用范围(可以多选)和持续时间
-
查看作答状态
按照题目看同学的作答状态,查看同学的所有题目的状态
针对每个同学的每个题目,可以查看每个同学的提交情况(已完成,判题中,未提交,出错(能查看错误原因))
-
预计判题时间(待定)
-
查看/导出分数
-
-
题目集(竞赛形式-跟鹿老师讨论待定)
- [名称,创建时间,作者,题目集状态(protected, private)]
课堂临时检测
- 创建临时用户组,并导出邀请码(每个用户可以填写邀请码,加入用户组) 参数是题目集,返回邀请码
如果不是竞赛
- 题目集的用户看自己的作答情况([题目id,题目的正确与否,错误的原因, 分数,时间空间测试点数量,语言])
- 题目集创建者看所有人的作答情况
- 用户看自己的正确率
- 查看题目的总正确率
- 看看题目的击败情况
如果是竞赛
ACM
- 用户组的用户看自己的作答情况([题目id,题目的正确与否,错误的原因, 分数])
- 查看用户组里所有人排名(按照A的个数和罚时排名[每个人A的题目编号,提交罚时])每10分钟滚榜一次
IO
- 用户组的用户看自己的作答情况([题目id, 分数,题目分数])(以最后一次提交为准)
- 用户查看总排名(按照分数排名)
IOI
- 用户组的用户看自己的作答情况([题目id,题目的正确与否,错误的原因, 分数])(以最后一次提交为准)
- 查看用户组里所有人排名(按照A的个数和罚时排名[每个人A的题目编号,提交罚时])/实时排名
题目集的创建者人工判简答题(简答题的Id)