团队作业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.甘特图

deepseek_mermaid_20251122_0517be

五、测试计划

1.测试目标

业务连续性:确保用户从注册到笔记下载的完整流程畅通
功能稳定性:验证系统在预期20-30日活用户量下的稳定运行
数据可靠性:保证文件上传下载的完整性和安全性
用户体验:确保界面操作直观,响应及时

2.测试内容

用户系统
注册流程(学号/邮箱验证)
登录状态保持
退出功能
笔记管理
文件上传(格式校验、大小限制)

笔记列表展示
文件下载完整性
删除权限控制
课程分类
课程列表加载
按课程筛选笔记

posted @ 2025-11-22 23:16  冯诗萍  阅读(5)  评论(0)    收藏  举报