/SCU-CCSOJ-Backend

OI × CTF 在线评测平台 - 后端

Primary LanguageJavaApache License 2.0Apache-2.0

SCU CCSOJ 后端

产品介绍

这是一个面向川大网络空间安全学院乃至整个川大对信息与竞赛和CTF感兴趣的师生的平台。本产品致力于满足计算机专业尤其是网络空间安全专业学生的刷题需求、提高学生的解题能力,为学生提供一个可以做题、学习他人解题思路或分享解题思路、参加竞赛的平台。与市面上目前存在的刷题或竞赛平台不同:我们不仅有OI的题目,我们还有许多CTF的题目,为对CTF感兴趣的同学提供一个刷题的天地;另外,我们平台具更具有开放性,我们支持同学们为平台提供题目,以增加我们题目的多样性,使“CTF x OI OnlineJudge”成为一个百花齐放、富有创造力的平台;此外,“CTF x OI OnlineJudge”会贴心地根据大家的完成情况为每道题贴上难易程度的标签,以及每道题涉及到的知识板块,让做题者能根据自身情况选择适合自己的题目。我们会提供灵活,多样的讨论环境,优秀的题目解答,助力同学们互帮互助,快速进步。

产品面向的用户群体

​ 本产品面向的群体是:川大网络空间安全学院专业的学生,乃至整个川大对OI和对CTF感兴趣的师生。当然,如果后期平台发展的不错,我们也乐于看到本平台走向更高更广的世界,面向整个**乃至世界对OI尤其是CTF感兴趣的人。

产品应当遵循的标准或规范

代码许可证:Apache-2.0

遵循GB/T 22081——2016/ISO/IEC 27002:2013信息技术安全技术信息安全控制实践指南

产品范围

产品适用领域及不适用领域

本产品因具有刷题、训练、评测以及讨论等功能而适用于教学领域,各大高校均可组织学生参与其中并通过本产品进行训练以及管理。除此之外,本产品还适用于竞赛领域,与其对应的功能应有比赛和排行榜。

本产品不适用于商业领域,不具备题目、资料,课程等买卖功能。

产品包含内容及不包含内容

产品包含相关网页内容,网页内包含站内消息、题目、训练、比赛、评测、排行榜、团队、讨论区、个人信息、管理后台内容。

产品不包含代码调试、答案分析等功能内容以及电脑客户端内容。

产品中的角色

角色名称 职责描述
用户 提供需求
开发者 分析需求,实现相关功能,后续维护
管理者 对产品进行总体管理

产品的功能性需求

img

图1 功能结构图

img

图2 运行流程图(部分)

首页

首页包含欢迎界面、近期比赛、公告、努力榜、友链等功能。欢迎界面可以展示一张图,也可以添加一个签到界面。近期比赛显示近30天内用户创建的OI/CTF比赛。公告显示网站管理员发布的功能更新、系统维护等信息。努力榜展示7天内AC数量最多的用户名称及其AC数。友链则展示相关的OI/CTF平台。

题目

分为OI与CTF两个大类。题目应含有ID、名称、难度、提交次数与通过次数。OI中的难度分为入门、普及-、普及/提高-、普及+/提高、提高+/省选-、省选/NOI,CTF中的难度分为简单、中等、困难。界面右侧设置标签,支持从标签查找题目。

训练

训练应含有编号、标题、题目数量、作者与更新时间、权限与分类,权限分为公开训练与私有训练,分类为OI/CTF。训练内部包含训练简介和题目列表,后者与7.1的要求一致。

比赛

比赛应含有标题、时间范围、参与人数、权限与分类,权限分为公开与私有,分类为OI/CTF。比赛内部包含比赛简介和题目列表,后者应隐藏难度、提交次数与通过次数。

评测/判题结果展示

针对OI题目。包含运行ID、题目、状态(AC、WA、TLE、RE、CE等等)、分数、运行时间、运行内存、代码长度、语言、判题机、作者与提交时间。针对 CTF 题目,则不会展示运行时间、运行内存、代码长度、语言、判题机等。

排名

分为OI/CTF/综合排行榜。简单按照AC数量排序即可。排行榜包含名次、用户名、AC数量、通过率与个性简介。

讨论

类似于BBS。左边为帖子,含有题目、作者、评论、点赞、浏览、分类、发布时间。右上为发布按钮与我的发布,右下为分类(闲聊、题解、求助、建议、记录)。帖子内部含有帖子内容(中间为回复窗口,支持表情、图片与markdown语法)下方有其他用户的评论。

团队

含有团队名称、创建人、描述、人数、权限(私有、公开)、创建时间。内部含有7.1.1~7.1.6的功能。

关于

包含网站简介与开发人员介绍。

用户

含有用户首页、通知、提交记录、用户设置以及登出。

用户首页包括头像,提交数、AC数、OI分数与CTF分数。中间是提交热力表。下方是个人简介和做题情况。

通知包含评论、回复、收到的赞、系统通知和我的消息。

提交记录就是评测对用户名的过滤。

设置包含个人信息修改、密码修改与邮箱修改。

管理员

管理员在普通用户的基础上可以创建题目与比赛。

管理员还可以通过讨论区发布功能更新、系统维护等信息,可以置顶讨论。

可以封禁用户、团队和讨论。

产品的非功能性需求

观感需求

我们预期实现一个简洁,清晰的平台界面,让用户可以快速便捷地找到自己想要使用的功能窗口和想要获得的信息。界面使用两栏布局,顶部为功能选项按钮实现页面的切换;页面中使用块的方式分割各个信息组;颜色使用上基调为白色和蓝色,配合使用多种色彩来实现区分。

UI设计需要确保给用户提供清晰一致、简单易用的使用体验,对齐设计语言,拉通体验设计的方向。项目遵循以下设计原则:

l 简洁的:系统的视觉表现应该是简洁的、符合人的本质需求。为了做到这一点,系统的视觉采用简洁的图形、一致的风格、色彩、材质、图标与字体。

l 流畅的:为了达到极致的用户体验,系统应该是流畅、无阻的。为了做到这一点,系统的动效强调流畅、生动的体验。

l 直觉的:系统的表现应该是直觉的,用户在使用过程中无需思考。为了做到这一点,系统的操作需要符合人的本能,并且使用智能化的技术能力主动适应用户的习惯。

l 情感化:我们的终极目标是创造能够与用户产生情感共鸣的系统体验。在这个过程中,系统将利用个性化的技术、硬件、数据分析与互动能力,帮助用户获得更加愉悦的使用体验。

l 通用性:作为面向全球用户的软件系统,为了让更多的用户享受便利的科技与愉悦的体验,我们将在数字健康、全球化、无障碍等方面进行积极的探索与思考。

在动画效果上,我们设计了页面切换时的消失与出现动画,以及加载进度条的动画,给用户更直观的体验。

易用性需求与可执行需求

本产品预期的功能布局符合人的使用习惯,容易上手使用。产品不包含弹窗、小广告和非法链接等,给予用户更舒心的使用体验。

本产品预期的运行速度和反馈效率较高,执行用户指令的响应速度快。

安全性需求

我们预期对数据库使用加密系统来确保对用户数据的保护,并使用手机验证和邮箱验证等方式确认用户的身份并给予登录许可。我们也会注重对用户的隐私的保护,例如用户提交的代码和做题记录在没有用户许可时不会向其他用户公开。