# 课堂讨论反馈与修改
## 问题1:用户注册登录的方式有哪些?
我们提供三种注册登录方式:
- **基础注册**:
- 邮箱 + 密码注册
- 手机号 + 验证码注册
- **第三方账号快捷登录**:
- GitHub账号登录
- 微信账号登录
- **教育机构统一认证**:
- 学校/企业SSO集成(可选功能)
所有注册方式都会经过邮箱验证确保真实性,教师/管理员账号需要额外审核。
---
## 问题2:题目是否有分等级,比如简单、中等、困难?
题目采用多维难度分级系统:
- **基础难度标签**:
- 简单(适合初学者)
- 中等(需要一定算法基础)
- 困难(竞赛级难题)
- 专家级(ACM/ICPC级别)
- **智能难度评估**:
- 根据用户通过率动态调整显示难度
- 结合解题平均时间和代码复杂度计算
- **多维度分类**:
- 按算法类型(排序、搜索、动态规划等)
- 按应用领域(Web开发、数据科学等)
- 按竞赛考点(Codeforces/LeetCode题型)
---
## 问题3:大概支持哪些编程语言?
系统初期支持以下主流编程语言,后续会根据需求扩展:
| 语言类型 | 具体语言 | 版本 |
|-------------|-----------------------|-----------------|
| 编译型语言 | C, C++, Go, Rust | 最新稳定版 |
| 解释型语言 | Python, Ruby, PHP | Python 3.x等 |
| JVM语言 | Java, Kotlin, Scala | OpenJDK 11+ |
| .NET语言 | C# | .NET Core 3.1+ |
| 脚本语言 | JavaScript(Node.js), Lua | Node.js 14+ |
| 函数式语言 | Haskell, OCaml(可选) | 最新稳定版 |
---
## 问题4:测试用例是我们提供,还是用其他方式?
我们采用混合测试用例方案:
- **官方测试用例**:
- 每道题目提供10-20组基础测试用例
- 包含:
- 常规用例(验证基本功能)
- 边界用例(测试极端情况)
- 性能用例(检测时间/空间复杂度)
- 部分隐藏用例(防止硬编码作弊)
- **用户贡献用例**:
- 通过审核的优秀提交可作为补充用例
- 教师用户可以自定义用例(教学场景)
- **智能生成用例**:
- 使用模糊测试(Fuzzing)自动生成随机用例
- 针对特定算法模式生成针对性用例
- **特殊机制**:
- 测试用例定期轮换更新
- 重要竞赛题目使用一次性用例
- 支持测试用例的版本管理
所有测试用例都经过严格验证,确保:
- 正确性(有明确预期输出)
- 公平性(不偏袒特定解法)
- 安全性(避免恶意代码)
---
# 需求规格说明书改进
## 新增功能
- 代码评测详细报告功能
- 智能题目推荐系统
- 多维度竞赛排名系统
- 移动端适配优化
## 功能分析四象限
| 重要且紧急 | 重要不紧急 |
|------------------------|----------------------|
| 代码评测核心功能 | 智能题目推荐 |
| 用户注册登录 | 学习路径规划 |
| 基础题目库 | 社交功能 |
| 紧急不重要 | 不重要不紧急 |
|------------------------|----------------------|
| 第三方登录集成 | 用户成就系统 |
| 界面美化 | 多语言支持 |
---
## 系统架构设计
### 分层架构
- **表现层**:React前端 + 移动端适配
- **API层**:RESTful API (Spring Boot)
- **业务逻辑层**:
- 用户服务
- 题目服务
- 评测服务
- 竞赛服务
- **数据访问层**:MySQL + Redis
- **基础设施**:Docker容器化部署
---
## 关键技术选型
- 代码评测:Docker沙箱环境
- 实时反馈:WebSocket
- 负载均衡:Nginx
---
## 数据库设计
- 用户表(Users)
- 题目表(Problems)
- 提交记录表(Submissions)
- 竞赛表(Contests)
- 用户竞赛关联表(UserContests)
---
## Alpha任务分配计划
- **用户注册登录模块**(8小时)
- 邮箱注册功能(2小时)
- 第三方登录集成(3小时)
- 权限控制系统(3小时)
- **基础题目系统**(12小时)
- 题目数据库设计(2小时)
- 题目展示界面(4小时)
- 题目搜索筛选(3小时)
- 题目详情页(3小时)
- **代码评测核心**(15小时)
- 代码提交接口(3小时)
- Docker评测环境搭建(5小时)
- 评测结果反馈(4小时)
- 性能优化(3小时)
---
## 测试计划
- **单元测试**:覆盖核心业务逻辑
- **集成测试**:验证各模块协同工作
- **性能测试**:评测系统并发处理能力
- **安全测试**:代码沙箱隔离有效性
- **用户体验测试**:邀请目标用户试用原型
测试将贯穿开发全过程,每日构建后进行自动化测试,每周进行人工测试。
团队分工
| 职责 |
参与队员 |
| 后端服务开发 |
林赛强 |
|
苏雨童 |
|
蔡梓欣 |
| 前端界面开发 |
李锦 |
|
薛考瑶 |
| 仓库管理兼代码审查 |
吴钊鑫 |
| 测试和部署 |
左栋立 |