- 1、本文档共25页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
PAGE18
PAGE
南京邮电大学通达学院
软件设计实践报告
题目:在线评测平台
在线评测平台
一、课题内容和要求
本课题主要设计一个在线的评测平台,该平台设计主要包括用户模块、公告模块、题库模块、评测模块、记录模块、竞赛模块、班级模块、作业模块、讨论模块和后台管理。用户可以注册、登录和维护个人信息,管理员可以管理用户、发布公告。题库模块提供题目管理功能,评测模块可以评测学生的答案并记录评测历史。竞赛模块支持组织竞赛。讨论模块提供用户间的交流平台。管理后台用于系统配置和维护。
二、需求分析和总体设计
2.1本课题的主要功能包括:
(1)用户模块:主要实现用户注册、登录,后台管理员查看用户信息、修改用户信息、修改用户权限、修改用户密码等。
(2)公告模块:主要实现用户查看公告内容,后台管理员发布新公告、修改已发公告内容。
(3)题库模块:主要实现用户查看所有题目,后台管理员对题目的增、删、改、查等功能。存储各类题目及其相关信息,为评测模块和作业模块提供题目资源。
(4)评测模块:主要实现评测用户已做题目,后台管理员对评测机token的展示、评测机token的创建、评测机token的删除、评测机token的编辑(停用)。提供对题目、竞赛的评测功能,可以自动评测用户提交的答案,并给出实时反馈和评分。
(5)记录模块:主要实现记录用户的评测历史,包括做过的题、答题情况等,用户可以随时查看。
(6)竞赛模块:主要实现用户查看竞赛、查看竞赛题日列表、递交竞赛题目答案、查看竞赛排名等,后台管理员创建比赛、设置比赛题目、设置比赛时间、设置比赛语言等。
(7)讨论模块:主要实现用户发表文章、修改文章、删除文章,后台管理员设置文章的可见性、编辑文章。提供用户间的讨论和交流平台,支持用户发布问题、分享经验等。针对题目、比赛提供讨论模块,以供发布题解。
(8)语言模块:主要实现后台管理员对评测语言的新增和删除。
(9)小组模块:主要实现后台管理员新建小组、设置小组名称及管理用户。
本项目的后端主要使用了SpringBoot框架,对外提供RESTfulAPI服务;使用Kotlin语言提高编码效率;使用SpringDataJPA实现服务端与数据库之间的访问;使用Caffeine实现缓存功能;使用PostgreSQL数据库实现数据存储。
前端使用React渲染;使用TypeScript提供类型检查功能;使用Axios与SWR提供请求访问、管理功能;使用Unocss原子化CSS框架提供CSS的复用,减少CSS的编写。
2.2本课题的数据表设计
数据表名:t_users
字段名
字段类型
字段是否可以为空
字段说明
user_id
bigint
N
用户ID
created_at
timestamp
Y
数据创建时间
updated_at
timestamp
Y
数据修改时间
username
varchar(255)
N
用户名
password
varchar(255)
Y
加盐加密后密码
salt
varchar(255)
Y
密码盐值
varchar(255)
Y
用户邮箱
real_name
varchar(255)
Y
真实姓名
bio
varchar(255)
Y
用户签名
user_role
integer
Y
用户角色
数据表名:t_problems
字段名
字段类型
字段是否可以为空
字段说明
problem_id
bigint
N
题目ID
created_at
timestamp
Y
数据创建时间
updated_at
timestamp
Y
数据修改时间
title
varchar(255)
N
题目标题
p_alias
varchar(255)
N
题号
description
text
Y
题目描述
input_description
text
Y
输入描述
output_description
text
Y
输出描述
time_limit
integer
Y
时间限制
memory_limit
integer
Y
空间限制
judge_times
integer
Y
评测次数
samples
jsonb
Y
样例
note
text
Y
题目提示
author_user_id
bigint
Y
题目作者ID
background
text
Y
题目背景
visible
boolean
Y
题目是否可见
allow_all_languages
boolean
N
允许使用所有语言
code_length
integer
N
代码最长长度
accepted_times
bigint
N
题目通过次数
submit_times
bigint
N
题目提交次数
testcase_file_id
bi
文档评论(0)