CCXC Engine 简介
CCXC Engine 是一个专为 Puzzle Hunt 打造的现代化 Web 开发框架。它为 Puzzle Hunt 主办方提供了一套完整的解决方案,包含用户管理、团队组建、谜题编辑、赛事运营、实时通信和答题记录等核心功能模块,显著降低了竞赛平台的开发门槛和时间成本。
版本说明
CCXC Engine 1.0 基于 CCBC 16 的成熟架构,经过重构和优化,去除了 CCBC 特有的业务逻辑,形成了这个面向社区的开源版本。
系统架构
CCXC Engine 采用模块化的微服务架构设计,由以下五个独立组件构成:
核心服务
ccxc-backend - 主后端服务
- 提供 RESTful API 接口
- 用户认证与权限管理
- 数据持久化与业务逻辑处理
ccxc-sync-server - 实时同步服务
- WebSocket 消息推送
- 实时协作与数据同步
前端应用
ccxc-admin - 后台管理系统
- 竞赛配置与管理
- 用户和团队管理
- 谜题编辑与发布
ccxc-website - 参赛者门户
- 用户注册与团队组建
- 竞赛信息展示
- 个人中心与排行榜
ccxc-puzzle - 谜题展示平台
- 交互式谜题界面
- 答题提交与验证
- 提示系统与进度跟踪
架构特点
各模块间采用松耦合设计,支持独立开发、部署和扩展。前端模块可根据具体需求进行定制或完全重写,而无需修改后端服务。
灵活性
在实际应用中,CCBC 每届都会基于 ccxc-puzzle 开发定制化的谜题前端,以适配不同的主题。其他核心组件(后端服务、管理系统、用户门户、同步服务)通常只需进行配置调整即可复用。
技术栈
后端技术
- 运行时: .NET 8.0 - 高性能、跨平台的现代化运行环境
- Web 服务器: 基于 Kestrel 的定制化实现
- 绕过传统 ASP.NET MVC 框架
- 支持底层 HTTP 协议定制
- 优化了 Puzzle Hunt 场景的性能表现
前端技术
- 核心框架: Vue 3.0 - 渐进式 JavaScript 框架
- 构建工具: Vite - 快速的前端构建工具
- UI 组件库: Ant Design - 企业级 UI 设计语言
- 代码编辑器: Monaco Editor - VS Code 同款在线编辑器
- 支持语法高亮和代码补全
- 专为谜题内容编辑优化
实时通信技术
- 协作引擎: Y.js - 分布式实时协作框架
- 支持多用户同步编辑
- 冲突自动解决机制
- 离线数据同步能力
项目背景与发展历程
起源与发展
CCXC Engine 源自 CCBC 的技术演进历程。自 CCBC X(第 10 届)开始,该框架成为 CCBC 的核心技术支撑。
早期阶段(CCBC 1-4)
- 采用贴吧发布题目,邮件收集答案的传统模式
- 缺乏统一的技术平台
平台化阶段(CCBC 5-9)
- 逐步建立在线题目展示和自动判题系统
- 陆续集成用户注册、团队管理、题目编辑等功能
- 每届独立开发,技术栈分散,维护成本高
框架化阶段(CCBC X 至今)
- CCBC 停办三年后重启,决定构建统一框架
- 目标:减少重复开发,避免技术债务,确保活动稳定性
- CCXC Engine 应运而生
开源历程
v2021 版本
- CCBC 11 结束后首次开源
- 功能相对基础,部署复杂度较高
- P&KU 1 等多个活动尝试采用(P&KU 后续转向自研方案)
1.0 正式版
- 基于 CCBC 16 的成熟实践发布
- 功能覆盖 Puzzle Hunt 全生命周期
- 引入插件化架构设计
技术理念
最初计划推出 "CCXC Engine Community" 作为社区版本,与 CCBC 内部版本区分。但考虑到:
- 避免版本碎片化风险
- 减少长期维护负担
- 保持技术栈统一性
最终选择了插件化的统一架构方案,确保 CCBC 与开源版本在核心功能上保持同步发展。