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

64 行
1.8 KiB
Markdown
原始文件 Blame 文件历史

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
# 平台总体设计
> 目标:围绕 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. 可扩展方向
- 增加多测试点判题与标准答案管理
- 引入更细粒度比赛规则(罚时、封榜、重判)
- 支持多语言判题
- 增加学习路径与章节化知识图谱