MCPcopy Index your code
hub / github.com/HeJiguang/SynCode

github.com/HeJiguang/SynCode @v0.1.0-live-20260331

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.1.0-live-20260331 ↗ · + Follow
1,844 symbols 6,873 edges 559 files 101 documented · 5%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

SynCode

面向编程测评与训练场景的多模块工程项目。

当前公开版本以后端能力为主,重点放在异步判题链路、结果推送机制、训练/AI 能力探索和本地微服务协作。前端整体体验和正式线上部署仍在持续建设中,因此本仓库暂不以“完整网站成品”作为展示重点。

项目简介

SynCode 以 Java 微服务为主体,围绕编程题目管理、用户练习/提交、异步判题、结果通知和训练规划等能力展开。

目前仓库中的重点方向包括:

  • 基于 Spring Boot / Spring Cloud Alibaba 的多模块后端拆分
  • 基于 RabbitMQ 的异步判题主链路
  • 基于 WebSocket + Redis Pub/Sub 的判题结果推送
  • 基于 Python oj-agent 的 AI/训练规划能力探索

核心模块

  • oj-gateway 统一网关入口,负责路由转发、鉴权过滤和对外访问入口管理。

  • oj-modules/oj-friend 面向用户侧的核心业务模块,承载用户提交、训练流程、WebSocket 结果推送等逻辑。

  • oj-modules/oj-judge 判题消费与执行模块,负责异步判题处理、结果落库和最终状态回传。

  • oj-modules/oj-system 系统侧与基础业务管理模块,负责题目、考试等后台能力。

  • oj-common 公共基础能力层,包含核心常量、安全、Redis、RabbitMQ、MyBatis、消息、文件等通用组件。

  • oj-api 服务间共享的 DTO、接口约定和公共传输对象定义。

  • oj-agent 基于 FastAPI + LangGraph 的独立 Python 服务,用于 AI 助教、训练规划等能力扩展。

技术栈

  • Java 17
  • Spring Boot 3.2.5
  • Spring Cloud 2022 / Spring Cloud Alibaba / Nacos
  • MyBatis-Plus
  • MySQL
  • Redis
  • RabbitMQ
  • Python 3.11+
  • FastAPI
  • LangGraph

当前进度

  • 已形成多模块后端工程结构,核心业务拆分基本清晰
  • 已具备异步判题链路和请求级 requestId 跟踪能力
  • 已接入判题结果 WebSocket 推送机制
  • 已纳入 Python oj-agent 服务用于 AI 能力探索
  • 当前公开仓库以后端、本地运行和架构演进为主
  • 前端整体仍在建设中,暂不作为当前仓库首页展示重点
  • 暂无正式公网演示地址

本地运行

环境依赖

  • JDK 17
  • Maven 3.9+
  • Python 3.11+(用于 oj-agent
  • Nacos
  • MySQL
  • Redis
  • RabbitMQ

代码编译

mvn -q -DskipTests compile

Java 服务启动示例

按需启动各模块,常见核心链路包括:

mvn -pl oj-modules/oj-system -am spring-boot:run
mvn -pl oj-modules/oj-friend -am spring-boot:run
mvn -pl oj-modules/oj-judge -am spring-boot:run
mvn -pl oj-gateway -am spring-boot:run

Python Agent 启动示例

cd oj-agent
pip install -e .[dev]
uvicorn app.main:app --host 0.0.0.0 --port 8015

具体端口、Nacos 配置和本地环境参数请以各模块的 bootstrap.ymlapplication-local.yml 及相关本地配置文件为准。

后续计划

  • 持续完善用户侧前端与整体交互链路
  • 继续推进训练规划与 AI 能力的业务集成
  • 补充更清晰的部署与运行文档
  • 完善端到端联调与本地开发体验

说明

  • 当前仓库公开名为 SynCode
  • 代码中部分 artifactId、包名和历史命名仍保留 sintao-oj / com.sintao 轨迹,这是当前演进状态的一部分
  • 本仓库现阶段更适合作为后端工程与本地开发项目查看,而不是完整上线产品展示

Extension points exported contracts — how you extend this code

AiChatService (Interface)
AI 做题助手:根据题目、代码、判题结果回答用户问题。 [6 implementers]
oj-modules/oj-ai/src/main/java/com/sintao/ai/service/AiChatService.java
RemoteQuestionService (Interface)
题目服务 Feign 接口,供 oj-ai 等模块按关键词检索题目,用于 Function Calling 推荐题目。 [20 implementers]
oj-api/src/main/java/com/sintao/api/RemoteQuestionService.java
ITestService (Interface)
(no doc) [9 implementers]
oj-modules/oj-system/src/main/java/com/sintao/system/test/service/ITestService.java
IUserMessageService (Interface)
(no doc) [21 implementers]
oj-modules/oj-friend/src/main/java/com/sintao/friend/service/user/IUserMessageService.java
IJudgeService (Interface)
(no doc) [3 implementers]
oj-modules/oj-judge/src/main/java/com/sintao/judge/service/IJudgeService.java
IMessageService (Interface)
(no doc) [3 implementers]
oj-modules/oj-job/src/main/java/com/sintao/job/service/IMessageService.java
RemoteJudgeService (Interface)
(no doc) [2 implementers]
oj-api/src/main/java/com/sintao/api/RemoteJudgeService.java
ISysUserService (Interface)
(no doc) [3 implementers]
oj-modules/oj-system/src/main/java/com/sintao/system/service/sysuser/ISysUserService.java

Core symbols most depended-on inside this repo

get
called by 291
oj-common/oj-common-core/src/main/java/com/sintao/common/core/utils/ThreadLocalUtil.java
append
called by 96
oj-agent/app/observability/query_ledger.py
getValue
called by 56
oj-common/oj-common-core/src/main/java/com/sintao/common/core/enums/UserStatus.java
set
called by 48
oj-common/oj-common-core/src/main/java/com/sintao/common/core/utils/ThreadLocalUtil.java
join
called by 43
oj-common/oj-common-security/src/main/java/com/sintao/common/security/handler/GlobalExceptionHandler.java
verify
called by 41
oj-agent/app/guardrails/verifiers/output_verifier.py
add
called by 40
oj-modules/oj-system/src/main/java/com/sintao/system/service/exam/IExamService.java
ok
called by 36
oj-common/oj-common-core/src/main/java/com/sintao/common/core/domain/R.java

Shape

Method 942
Function 502
Class 336
Interface 51
Enum 9
Route 4

Languages

Java60%
Python26%
TypeScript14%

Modules by API surface

oj-modules/oj-friend/src/test/java/com/sintao/friend/client/TrainingAgentClientTest.java44 symbols
oj-modules/oj-friend/src/main/java/com/sintao/friend/service/training/impl/TrainingServiceImpl.java30 symbols
oj-common/oj-common-redis/src/main/java/com/sintao/common/redis/service/RedisService.java24 symbols
oj-modules/oj-friend/src/main/java/com/sintao/friend/manager/ExamCacheManager.java21 symbols
oj-modules/oj-ai/src/main/java/com/sintao/ai/domain/agent/AgentChatRequest.java20 symbols
oj-agent/tests/test_observability_runtime.py19 symbols
oj-agent/tests/test_supervisor_graph.py17 symbols
oj-agent/tests/test_tutor_graph.py16 symbols
oj-modules/oj-friend/src/main/java/com/sintao/friend/service/user/impl/UserServiceImpl.java15 symbols
oj-modules/oj-friend/src/main/java/com/sintao/friend/service/user/impl/UserQuestionServiceImpl.java15 symbols
oj-agent/app/retrieval/qdrant_indexer.py15 symbols
oj-modules/oj-system/src/main/java/com/sintao/system/service/exam/impl/ExamServiceImpl.java14 symbols

Datastores touched

(mysql)Database · 1 repos
bitoj_devDatabase · 1 repos
xxl_jobDatabase · 1 repos

For agents

$ claude mcp add SynCode \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page