# 平台总体设计 > 目标:围绕 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++) - Controller:HTTP 路由与请求校验 - Service:业务逻辑(题库/提交/错题本/竞赛/知识库) - Domain:实体与 JSON 序列化 - DB:SQLite + 启动迁移 + 演示数据种子 ### 数据层(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. 可扩展方向 - 增加多测试点判题与标准答案管理 - 引入更细粒度比赛规则(罚时、封榜、重判) - 支持多语言判题 - 增加学习路径与章节化知识图谱