团队作业3

# 课堂讨论反馈与修改

## 问题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小时)

---

## 测试计划
- **单元测试**:覆盖核心业务逻辑
- **集成测试**:验证各模块协同工作
- **性能测试**:评测系统并发处理能力
- **安全测试**:代码沙箱隔离有效性
- **用户体验测试**:邀请目标用户试用原型

测试将贯穿开发全过程,每日构建后进行自动化测试,每周进行人工测试。

团队分工

职责 参与队员
后端服务开发 林赛强
苏雨童
蔡梓欣
前端界面开发 李锦
薛考瑶
仓库管理兼代码审查 吴钊鑫
测试和部署 左栋立
posted @ 2025-04-21 14:26  ?wechat  阅读(49)  评论(0)    收藏  举报