Skip to content

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 与开源版本在核心功能上保持同步发展。


更多详细信息请参考 快速开始指南部署文档

Released under the MIT License. Powered by VitePress.