AQADIL/JudGO
GitHub: AQADIL/JudGO
JudGO 是一个基于 Golang 的实时编程对战平台,专注于解决传统在线判题系统在互动性和实时性上的不足。
Stars: 79 | Forks: 0
# 运行 JudGO
JudGO 是一个为实时对战设计的竞赛编程平台。
它结合了:
- 快速的 Go 后端(清洁架构)
- 使用 Firebase RTDB 进行实时状态同步
- 针对编程对决和练习优化的现代 React 前端
## 核心优势
| 领域 | JudGO 的优势所在 |
|---|---|
| 实时对决 | 基于房间的比赛,进度实时更新,专为竞赛环节设计 |
| 产品用户体验 | 集成的竞技场、练习和仪表盘,拥有统一、现代的界面 |
| 后端速度 | Go 服务,清晰划分领域、服务、仓库和传输层 |
| 数据模型 | 采用 RTDB 优先设计,实现即时更新和多人游戏状态 |
## 功能概览
| 功能 | 备注 |
|---|---|
| 练习提交 | 记录尝试次数和已解决状态 |
| 仪表盘统计 | 基于真实用户活动的聚合统计 |
| 多人房间 | 大厅、倒计时和房间游戏生命周期 |
| 多任务房间游戏 | 每场游戏包含多个问题,记录每位用户的进度 |
| 评测管道 | 开发模式可用评测;生产环境隔离是单独的加固步骤 |
## 架构
| 文件夹 | 职责 |
|---|---|
| `cmd/` | 应用程序入口点 |
| `internal/domain/` | 业务模型 |
| `internal/service/` | 用例和业务规则 |
| `internal/repository/` | Firebase RTDB 持久化 |
| `internal/transport/rest/` | HTTP 路由、处理器、中间件 |
| `pkg/` | 可复用包(沙箱运行器、Firebase 客户端) |
```
graph TD
FE[Frontend] -->|REST| API[Go API]
FE -->|Realtime| RTDB[(Firebase RTDB)]
API --> AUTH[Auth Middleware]
API --> SVC[Services]
SVC --> REPO[Repositories]
REPO --> RTDB
SVC --> JUDGE[Judge]
JUDGE --> EXEC[Executor]
EXEC --> OS[(Sandboxed Process)]
```
## 对比
| 平台 | 重点 | JudGO 的增益点 |
|---|---|---|
| LeetCode | 面试练习 | 实时竞技房间和竞技场式对决 |
| Codeforces | 竞赛 | 产品级用户体验、集成仪表盘和持久化练习流程 |
| HackerRank | 技能测试 | 实时房间游戏和统一的竞赛体验 |
## 项目所有权与反抄袭
此仓库是 **Alish Akadil** 的原始作品。
您不得:
- 复制、重新上传、转售或重新分发本项目(或其大部分内容)
- 将此代码冒充为您自己的作品
- 将其用于学术提交或抄袭
如果您想使用本项目的任何部分,请向作者请求明确许可。
## 作者
| 姓名 | 角色 | GitHub |
|---|---|---|
| Alish Akadil | 创建者 | https://github.com/AQADIL |
2026 JudGO。保留所有权利。由爱与热情打造 💕
标签:Firebase实时数据库, Golang后端, React前端, 云服务集成, 代码执行沙箱, 代码提交, 代码竞技场, 代码评测平台, 在线编程挑战, 在线评测系统, 多用户房间, 多用户系统, 安全代码执行, 实时同步, 实时应用, 实时编码对战, 清洁架构, 用户统计仪表板, 竞技编程, 编程教育, 编程竞赛平台, 编程练习, 自定义脚本