# zjj_icode **Repository Path**: speaker01/zjj_icode ## Basic Information - **Project Name**: zjj_icode - **Description**: 小码智学项目,代码提交位置 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-27 - **Last Updated**: 2026-03-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 小码智学 (iCode) 张家界学院在线编程学习与评测系统 ## 项目简介 小码智学(iCode)是一款面向高校的在线编程学习与评测平台,支持多种编程语言的自动评测功能。系统采用微服务架构,包含后端服务、多种语言评测机以及前端应用,适用于编程教学、作业布置、竞赛训练等场景。 ## 系统架构 ### 后端服务 (BE) | 服务 | 技术栈 | 说明 | |------|--------|------| | icode-be | Spring Boot + MyBatis Plus | 核心业务后端,提供 RESTful API | | cpp-judge-server | C++ (CMake) | C/C++ 代码评测服务 | | java-judge-server | Java (Spring Boot) | Java 代码评测服务 | | python-judge-server | Python 3.11 | Python 代码评测服务 | ### 前端应用 (FE) 基于 Vue 3 + Vue Router + Pinia 构建,提供学生端和教师端双端功能。 ### 核心技术 - **后端框架**: Spring Boot 2.x - **数据库**: MySQL + MyBatis Plus - **缓存**: Redis (Lettuce) - **消息队列**: RabbitMQ - **定时任务**: Quartz - **AI 能力**: DeepSeek API 集成 ## 功能特性 ### 题目管理 - 题目创建、编辑、删除 - 题目难度分级(简单、中等、困难) - 题目标签管理 - 题库管理 - 测试用例管理 ### 评测系统 - 支持 C/C++、Java、Python 三种语言 - 沙箱隔离执行 - 资源限制(时间、内存) - 实时评测结果反馈 ### 任务与竞赛 - 作业任务创建与管理 - 竞赛管理(ACM 计分/分数制) - 用户参与与排名 ### 社区功能 - 题目解答文章 - 代码相似度对比 - 排行榜(个人/战队) - 战队系统 ### AI 智能教学 - 代码语法检查 - 代码分析评价 - 智能解题提示 - 知识点总结生成 - 错误分析 - 教学建议 ## 快速开始 ### 环境要求 - JDK 21+ - Python 3.11+ - Node.js 16+ - MySQL 8.0+ - Redis 6.0+ - RabbitMQ 3.12+ ### 后端部署 ```bash # 进入后端目录 cd BE # 启动主服务 cd icode-be mvn spring-boot:run # 启动各语言评测机(可选) cd cpp-judge-server ./build/cpp-judge-server config/config.json cd java-judge-server java -jar target/java-judge-server-0.0.1-SNAPSHOT.jar cd python-judge-server python -m src.main config/config.json ``` ### 前端部署 ```bash # 进入前端目录 cd FE # 安装依赖 npm install # 开发模式 npm run serve # 生产构建 npm run build ``` ## 项目结构 ``` . ├── BE/ # 后端服务 │ ├── icode-be/ # 核心业务后端 │ │ └── src/main/java/com/iflytek/icode/ │ │ ├── controller/ # 控制器层 │ │ ├── service/ # 业务逻辑层 │ │ ├── mapper/ # 数据访问层 │ │ ├── pojo/ # 数据模型 │ │ └── config/ # 配置类 │ ├── cpp-judge-server/ # C/C++ 评测机 │ ├── java-judge-server/ # Java 评测机 │ └── python-judge-server/# Python 评测机 ├── FE/ # 前端应用 │ └── src/ │ ├── views/ # 页面组件 │ ├── api/ # API 接口 │ └── router/ # 路由配置 └── docs/ # 文档 ``` ## API 接口概览 ### 用户接口 - 用户登录/注册 - 用户信息管理 - 班级管理 ### 题目接口 - 题目 CRUD - 测试用例管理 - 题目搜索与筛选 - AI 智能教学 ### 评测接口 - 代码提交 - 评测结果查询 - 评测历史 ### 任务接口 - 任务创建与管理 - 用户进度跟踪 - 错误分析 ### 竞赛接口 - 竞赛管理 - 排名榜单 ### 社区接口 - 排行榜 - 战队系统 - 解答文章 ## 消息队列 系统使用 RabbitMQ 进行异步评测: | 队列 | 用途 | |------|------| | judge.submit.cpp | C/C++ 提交队列 | | judge.submit.java | Java 提交队列 | | judge.submit.python | Python 提交队列 | | judge.result.complete | 评测结果队列 | ## 配置说明 主要配置文件位于各服务模块的 `config` 目录或 `resources` 目录: - `application.yaml` / `application.properties`: Spring Boot 配置 - `config.json`: 评测机配置 ## 许可证 本项目仅供学习交流使用。 ## 联系方式 如有问题,请提交 Issue 或联系项目维护者。