Eagle-OJ 开源的在线编程训练平台

Eagle-OJ 是一个开源的在线编程训练平台,旨在为学校和机构提供一个简单易用的解决方案,以便他们能够轻松搭建自己的编程训练平台。Eagle-OJ 不仅支持多种编程语言的判题,还提供了一系列便捷的功能,使其成为教学和竞赛的理想选择。以下是 Eagle-OJ 的详细介绍,包括其主要特点、功能模块和技术架构。

主要特点

  1. 开源和灵活:

    • Eagle-OJ 是一个完全开源的项目,这意味着任何人都可以免费使用和修改它。项目托管在 GitHub 上,社区活跃,持续更新和改进。
    • 项目支持 Docker 一键快速部署,极大地简化了安装和配置过程,使得即使是技术背景较弱的用户也能轻松上手。
  2. 多语言支持:

    • 支持多种编程语言,包括 Python 2.7、Python 3.5、C++、C 和 Java 8。这使得用户可以在平台上进行不同语言的编程练习和竞赛。
  3. 丰富的功能:

    • 题库管理: 管理员可以轻松创建、编辑和删除题目,支持多种题型,包括传统题、交互题、提答题等。
    • 用户管理: 支持用户注册、登录、权限管理和个人信息管理。
    • 比赛管理: 支持创建和管理编程比赛,可以设置比赛时间和规则,支持 ACM 和 OI 模式。
    • 小组功能: 管理员可以创建和管理学生小组,开设小组赛,方便教学和竞赛组织。
    • 代码管理: 记录用户每次提交的代码,支持代码版本管理,方便用户追溯和分析代码改动。
  4. 高性能和稳定性:

    • 使用高效的判题机制,确保代码在安全的沙箱环境中执行,防止恶意代码对系统造成损害。
    • 采用微服务架构,支持高并发和水平扩展,保证系统的稳定性和性能。

技术架构

  1. 前端:

  2. 后端:

  3. 判题沙箱:

  4. 数据库:

    • 使用 MySQL 数据库存储用户信息、题目信息和比赛信息等。
    • 使用 Redis 缓存常用数据,提高系统性能。
  5. 消息队列:

    • 使用 RabbitMQ 处理异步任务,如代码判题、邮件发送等。
  6. Docker 化部署:

部署步骤

  1. 克隆仓库:

    复制代码

    bash

    深色版本

    复制代码
    git clone https://github.com/Eagle-OJ/eagle-oj.git
    cd eagle-oj
  2. 修改配置文件:

    • 修改 docker-compose.yml 文件中的配置,如数据库连接信息、端口映射等。
    • 修改 .env 文件中的环境变量,如数据库用户名、密码等。
  3. 启动 Docker 容器:

    复制代码

    bash

    深色版本

    复制代码
    docker-compose up -d
  4. 访问系统:

    • 打开浏览器,访问 http://localhost,即可看到 Eagle-OJ 的登录页面。
相关推荐
wangruofeng5 小时前
一个 Markdown 文件攒下 37k 星,i-have-adhd 给 AI 输出立了 10 条规矩
github·aigc·ai编程
怕浪猫6 小时前
长会话不崩盘:DeepSeek Harness 的上下文压缩与目标管理策略
面试·github·agent
DogDaoDao7 小时前
SimToolReal 解读:用“物体中心“视角重新定义灵巧工具操作
人工智能·机器人·github·关键点·人形机器人·gpt-4o·simtoolreal
993166611 小时前
一个人用 AI 的困局:它从不反对你,所以我让 5 个 AI 开了场圆桌会议
github·deepseek
其实防守也摸鱼13 小时前
每天一个知识点——RCE漏洞
运维·服务器·数据库·windows·安全·github·漏洞
u13013014 小时前
GitHub 热榜项目:日榜(2026-09-12)
github
TunerT_TQ14 小时前
Netflix|一个时代的终结:Hystrix静态工程评测,兼谈微服务容错范式的代际迁移
开源·github·资讯
m4Rk_14 小时前
【论文阅读】Agent 记忆机制(68):Memp——把历史轨迹沉淀为可检索、可纠错的程序性记忆
论文阅读·人工智能·学习·开源·github
峰向AI16 小时前
腾讯开源的AI管理的瑞士军刀:让团队经验自动传承
github
Howie_052617 小时前
AI-test-agent(一)刚入门测试也能读懂:一个基于 LangGraph + Playwright 的开源测试工作台
github