项目简介
本项目是基于Spring Boot和MyBatis Plus框架搭建的在线判题系统,为编程竞赛、在线课程以及编程练习提供服务。用户能提交代码并即时获取判题结果,系统支持多种编程语言,具备代码评测、权限校验、日志记录、定时任务等丰富功能。
项目的主要特性和功能
- 代码评测:支持用户提交代码,系统自动评测并返回结果,涵盖Java、C、C++、Python等多语言,有默认评测策略及针对Java的特殊策略。
- 权限管理:借助自定义注解和AOP拦截器实现权限校验,支持用户、管理员、被封号用户等角色。
- 日志记录:通过AOP拦截器记录HTTP请求的详细信息,包含请求起止时间、URL、参数等。
- 定时任务:定时将数据库中的帖子数据增量同步到Elasticsearch。
- 跨域配置:通过配置类实现跨域资源共享(CORS),允许不同源的请求。
- 文件管理:支持将文件上传到腾讯云对象存储(COS),并返回文件访问地址。
- 用户管理:支持用户注册、登录、注销,用户可更新个人信息,管理员能管理用户信息。
- 帖子管理:用户可发布、编辑、删除帖子,可收藏和点赞帖子,管理员能管理所有帖子。
- 题目管理:管理员可发布、编辑、删除题目,用户可查看、提交题目,系统自动评测并返回结果。
安装使用步骤
环境准备
- 安装Java 8或更高版本。
- 安装MySQL数据库,创建相应数据库和表。
- 安装Elasticsearch用于帖子数据搜索和同步。
- 配置腾讯云对象存储(COS),获取访问密钥和存储桶信息。
下载源码
从指定位置下载项目源码文件。
配置文件
修改application.properties
或application.yml
文件,配置数据库连接、Elasticsearch连接、腾讯云COS等信息。
启动项目
在项目根目录下执行以下命令启动项目:
bash
mvn spring-boot:run
访问系统
项目启动后,通过浏览器访问系统的API接口,进行用户注册、登录、代码提交等操作。
测试
使用Postman或其他API测试工具,测试系统的各项功能是否正常。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】