1、立项原因:解决个人及校园同学的算法个性化指导需求,借助AI来完善OJ平台的桎梏
2、业务背景:在当时国内外OJ平台中,并无与AI编程助手结合的案例,如有需要借助LLM来回答一些问题的时候需要跳转平台,在这个场景下开发了“极客判”
点击空白处退出提示
1、立项原因:解决个人及校园同学的算法个性化指导需求,借助AI来完善OJ平台的桎梏
2、业务背景:在当时国内外OJ平台中,并无与AI编程助手结合的案例,如有需要借助LLM来回答一些问题的时候需要跳转平台,在这个场景下开发了“极客判”
### 1. 功能模块
- **用户与登录**:C 端手机号 + 短信验证码登录(新号自动注册)、B 端账号密码(BCrypt);个人中心、头像上传。
- **题库管理**:B 端录入题目(富文本描述 + 默认代码 + 动态测试用例);C 端题库列表、难度筛选、热门题榜。
- **在线编程**:在线编写 Java 代码,提交时自动拼接 main 函数与测试用例。
- **自动判题**:Docker 沙箱编译执行,逐条用例严格比对输出,校验内存/时间限制并计分。
- **竞赛系统**:报名参赛、限时答题倒计时、实时排名、未完赛/历史竞赛、结束后练习模式。
- **AI 答疑助手**:「小白」专注 Java 算法答疑,流式打字机输出、多轮记忆、会话管理。
- **站内消息 / 后台管理**:系统通知;B 端题目 CRUD、竞赛生命周期管理、用户拉黑/解禁。
### 2. 主要功能描述
平台核心是**在线编程 + 自动判题闭环**:用户在线编写代码并提交,系统通过 Docker 沙箱隔离编译执行,将运行结果与测试用例逐一严格比对,自动判定通过/未通过/超时/超内存并计分,并通过 RabbitMQ 异步判题应对峰值提交与并发;竞赛模块提供从报名、限时答题到自动结算排名的完整赛制,AI 助手以流式对话提供实时讲解与代码答疑,三者共同构成「学—练—赛—问」的学习闭环。
1. 我负责的工作(独立完成全栈开发)
- **后端**:Spring Cloud Alibaba 微服务架构设计与编码,含 5 个业务服务(system/friend/judge/job/chatbot)+ 网关 + 8 个公共模块;
- **前端**:B 端管理后台与 C 端用户平台两套 Vue 3 应用,从路由、鉴权拦截、在线编辑器集成到 AI 流式渲染全部独立开发。2. 技术栈
- **后端**:Java 17、Spring Boot 3.2、Spring Cloud Alibaba(Nacos 注册+配置中心)、Spring Cloud Gateway、OpenFeign、MyBatis-Plus、MySQL、Redis、Elasticsearch、RabbitMQ、JWT、XXL-Job、Spring AI、阿里云 OSS/SMS、Docker。
- **前端**:Vue 3(Composition API)、Vite 7、Element Plus、Vue Router、Axios、Ace Editor、SCSS。
3. 亮点与难点
- **Docker 沙箱 + 容器池化**:`network=none` + 只读根文件系统 + 内存/CPU 限制实现安全隔离,并用 `BlockingQueue` 容器池复用容器,提升判题并发吞吐。
- **MQ 异步判题解耦**:RabbitMQ work queue 将提交与判题解耦,前端按版本号轮询结果,承接峰值提交。
- **网关统一鉴权 + 身份隔离**:单 Filter 完成 JWT 解析 + Redis 会话校验,按 URL 前缀隔离管理员/普通用户。
- **多数据层协同**:MySQL 持久化 + ES 检索 + Redis 多级缓存,改题时三处同步。
- **Spring AI 流式对话**






评论