团队作业3-需求改进&系统设计
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience |
| 这个作业要求在哪里| https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience/homework/13481 |
| 这个作业的目标 | <完成项目的需求规格说明书> |
|团队仓库 | https://github.com/fengshiping/Note-sharing-system |
一、团队简介
| 姓名 | 学号 |
|---|---|
| 冯诗萍(队长) | 3223004555 |
| 吴业鸿 | 3223004257 |
二、需求&原型改进
1.问题修改
问题1:增加评论功能,方便交流
修改1:在每份笔记下方增加评论区,登录用户可发表评论、回复他人评论。评论内容实时展示,支持富文本(如加粗、链接等)。评论数据与笔记绑定,便于后续查看与交流。
问题2:设计积分机制,激励上传
修改2:
引入积分系统:
用户上传笔记并通过审核后,获得 +10 积分;
每被下载一次,上传者获得 +1 积分;
积分可用于兑换“优先下载权”等
积分排行榜展示前10名用户,增强竞争与荣誉感。
2.修改需求规格说明书
新增功能:
评论系统
功能描述:用户可在笔记详情页发表评论、回复、点赞;
权限控制:仅登录用户可评论;
数据存储:评论与笔记ID关联,支持分页加载。
积分与激励系统
积分规则:上传+10,被下载+1;
积分商城:可兑换虚拟或实物奖励;
排行榜:展示积分前十用户。
笔记评分功能
用户可为笔记打分(1-5星),平均分展示在列表页,支持按评分排序。
3.功能分析的四个象限
| 象限 | 功能示例 | 说明 |
|---|---|---|
| 重要且紧急 | 用户登录、笔记上传下载、课程分类 | 核心功能,必须优先完成 |
| 重要不紧急 | 评论系统、积分系统 | 提升用户体验和活跃度,第二期开发 |
| 紧急不重要 | 界面美化、错误提示优化 | 可交由前端同学快速迭代 |
| 不重要不紧急 | 多语言支持、第三方登录 | 可延后或取消 |
4.调整后的WBS与项目进度计划
WBS(任务分解):
(1)核心功能开发
用户系统(注册、登录、退出)
笔记管理(上传、下载、删除)
课程分类与筛选
增强功能开发
(2)评论系统
积分与激励系统
笔记评分与排序
(3)测试与部署
单元测试、集成测试
部署上线与用户反馈收集
改进后的项目进度
| 周次 | 阶段 | 主要任务 | 具体交付物 | 负责人 |
|---|---|---|---|---|
| 第10周 | 准备阶段 | 1. 团队组队、创建团队博客 | 团队博客 | 全体成员 |
| (团队组建) | 2. 团队介绍、成员展示、角色分配 | 成员介绍文档 | ||
| 3. 选题确定与需求初步分析 | 项目选题报告 | |||
| 4. 制定团队计划与贡献分规则 | 团队管理规范 | |||
| 第11周 | 规划阶段 | 1. 完成需求规格说明书v1.0 | 需求规格说明书 | 冯诗萍:1,2,5 |
| (需求与设计) | 2. 低保真原型设计 | 原型设计稿 | 吴业鸿:3,4,5 | |
| 3. 技术栈学习与评估 | 技术调研报告 | |||
| 4. 编码规范制定 | 编码规范文档 | |||
| 5. 开发环境搭建 | 环境配置文档 | |||
| 第12周 | 设计深化 | 1. 用户调研与原型测试 | 用户调研报告 | 冯诗萍:1,2 |
| (原型改进) | 2. 高保真原型改进 | 高保真原型 | 吴业鸿:3,4,5 | |
| 3. 系统架构设计 | 系统架构图 | |||
| 4. 详细WBS分解 | 详细WBS计划 | |||
| 5. 测试计划制定 | 测试计划文档 | |||
| 第13周 | 开发阶段 | 1. 核心功能开发:用户系统 | 用户注册登录功能 | 冯诗萍:3 |
| (Alpha阶段1) | 2. 数据库设计与实现 | 数据库表结构 | 吴业鸿:1,2 | |
| 3. 前端基础框架搭建 | 前端基础组件 | |||
| 4. 每日Scrum Meeting | 7篇Scrum博客 | |||
| 第14周 | 开发阶段 | 1. 核心功能:笔记管理 | 笔记上传下载功能 | 冯诗萍:3 |
| (Alpha阶段2) | 2. 文件上传下载功能 | 文件存储服务 | 吴业鸿:1,2,4 | |
| 3. 前端页面开发 | 笔记列表页面 | |||
| 4. 基础测试用例编写 | 测试用例文档 | |||
| 第15周 | 开发阶段 | 1. 课程分类功能 | 课程筛选功能 | 冯诗萍:2,3 |
| (Alpha阶段3) | 2. 基础评论功能 | 评论基础功能 | 吴业鸿:1,4 | |
| 3. 界面优化与集成测试 | 集成测试报告 | |||
| 4. Alpha版本部署 | 可运行Alpha版本 | |||
| 第16周 | 测试优化 | 1. 用户测试与反馈收集 | 用户反馈报告 | 冯诗萍:1,3 |
| (测试改进) | 2. Bug修复与性能优化 | Bug修复列表 | 吴业鸿:2,4 | |
| 3. 测试计划改进 | 改进的测试计划 | |||
| 4. 项目文档整理 | 项目文档集 | |||
| 第17周 | 收尾阶段 | 1. 项目总结与反思 | 项目总结报告 | 全体成员 |
| (总结分析) | 2. 经验教训文档 | 经验教训文档 | ||
| 3. 最终成果展示准备 | 展示材料 | |||
| 4. 事后分析报告 | 事后分析报告 |
三、系统设计
1.架构设计原则
分层解耦原则
表现层、业务层、数据层分离
各层之间通过明确定义的接口通信
便于并行开发和测试
微服务化设计
按业务功能拆分服务
服务间通过REST API通信
独立部署和扩展
前后端分离
前端专注UI交互
后端专注业务逻辑
通过API契约定义协作
2.技术选择
前端:
技术栈: HTML + CSS + Bootstrap + JavaScript (Vanilla JS)
后端:
技术栈: Java + Spring Boot + MyBaties-plus + MySQL + Mavean
3.数据库核心表设计
(1)user表
CREATE TABLE user (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) NOT NULL UNIQUE COMMENT '用户名',
password VARCHAR(255) NOT NULL COMMENT '密码',
email VARCHAR(100) UNIQUE COMMENT '邮箱',
created_time DATETIME DEFAULT CURRENT_TIMESTAMP,
INDEX `idx_username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
(2)course表
CREATE TABLE course (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL COMMENT '课程名称',
code VARCHAR(50) UNIQUE COMMENT '课程代码',
created_time DATETIME DEFAULT CURRENT_TIMESTAMP,
INDEX `idx_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 初始化课程数据
INSERT INTO course (name, code) VALUES
('高等数学A', 'MATH001'),
('大学英语I', 'ENG001'),
('计算机科学导论', 'CS001'),
('线性代数', 'MATH002'),
('C语言程序设计', 'CS002');
(3)note
CREATE TABLE note (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(200) NOT NULL COMMENT '笔记标题',
description TEXT COMMENT '笔记描述',
file_name VARCHAR(255) NOT NULL COMMENT '文件名',
file_path VARCHAR(500) NOT NULL COMMENT '文件路径',
file_size BIGINT NOT NULL COMMENT '文件大小',
file_type VARCHAR(10) NOT NULL COMMENT '文件类型(pdf/jpg/png)',
course_id BIGINT NOT NULL COMMENT '课程ID',
user_id BIGINT NOT NULL COMMENT '上传用户ID',
download_count INT DEFAULT 0 COMMENT '下载次数',
created_time DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (`course_id`) REFERENCES `course`(`id`),
FOREIGN KEY (`user_id`) REFERENCES `user`(`id`),
INDEX `idx_course_id` (`course_id`),
INDEX `idx_user_id` (`user_id`),
INDEX `idx_created_time` (`created_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
4.文件存储方案
1.2 文件命名策略
原始文件名保存:保留用户上传时的原始文件名,便于用户识别
防止重名冲突:在文件名前添加时间戳或随机字符串,如20241128123045_高等数学笔记.pdf
路径生成规则:自动根据上传日期生成存储路径,如notes/2024/11/28/
1.3 文件类型限制
系统仅支持以下文件类型:
PDF文档:.pdf
图片文件:.jpg, .jpeg, .png, .gif
文件大小限制:单个文件最大10MB
5.安全与权限控制设计
(1)基于Session的认证
采用HTTP Session管理用户登录状态,实现简单且无需额外依赖:
登录流程:
用户提交用户名和密码
后端验证凭证有效性
验证通过后,将用户信息存入Session
返回登录成功响应,建立会话
会话管理:
会话超时:设置Session有效期为30分钟
自动续期:用户每次操作自动刷新会话有效期
多端登录:允许同一账号在多个设备同时登录
密码安全策略
强度要求:密码长度至少6位,建议包含字母和数字
防暴力破解:连续登录失败5次后,锁定账号30分钟
(2)访问权限控制
功能级权限:
基于用户角色和资源所有权的权限控制:
笔记操作权限:
下载权限:所有登录用户可下载任意公开笔记
删除权限:仅笔记上传者可以删除自己上传的笔记
查看权限:所有登录用户可查看笔记列表和详情
用户角色权限:
普通用户:上传、下载、查看、删除自己的笔记
管理员(预留):管理所有用户和笔记内容
四、Alpha任务分配计划
1.Product Backlog(Alpha阶段选取功能项)
| 优先级 | 功能模块 | 核心功能项 | 预估工时 | 说明 |
|---|---|---|---|---|
| P0(必须) | 用户系统 | 用户注册、登录、退出 | 10h | 系统基础 |
| P0(必须) | 笔记管理 | 笔记上传、列表展示、下载 | 12h | 核心功能 |
| P0(必须) | 课程分类 | 课程筛选 | 4h | 基础分类 |
| P1(重要) | 权限控制 | 笔记删除权限 | 3h | 基础安全 |
| P2(可选) | 评论系统 | 基础评论功能 | 8h | 简化版,不含富文本 |
| P2(可选) | 积分系统 | 基础积分展示 | 6h | 只展示,无兑换 |
2.Sprint Backlog(任务分解)
用户系统模块
| 任务项 | 负责人 | 预估工时 | 优先级 |
|---|---|---|---|
| 用户注册页面设计 | 冯诗萍 | 3h | P0 |
| 用户登录页面设计 | 冯诗萍 | 2h | P0 |
| 注册API开发 | 吴业鸿 | 3h | P0 |
| 登录API与Session管理 | 吴业鸿 | 3h | P0 |
| 退出功能实现 | 吴业鸿 | 1h | P0 |
笔记管理模块
| 任务项 | 负责人 | 预估工时 | 优先级 |
|---|---|---|---|
| 笔记上传页面设计 | 冯诗萍 | 3h | P0 |
| 笔记列表页面开发 | 冯诗萍 | 4h | P0 |
| 文件上传API开发 | 吴业鸿 | 4h | P0 |
| 笔记列表API开发 | 吴业鸿 | 3h | P0 |
| 文件下载功能 | 吴业鸿 | 2h | P0 |
课程分类模块
| 任务项 | 负责人 | 预估工时 | 优先级 |
|---|---|---|---|
| 课程筛选前端 | 冯诗萍 | 2h | P0 |
| 课程筛选API | 吴业鸿 | 2h | P0 |
评论系统(简化版)
| 任务项 | 负责人 | 预估工时 | 优先级 |
|---|---|---|---|
| 评论数据库设计 | 吴业鸿 | 1h | P2 |
| 基础评论API | 吴业鸿 | 3h | P2 |
| 评论展示前端 | 冯诗萍 | 2h | P2 |
积分系统(简化版)
| 任务项 | 负责人 | 预估工时 | 优先级 |
|---|---|---|---|
| 积分规则API | 吴业鸿 | 2h | P2 |
| 积分展示前端 | 冯诗萍 | 2h | P2 |
3.甘特图

五、测试计划
1.测试目标
业务连续性:确保用户从注册到笔记下载的完整流程畅通
功能稳定性:验证系统在预期20-30日活用户量下的稳定运行
数据可靠性:保证文件上传下载的完整性和安全性
用户体验:确保界面操作直观,响应及时
2.测试内容
用户系统
注册流程(学号/邮箱验证)
登录状态保持
退出功能
笔记管理
文件上传(格式校验、大小限制)
笔记列表展示
文件下载完整性
删除权限控制
课程分类
课程列表加载
按课程筛选笔记

浙公网安备 33010602011771号