文件
csp/docs/平台总体设计.md

1.8 KiB

平台总体设计

目标:围绕 CSP/OI 学习闭环构建一体化系统:知识学习 -> 日常练习 -> 错题复盘 -> 模拟竞赛 -> 排名反馈。

1. 产品模块

  1. 用户与鉴权
  2. 题库与在线提交
  3. 提交记录与结果追踪
  4. 错题本与复盘
  5. 模拟竞赛与排行
  6. 学习知识库
  7. 在线 C++ 编写/编译/运行

2. 技术架构

前端Next.js

  • App Router + TypeScript
  • 页面模块:/problems/submissions/wrong-book/contests/kb/run/me/leaderboard
  • 通过 /admin139 反代后端 API,避免跨域复杂度

后端Drogon C++

  • ControllerHTTP 路由与请求校验
  • Service业务逻辑题库/提交/错题本/竞赛/知识库)
  • Domain实体与 JSON 序列化
  • DBSQLite + 启动迁移 + 演示数据种子

数据层SQLite

  • 单文件数据库,便于快速部署
  • 覆盖用户、题库、提交、错题本、竞赛、知识库完整模型

3. 核心业务流

3.1 练习流

  1. 用户登录
  2. 浏览题目并提交
  3. 后端调用 g++ 编译并运行样例
  4. 结果写入 submissions
  5. 若未通过,写入/更新 wrong_book
  6. 若首次 AC,提升 users.rating

3.2 竞赛流

  1. 用户报名比赛
  2. 在比赛时间内提交比赛题目
  3. 按 AC 数与罚时生成排行榜

3.3 学习流

  1. 浏览知识库文章
  2. 查看文章关联题目
  3. 进入题目页面进行练习

4. 安全与运行边界

  • 当前在线运行模块用于开发/教学环境。
  • 生产环境应将编译运行迁移到受限沙箱,避免宿主机风险。

5. 可扩展方向

  • 增加多测试点判题与标准答案管理
  • 引入更细粒度比赛规则(罚时、封榜、重判)
  • 支持多语言判题
  • 增加学习路径与章节化知识图谱