Eagle-OJ 是一个开源的在线编程训练平台,旨在为学校和机构提供一个简单易用的解决方案,以便他们可以或许轻松搭建自己的编程训练平台。Eagle-OJ 不仅支持多种编程语言的判题,还提供了一系列便捷的功能,使其成为教学和比赛的理想选择。以下是 Eagle-OJ 的详细先容,包括其紧张特点、功能模块和技能架构。
紧张特点
- 开源和灵活:
- Eagle-OJ 是一个完全开源的项目,这意味着任何人都可以免费利用和修改它。项目托管在 GitHub 上,社区活泼,持续更新和改进。
- 项目支持 Docker 一键快速部署,极大地简化了安装和配置过程,使得即使是技能背景较弱的用户也能轻松上手。
- 多语言支持:
- 支持多种编程语言,包括 Python 2.7、Python 3.5、C++、C 和 Java 8。这使得用户可以在平台上进行差别语言的编程练习和比赛。
- 丰富的功能:
- 题库管理: 管理员可以轻松创建、编辑和删除标题,支持多种题型,包括传统题、交互题、提答题等。
- 用户管理: 支持用户注册、登录、权限管理和个人信息管理。
- 比赛管理: 支持创建和管理编程比赛,可以设置比赛时间和规则,支持 ACM 和 OI 模式。
- 小组功能: 管理员可以创建和管理门生小组,开设小组赛,方便教学和比赛构造。
- 代码管理: 记载用户每次提交的代码,支持代码版本管理,方便用户追溯和分析代码改动。
- 高性能和稳定性:
- 利用高效的判题机制,确保代码在安全的沙箱环境中实验,防止恶意代码对体系造成损害。
- 接纳微服务架构,支持高并发和水平扩展,包管体系的稳定性和性能。
技能架构
- 前端:
- 利用 Vue.js 框架构建,提供相应式的用户界面,用户体验良好。
- 项目地址: Eagle-OJ/eagle-oj-web - GitHub
- 后端:
- 利用 Spring Boot 框架构建,提供 RESTful API 接口,支持前后端分离。
- 项目地址: Eagle-OJ/eagle-oj-api - GitHub
- 判题沙箱:
- 利用 Seccomp 和其他安全机制,确保用户提交的代码在安全的环境中实验。
- 项目地址: Eagle-OJ/eagle-oj-judger - GitHub
- 数据库:
- 利用 MySQL 数据库存储用户信息、标题信息和比赛信息等。
- 利用 Redis 缓存常用数据,进步体系性能。
- 消息队列:
- 利用 RabbitMQ 处理异步使命,如代码判题、邮件发送等。
- Docker 化部署:
- 提供完整的 Dockerfile 和 Docker Compose 文件,支持一键部署。
- 项目地址: Eagle-OJ/eagle-oj - GitHub
部署步骤
- 克隆堆栈:
- [/code] bash 深色版本
- [code]git clone https://github.com/Eagle-OJ/eagle-oj.git
- cd eagle-oj
复制代码 - 修改配置文件:
- 修改 docker-compose.yml 文件中的配置,如数据库毗连信息、端口映射等。
- 修改 .env 文件中的环境变量,如数据库用户名、密码等。
- 启动 Docker 容器:
- [/code] bash 深色版本
- [code]docker-compose up -d
复制代码 - 访问体系:
- 打开浏览器,访问 http://localhost,即可看到 Eagle-OJ 的登录页面。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |