1.8 KiB
1.8 KiB
平台总体设计
目标:围绕 CSP/OI 学习闭环构建一体化系统:知识学习 -> 日常练习 -> 错题复盘 -> 模拟竞赛 -> 排名反馈。
1. 产品模块
- 用户与鉴权
- 题库与在线提交
- 提交记录与结果追踪
- 错题本与复盘
- 模拟竞赛与排行
- 学习知识库
- 在线 C++ 编写/编译/运行
2. 技术架构
前端(Next.js)
- App Router + TypeScript
- 页面模块:
/problems、/submissions、/wrong-book、/contests、/kb、/run、/me、/leaderboard - 通过
/admin139反代后端 API,避免跨域复杂度
后端(Drogon C++)
- Controller:HTTP 路由与请求校验
- Service:业务逻辑(题库/提交/错题本/竞赛/知识库)
- Domain:实体与 JSON 序列化
- DB:SQLite + 启动迁移 + 演示数据种子
数据层(SQLite)
- 单文件数据库,便于快速部署
- 覆盖用户、题库、提交、错题本、竞赛、知识库完整模型
3. 核心业务流
3.1 练习流
- 用户登录
- 浏览题目并提交
- 后端调用
g++编译并运行样例 - 结果写入
submissions - 若未通过,写入/更新
wrong_book - 若首次 AC,提升
users.rating
3.2 竞赛流
- 用户报名比赛
- 在比赛时间内提交比赛题目
- 按 AC 数与罚时生成排行榜
3.3 学习流
- 浏览知识库文章
- 查看文章关联题目
- 进入题目页面进行练习
4. 安全与运行边界
- 当前在线运行模块用于开发/教学环境。
- 生产环境应将编译运行迁移到受限沙箱,避免宿主机风险。
5. 可扩展方向
- 增加多测试点判题与标准答案管理
- 引入更细粒度比赛规则(罚时、封榜、重判)
- 支持多语言判题
- 增加学习路径与章节化知识图谱