立即注册

ekn

2019人工智能创新平台招新仅注册用户才可以浏览全站
查看: 25|回复: 0

基于 Spring Boot 的在线判题系统

[复制链接]

1

主题

1

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2025-11-14 17:17:59 | 显示全部楼层 |阅读模式
一、工作方案概述本项目聚焦现有在线编程评测系统(OJ)的功能局限与安全隐患,旨在开发一款功能丰富、安全可靠的在线判题平台。核心目标是为编程学习者、教育机构及企业招聘提供高效的编程练习与评测环境,支持在线代码编写、同步判题、题目管理等核心功能,并通过严格的安全机制防范恶意代码攻击。
二、系统框架图用户 → 前端页面(注册/登录/做题)→ 后端业务层(权限校验/请求处理)→ 消息队列 → 判题服务 → 代码沙箱(编译/运行代码)→ 结果校验 → 数据库更新 → 前端展示结果
三、数据库设计
1.问题

列名
类型
是否主键
可否为空
注释
id
BIGINT
题目的唯一标识
title
VARCHAR
题目标题
content
TEXT
题目内容
tags
JSON
题目标签,以 JSON 数组格式存储
answer
TEXT
题目的答案
submitNum
INT
题目提交次数
acceptedNum
INT
题目通过次数
judgeCase
JSON
判题用例,以 JSON 数组格式存储输入输出示例
judgeConfig
JSON
判题配置,包含时间、内存、栈空间限制
userId
BIGINT
创建题目的用户 ID
createTime
DATETIME
题目创建时间
updateTime
DATETIME
题目更新时间
isDelete
TINYINT
题目是否删除,1 表示已删除,0 表示未删除
2.用户
列名
类型
是否主键
可否为空
注释
id
BIGINT
用户的唯一标识
userAccount
VARCHAR
用户账号
userPassword
VARCHAR
用户密码(加密存储)
userRole
VARCHAR
用户角色(admin/user
createTime
DATETIME
用户创建时间
updateTime
DATETIME
用户信息更新时间
isDelete
TINYINT
是否删除(1 = 删除,0 = 未删除)
3.题目提交
列名
类型
是否主键
可否为空
注释
id
BIGINT
提交记录的唯一标识
language
VARCHAR
编程语言(如 javacpp
code
TEXT
提交的代码内容
judgeInfo
JSON
判题结果信息(包含messagememorytime等)
status
INT
判题状态(1=待判题/判题中,2 =已判题)
questionId
BIGINT
关联的题目 ID
userId
BIGINT
提交用户的 ID
createTime
DATETIME
提交时间
updateTime
DATETIME
判题结果更新时间
isDelete
TINYINT
是否删除(1 = 删除,0 = 未删除)
四、详细设计
1. 前端设计
注册 / 登录页面:简洁表单布局,支持账号密码校验、密码强度提示,跳转链接居中显示。
题目列表页面:支持名称 / 标签搜索,表格展示题号、标题、通过率、创建时间,分页加载。
题目创建页面:Markdown 编辑器(题目描述 / 答案),判题配置输入框,测试用例动态增删。
代码提交页面:左右分栏布局(左侧题目详情 / 右侧代码编辑器),支持多语言切换,实时保存输入。
判题结果页面:表格展示提交记录、编程语言、判题状态(通过 / 错误)、耗时 / 内存占用。
2. 后端设计
权限控制:通过@AuthCheck注解 + 拦截器实现角色校验,管理员仅可执行题目修改 / 删除操作。
判题逻辑:采用异步处理(CompletableFuture),代码沙箱限制文件操作、网络访问,设置内存 / 时间阈值。
数据处理:MyBatis Plus 实现数据库 CRUDRedis 缓存热点数据,定时更新缓存与数据库一致性。
异常处理:全局异常拦截,自定义错误码,统一返回格式(成功 / 失败状态 + 数据 / 提示信息)。
3. 安全机制设计
代码安全:禁止文件操作、命令执行、权限提升等危险行为。
资源限制:单用户提交代码内存限制 1000MB,时间限制 1000ms,防止服务器过载。
数据安全:用户密码 MD5 加盐加密存储,敏感接口需登录验证。


回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|小黑屋|ekn

GMT+8, 2025-12-29 15:33 , Processed in 0.041186 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表