# compilex **Repository Path**: q21001010222/compilex ## Basic Information - **Project Name**: compilex - **Description**: 基于SpringCloud的代码在线评测网站 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-03-25 - **Last Updated**: 2025-07-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #lex #### 介绍 基于SpringCloud的代码在线评测网站(分支microservice) #### 软件架构 使用微服务架构,利用Spring Cloud Alibaba、Nacos、OpenFeign、Gateway等技术实现后端服务的治理与监控;使用Vue 3、Vuex、Arco Design等技术实现前端用户界面的开发;采用Docker技术确保实现代码沙箱的安全性;使用MySQL、Redis、RabbitMQ等技术实现数据存储、缓存和消息队列等功能。系统的主要功能包括用户注册登录、题目浏览与搜索、代码提交与评测、比赛参与、个人信息管理等用户功能,以及题目管理、比赛管理、用户管理、提交记录管理等管理员功能。 #### 安装教程 1. 安装node 16.10 2. 安装nacos 2.2.0 3. 安装RabbitMQ 4.1.0(可参考https://blog.csdn.net/qq_39915083/article/details/107034747) 4. 安装liunx虚拟机 ubuntu-18.04.6 (python3评测需要在虚拟机内运行) #### 使用说明 1. 拉取代码(建表语句在单机服务的代码中) 2. 启动nacos 在nacos的bin目录下打开命令提示符窗口输入startup.cmd -m standalone 3. 启动RabbitMQ 在Windows开始的应用程序中找到![RabbitMQ应用程序位置](https://foruda.gitee.com/images/1747286778377832353/16825948_9933719.png "屏幕截图") 输入 启动:net start RabbitMQ 停止:net stop RabbitMQ 4. 依次启动五个服务:![五个服务名字](https://foruda.gitee.com/images/1747286953014953554/6b466e37_9933719.png "屏幕截图") 5. 启动代码沙箱compilex_code_sandbox-master (需要python评测参考部署虚拟机https://www.bilibili.com/video/BV1YW4y1w7DK/?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click) 6. 如果使用单机服务注意修改接口地址 ![代码沙箱接口地址](https://foruda.gitee.com/images/1747287325815590886/68284f13_9933719.png "屏幕截图") ![后端网关地址](https://foruda.gitee.com/images/1747287540631431002/58c81d9e_9933719.png "屏幕截图") ![前端接口地址](https://foruda.gitee.com/images/1747287382677475517/aef40a32_9933719.png "屏幕截图") ![前端接口地址](https://foruda.gitee.com/images/1747287457360380012/7f74b8d2_9933719.png "屏幕截图") #### 运行截图 ![主页](https://foruda.gitee.com/images/1747287793151136931/66a2f4d8_9933719.png "屏幕截图") ![浏览题目](https://foruda.gitee.com/images/1747287812384214005/4012e35c_9933719.png "屏幕截图") ![评测](https://foruda.gitee.com/images/1747287843992748668/426ab85c_9933719.png "屏幕截图") ![题目提交记录](https://foruda.gitee.com/images/1747287932370701894/709147e8_9933719.png "屏幕截图") ![创建题目](https://foruda.gitee.com/images/1747287953037799030/ae9e62c6_9933719.png "屏幕截图") ![浏览比赛](https://foruda.gitee.com/images/1747287971154764372/c623192e_9933719.png "屏幕截图") ![比赛详情](https://foruda.gitee.com/images/1747287990155962677/b2c6b3e2_9933719.png "屏幕截图") ![比赛详情](https://foruda.gitee.com/images/1747288009383473718/813a086f_9933719.png "屏幕截图") ![用户详情](https://foruda.gitee.com/images/1747288026703123784/e7fe64c5_9933719.png "屏幕截图") ![管理题目](https://foruda.gitee.com/images/1747288054674161331/d635b980_9933719.png "屏幕截图") ![管理比赛](https://foruda.gitee.com/images/1747288079455500049/a2d17871_9933719.png "屏幕截图") ![管理用户](https://foruda.gitee.com/images/1747288096405044966/1e6b3db7_9933719.png "屏幕截图") #### 个性化修改 修改MyInformationView.vue页面中的UPLOAD_TOKEN为自己带图床token(头像托管在图床上) 修改ManageUserView.vue页面中的1904473721062084609为自己创建的账号id作为前端层面的超级管理员来管理用户 只有超级管理员才能操作~