新苗Sprout——项目系统设计与数据库设计

Sprout新苗 2024-10-22 22:01:46
这个作业属于哪个课程https://bbs.csdn.net/forums/2401_CS_SE_FZU
这个作业要求在哪里https://bbs.csdn.net/topics/619366803
这个作业的目标系统设计、数据库设计、安全和权限设计
其他参考文献

目录

  • 1 文件地址
  • 1.1《系统设计说明书》
  • 1.2 《数据库设计说明书》
  • 1.3《系统设计和数据库设计答辩PPT》
  • 2 系统和数据库设计
  • 2.1 系统架构设计
  • 2.1.1 AI
  • 2.1.2 后端
  • 2.1.3 客户端
  • 2.1.4 管理端
  • 2.1.5 数据库
  • 2.2 技术架构设计
  • 2.2.1 客户端技术实现
  • 2.2.2 前端技术实现
  • 2.2.3 后端技术实现
  • 2.3 功能模块层次图
  • 2.3.1 学生端(APP端)
  • 2.3.1.1 用户信息管理模块
  • 2.3.1.2 任务管理模块
  • 2.3.1.3 养成管理模块
  • 2.3.1.4 附加功能模块
  • 2.3.2 管理端(网页端)
  • 2.3.2.1 统计查询模块
  • 2.3.2.2 学生管理模块
  • 2.3.2.3 任务管理模块
  • 2.3.2.4 广告管理模块
  • 2.4 ER分析
  • 2.4.1 实体分析
  • 2.4.1.1 广告实体
  • 2.4.1.2 广告点击记录实体
  • 2.4.1.3 广告用户记录实体
  • 2.4.1.4 讨论记录实体
  • 2.4.1.5 讨论点赞记录实体
  • 2.4.1.6 院系实体
  • 2.4.1.7 专业实体
  • 2.4.1.8 通知实体
  • 2.4.1.9 消息记录实体
  • 2.4.1.10 任务实体
  • 2.4.1.11 任务提交实体
  • 2.4.1.12 养成实体
  • 2.4.1.13 管理员实体
  • 2.4.1.14 用户实体
  • 2.4.1.15 用户任务统计实体
  • 2.4.2 E-R模块分析
  • 2.4.2.1 广告模块
  • 2.4.2.2 讨论模块
  • 2.4.2.3 学院与专业模块
  • 2.4.2.4 任务通知模块
  • 2.4.2.5 养成模块
  • 2.4.2.6 管理员模块
  • 2.4.3 总体E-R图
  • 2.5 表结构设计
  • 2.5.1 逻辑结构
  • 2.5.2 物理结构
  • 2.5.2.1 广告实体
  • 2.5.2.2 广告点击记录实体
  • 2.5.2.3 广告用户记录实体
  • 2.5.2.4 讨论记录实体
  • 2.5.2.5 讨论点赞记录实体
  • 2.5.2.6 院系实体
  • 2.5.2.7 专业实体
  • 2.5.2.8 通知实体
  • 2.5.2.9 消息记录实体
  • 2.5.2.10 任务实体
  • 2.5.2.11 任务提交实体
  • 2.5.2.12 养成实体
  • 2.5.2.13 管理员实体
  • 2.5.2.14 用户实体
  • 2.5.2.15 用户任务统计实体
  • 3 类图、系统安全和权限设计
  • 3.1 用况图
  • 3.1.1 学生端
  • 3.1.2 管理端
  • 3.2 类图
  • 3.3 系统安全
  • 3.3.1 安全性
  • 3.3.1.1 用户身份验证
  • 3.3.1.2 数据安全
  • 3.3.1.3 验证用户输入
  • 3.3.2 健壮性
  • 3.3.2.1 平台兼容
  • 3.3.2.2 异常处理
  • 3.3.2.3 提供稳定服务
  • 3.3.2.4 优化用户体验
  • 3.3.2.5 代码更新和版本测试覆盖
  • 3.4 权限设计
  • 3.4.1 前台用户权限设计说明
  • 3.4.2 后台管理员权限设计说明
  • 3.5 设计思路
  • 3.5.1 需求分析
  • 3.5.2 实体识别
  • 3.5.3 创建E-R图
  • 3.5.4 定义类
  • 3.5.5 确定属性
  • 3.5.6 定义操作
  • 3.5.7 确定关系
  • 3.5.8 封装和抽象
  • 3.5.9 使用UML类图
  • 3.5.10 维护
  • 4 团队绩效
  • 4.1 工作流程
  • 4.1.1 开会讨论作业内容
  • 4.1.2 分工划分和确认
  • 4.1.3 定期推进
  • 4.2 组员分工与贡献度
  • 5 开发计划安排
  • 5.1 预期开发计划时间安排
  • 5.2 预期开发计划分工安排
  • 5.2.1 第1周-第2周(alpha冲刺)
  • 5.2.2 第3周-第4周(beta冲刺)

1 文件地址

1.1《系统设计说明书》

120页,24666个字

Codearts链接

1.2 《数据库设计说明书》

34页,8534个字

Codearts链接

1.3《系统设计和数据库设计答辩PPT》

Codearts链接

2 系统和数据库设计

2.1 系统架构设计

《新苗同学》的系统架构采用模块化设计,保证系统的可维护性、可扩展性和灵活性。系统由以下几个主要模块组成:

2.1.1 AI

  • 人脸识别:采用DeepFace模型,DeepFace采用9层深度神经网络,包含局部连接层和全连接层,专门设计以优化面部特征提取,实现高精度面部识别。
  • 姿态识别:使用OpenPose模型,其架构主要基于卷积神经网络(CNN),并采用了Part Affinity Fields(PAFs)来预测人体各部位及其肢体之间的关系。
  • OCR文字识别:使用CRNN模型,CRNN是一种用于序列识别任务的深度学习模型,它结合了卷积神经网络(CNN)和循环神经网络(RNN)的优势。

具体结构如下:

image-20241022232752897

2.1.2 后端

后端采用Spring Boot框架进行开发,提供快速、高效的服务。主要组成部分包括:

  • 数据库操作:使用MyBatis-Plus实现数据库交互。
  • 容器化部署:通过Docker保证环境一致性。
  • 缓存机制:利用Redis提升系统的响应速度。
  • 服务管理:使用Spring Cloud Gateway进行请求路由与负载均衡,Nacos进行服务注册与配置管理。
  • 消息处理:RocketMQ负责处理异步消息。
  • 定时任务调度:XXL-JOB用于管理定时任务。

这种架构设计使得后端系统可以高效可靠地实现大规模用户的访问支持。

具体结构如下:

img

2.1.3 客户端

客户端采用MVVM(模型-视图-视图模型)架构,负责用户交互和界面展示。主要组件包括:

  • Activity/Fragment:负责用户界面的显示与交互。
  • ViewModel:提供数据给UI组件。
  • Repository:统一管理数据访问,协调从本地数据库(Room)和远程服务(Retrofit)获取数据。

这种设计兼顾了客户端在数据获取和用户界面更新上的灵活性。

具体结构如下:

img

2.1.4 管理端

管理端使用Vue.js构建用户界面,采用组件化设计,便于代码重用和维护。主要特性包括:

  • 状态管理:使用Pinia管理应用状态,实现各组件间的数据同步。
  • HTTP请求处理:通过Axios与后端API进行通信。
  • UI组件库:利用Element Plus提供一致的用户界面风格。
  • 样式预处理:使用Sass增强样式管理。

此设计实现了管理端应用的高性能和良好的用户体验。

具体结构如下:

img

2.1.5 数据库

系统使用MySQL作为主要数据库,负责持久化存储用户数据和应用状态。同时,利用Redis作为缓存,提高数据访问的效率。

2.2 技术架构设计

2.2.1 客户端技术实现

客户端的实现基于MVVM架构,确保界面与业务逻辑的分离。关键技术包括:

  • Room:作为SQLite的抽象层,简化本地数据操作。
  • Retrofit:用于与RESTful API进行网络通信,用于数据的获取与更新。

2.2.2 前端技术实现

前端采用Vue 3作为主要框架,结合以下技术:

  • Pinia:用于状态管理,确保组件间的有效数据传递。
  • Axios:处理所有HTTP请求,保证前后端的高效通信。
  • Element Plus和Sass:提供一致的UI组件与样式处理,提升用户体验。
  • ECharts与AMap API:实现数据可视化与地图功能,增强用户互动。

2.2.3 后端技术实现

后端技术架构基于Spring Boot,集成了以下组件:

  • MyBatis-Plus:简化数据库操作,提升开发效率。
  • Docker:确保应用的容器化,便于管理与部署。
  • Redis:作为缓存,提升系统性能。
  • Spring Cloud Gateway与Nacos:实现服务的动态管理与负载均衡,增强系统的可靠性。
  • RocketMQ与XXL-JOB:用于异步消息处理与定时任务管理。

2.3 功能模块层次图

2.3.1 学生端(APP端)

image-20241021020353927

学生端主要划分为 4 个模块: 用户信息管理模块、任务管理模块、养成管理模块、附加功能模块。

主要的划分依据及步骤如下:

  1. 分析系统的需求,新苗同学的基础需求包括用户信息管理、任务管理、养成管理等。
  2. 根据操作的相关性及具体内容对需求进行归类,如将与用户账户相关的登录、激活、修改密码等操作归入用户信息管理模块,所有与任务相关的参与任务、评论、点赞等操作归入任务管理模块。
  3. 根据需求对系统进行模块分析,抽取出上述 4 大核心模块。
  4. 将核心模块进行细化扩展,逐层得到各个子模块,完成模块划分。
2.3.1.1 用户信息管理模块

image-20241021020416448

用户信息管理细化为登录、查看个人信息、个人信息维护、查看积分排行榜。

个人信息维护再次细化为激活账号、修改密码、修改头像。

2.3.1.2 任务管理模块

image-20241021020433883

任务管理细化为个人任务列表、活动任务大厅、查看任务详情、参与任务、任务通知管理、任务评论管理。

个人任务列表再次细化为查看主线任务列表、查看支线任务列表、查看已完成任务列表。

活动任务大厅再次细化为查看可订阅支线任务、订阅支线任务。

任务通知管理再次细化为订阅任务通知、任务点范围接收通知。

任务评论管理再次细化为查看任务评论列表、创建评论、点赞评论、取消点赞评论。

2.3.1.3 养成管理模块

image-20241021020448510

养成管理细化为查看养成排行榜、查看个人养成信息、种植树苗、浇灌树苗、收获大树苗。

2.3.1.4 附加功能模块

image-20241021020500154

2.3.2 管理端(网页端)

image-20241021020523615

管理端主要划分为 4 个模块: 统计查询模块、任务管理模块、广告管理模块、学生管理模块。

主要的划分依据及步骤如下:

  1. 分析系统的需求,新苗同学的基础需求包括统计查询、任务管理、广告管理、学生管理等。
  2. 根据操作的相关性及具体内容对需求进行归类,如将与学生管理相关的分类统计,注册统计,信息导入等操作归入学生管理模块,所有与任务相关的任务发布、审核、查看已发布任务等操作归入任务管理模块。
  3. 根据需求对系统进行模块分析,抽取出上述 4 大核心模块。
  4. 将核心模块进行细化扩展,逐层得到各个子模块,完成模块划分。
2.3.2.1 统计查询模块

image-20241021020534020

统计查询细化为日活数据统计、热门任务统计、消息通知模块。

2.3.2.2 学生管理模块

image-20241021020548408

学生管理细化为学生分类统计、学生注册统计、学生导入、查询学生模块。

2.3.2.3 任务管理模块

image-20241021020559583

任务管理细化为任务审核、任务发布、查看已发布任务模块。

2.3.2.4 广告管理模块

image-20241021020610896

广告管理细化为广告统计、发布广告、查看已发布广告模块。

2.4 ER分析

2.4.1 实体分析

2.4.1.1 广告实体

广告实体(ID,广告类型,文本内容,图片内容,跳转链接,关键字,关键字个数,优先级,推送位置,推送方式,广告目标年级范围,广告目标性别,广告目标学院,广告开始时间,广告结束时间,广告费用,被点击的次数,被推送的次数,创建时间,修改时间,删除标识)

属性约束:广告类型 => (1:文本,2:图片,3:视频,4:文本图片,5:文本视频)

属性约束:跳转链接 => (-1:无)

属性约束:推送方式 => (1:app内展示,2:消息推送,3:全部)

属性约束:广告目标性别 => (0:女,1:男,2:全部)

img

2.4.1.2 广告点击记录实体

广告点击记录实体(ID,用户ID,广告ID,创建时间,修改时间,删除标识) 属性约束:删除标识 => (0:未删除,1:已删除)

img

2.4.1.3 广告用户记录实体

广告用户记录实体(ID,用户ID,广告ID,被推送的次数,推送方式,广告开始时间,广告结束时间,创建时间,修改时间,删除标识) 属性约束:推送方式 => (1:app内展示,2:消息推送,3:全部) 属性约束:删除标识 => (0:未删除,1:已删除) 属性约束:用户ID与广告ID组合唯一 => (用户ID,广告ID)

img

2.4.1.4 讨论记录实体

讨论记录实体(ID,用户ID,用户名,真实姓名,头像URL,父评论ID,讨论对象ID,讨论对象类型,讨论类型,讨论文字内容,讨论图片内容,点赞数,被回复评论数,热度,最新评论时间,创建时间,修改时间,删除标识)

属性约束:父评论ID => (-1: 无父评论)

属性约束:讨论对象类型 => (1:任务,2:校园圈动态)

属性约束:讨论类型 => (1:任务讨论,2:校园圈的动态,3:任务讨论的评论,4:校园圈的动态的评论,5:任务讨论的评论的评论,6:校园圈的动态的评论的评论)

属性约束:删除标识 => (0:未删除,1:已删除)

img

2.4.1.5 讨论点赞记录实体

讨论点赞记录实体(ID,用户ID,讨论ID,创建时间,修改时间,删除标识)

属性约束:删除标识 => (0:未删除,1:已删除)

img

2.4.1.6 院系实体

院系实体(ID,院系名,删除标识)

属性约束:删除标识 => (0:未删除,1:已删除)

img

2.4.1.7 专业实体

专业实体(ID,专业名,院系ID,删除标识)

属性约束:删除标识 => (0:未删除,1:已删除)

img

2.4.1.8 通知实体

通知实体(ID,用户ID,任务ID,订阅任务通知时间,是否完成通知,消息ID,创建时间,修改时间,删除标识)

属性约束:删除标识 => (0:未删除,1:已删除)

img

2.4.1.9 消息记录实体

消息记录实体(ID,标题,内容,接收者ID,是否已读,消息类型,消息来源ID,消息来源类型,创建时间,修改时间,删除标识)

属性约束:

是否已读 => (0:未读,1:已读)

消息类型 => (0:消息,1:代办)

删除标识 => (0:未删除,1:已删除)

img

2.4.1.10 任务实体

任务实体(ID,父任务ID,是否是主线任务,子任务个数,任务名称,任务描述,任务类型,任务图片信息,任务奖励,任务积分,任务范围,任务难易程度,任务优先级,任务对象的年级,任务对象的院系ID,任务对象的专业ID,是否需要照片打卡,是否人工审核,动作姿势识别,物品识别,任务要求类型,摄像头ID,任务是否开始,任务开始时间,任务结束时间,创建时间,修改时间,删除标识)

属性约束:

是否是主线任务 => (0:支线,1:主线)

任务类型 => (0:开学前,1:注册时,2:开学后)

是否需要照片打卡 => (0:否,1:物品,2:人像,3:动作,4:其他)

是否人工审核 => (0:否,1:是)

任务是否开始 => (0:未开始,1:开始,2:结束)

删除标识 => (0:未删除,1:已删除)

img

2.4.1.11 任务提交实体

任务提交实体(ID,用户ID,任务ID,父任务ID,图片路径,定位信息,提交时间,提交备注,审核状态,审核人ID,审核建议,任务完成分数,创建时间,修改时间,删除标识)

属性约束:

审核状态 => (0:待审核,1:审核通过,2:审核不通过)

删除标识 => (0:未删除,1:已删除)

img

2.4.1.12 养成实体

养成实体(ID,用户ID,小树苗,中树苗,大树苗,水滴,杂草,铲子,树苗位置,已种植的小树苗数,大树苗收获数,创建时间,修改时间,删除标识)

属性约束:

树苗位置 => sapling_position 字段解释位置ID与浇灌水滴数的关系:-1表示无树苗,浇灌水滴数大于等于5小于15表示中树苗

删除标识 => (0:未删除,1:已删除)

img

2.4.1.13 管理员实体

管理员实体(ID,用户名,密码,创建时间,修改时间,删除标识)

属性约束:

删除标识 => (0:未删除,1:已删除)

img

2.4.1.14 用户实体

用户实体(ID,是否注册,用户名,密码,真实姓名,性别,学号,年级,专业ID,院系ID,国家/地区,头像url,人像图片url,证件类型,证件号,手机号,积分,注册时的经度,注册时的纬度,微信授权用户唯一标识,微信账号用户昵称,微信用户头像,创建时间,修改时间,删除标识)

属性约束:

删除标识 => (0:未删除,1:已删除)

性别 => (0:未知,1:男,2:女)

img

2.4.1.15 用户任务统计实体

用户任务统计实体(ID,用户ID,任务ID,父任务ID,任务名称,是否是主线任务,任务积分,任务奖励,任务优先级,任务开始时间,任务结束时间,任务类型,任务完成时间,任务完成分数,任务完成情况,子任务完成数,创建时间,修改时间,删除标识)

属性约束:

删除标识 => (0:未删除,1:已删除)

是否是主线任务 => (0:否,1:是)

任务类型 => (0:开学前,1:注册时,2:开学后)

任务完成情况 => (0:未完成,1:待审核,2:已完成,3:失败)

子任务完成数 => (-1:无子任务)

2.4.2 E-R模块分析

2.4.2.1 广告模块

广告模块负责管理平台上的广告内容,包括广告的创建、编辑和删除。该模块允许管理员追踪广告的点击率,以评估广告效果,并能够将特定广告推送给目标用户,提升广告的曝光率和互动性。

img

2.4.2.2 讨论模块

讨论模块提供用户发布和参与讨论的功能,用户可以在平台上发起话题,与他人分享观点。该模块还包含点赞功能,允许用户对感兴趣的讨论内容表达支持,从而增强用户间的互动。

img

2.4.2.3 学院与专业模块

学院与专业模块用于管理学院和专业的信息,支持新增、修改和删除相关记录。该模块确保学院与其下属专业之间的有效关联,便于用户查询和管理教育资源。

img

2.4.2.4 任务通知模块

任务通知模块负责创建和管理系统中的各类任务,确保用户能够及时接收到与任务相关的通知信息。该模块记录每个通知的详细信息,便于后续跟踪和管理任务的进展情况。

img

2.4.2.5 养成模块

养成模块关注用户在特定活动中的成长与进步,管理与养成类活动相关的信息。用户可以参与各种活动,并记录自己的成长成就,促进积极的互动和用户参与感。

img

2.4.2.6 管理员模块

管理员模块负责系统管理与维护,管理员可以创建和管理管理员账户,确保系统安全与正常运作。该模块的功能涵盖对其他模块的监督和管理,以保证平台的稳定性和高效性。

img

2.4.3 总体E-R图

img

2.5 表结构设计

2.5.1 逻辑结构

关系模式关系模式表
广告表-广告点击表(1:n)广告表(ID,广告类型,文本内容,图片内容,跳转链接,关键字,关键字个数,优先级,推送位置,推送方式,广告目标年级范围,广告目标性别,广告目标学院,广告开始时间,广告结束时间,广告费用,被点击的次数,被推送的次数,创建时间,修改时间,删除标识)广告点击表(ID,用户ID,广告ID,创建时间,修改时间,删除标识)
广告表-广告用户表 (1:n)广告表(ID,广告类型,文本内容,图片内容,跳转链接,关键字,关键字个数,优先级,推送位置,推送方式,广告目标年级范围,广告目标性别,广告目标学院,广告开始时间,广告结束时间,广告费用,被点击的次数,被推送的次数,创建时间,修改时间,删除标识)广告点击记录表(ID,用户ID,广告ID,创建时间,修改时间,删除标识)
讨论表-任务表 (1:n)讨论表(ID,用户ID,用户名,真实姓名,头像URL,父评论ID,讨论对象ID,讨论对象类型,讨论类型,讨论文字内容,讨论图片内容,点赞数,被回复评论数,热度,最新评论时间,创建时间,修改时间,删除标识)任务表(ID,父任务ID,是否是主线任务,子任务个数,任务名称,任务描述,任务类型,任务图片信息,任务奖励,任务积分,任务范围,任务难易程度,任务优先级,任务对象的年级,任务对象的院系ID,任务对象的专业ID,是否需要照片打卡,是否人工审核,动作姿势识别,物品识别,任务要求类型,摄像头ID,任务是否开始,任务开始时间,任务结束时间,创建时间,修改时间,删除标识)
讨论表-用户表 (1:n)讨论表(ID,用户ID,用户名,真实姓名,头像URL,父评论ID,讨论对象ID,讨论对象类型,讨论类型,讨论文字内容,讨论图片内容,点赞数,被回复评论数,热度,最新评论时间,创建时间,修改时间,删除标识)用户表(ID,是否注册,用户名,密码,真实姓名,性别,学号,年级,专业ID,院系ID,国家/地区,头像url,人像图片url,证件类型,证件号,手机号,积分,注册时的经度,注册时的纬度,微信授权用户唯一标识,微信账号用户昵称,微信用户头像,创建时间,修改时间,删除标识)
讨论点赞表-讨论表 (n:1)讨论点赞表(ID,用户ID,讨论ID,创建时间,修改时间,删除标识)讨论表(ID,用户ID,用户名,真实姓名,头像URL,父评论ID,讨论对象ID,讨论对象类型,讨论类型,讨论文字内容,讨论图片内容,点赞数,被回复评论数,热度,最新评论时间,创建时间,修改时间,删除标识)
任务表-讨论表 (1:n)任务表(ID,父任务ID,是否是主线任务,子任务个数,任务名称,任务描述,任务类型,任务图片信息,任务奖励,任务积分,任务范围,任务难易程度,任务优先级,任务对象的年级,任务对象的院系ID,任务对象的专业ID,是否需要照片打卡,是否人工审核,动作姿势识别,物品识别,任务要求类型,摄像头ID,任务是否开始,任务开始时间,任务结束时间,创建时间,修改时间,删除标识)讨论表(ID,用户ID,用户名,真实姓名,头像URL,父评论ID,讨论对象ID,讨论对象类型,讨论类型,讨论文字内容,讨论图片内容,点赞数,被回复评论数,热度,最新评论时间,创建时间,修改时间,删除标识)
通知表-用户表 (1:n)通知表(ID,用户ID,任务ID,订阅任务通知时间,是否完成通知,消息ID,创建时间,修改时间,删除标识)用户表(ID,是否注册,用户名,密码,真实姓名,性别,学号,年级,专业ID,院系ID,国家/地区,头像url,人像图片url,证件类型,证件号,手机号,积分,注册时的经度,注册时的纬度,微信授权用户唯一标识,微信账号用户昵称,微信用户头像,创建时间,修改时间,删除标识)
专业表-院系表 (1:n)专业表(ID,专业名,院系ID,删除标识)院系表(ID,院系名,删除标识)
养成表-用户表 (1:n)养成表(ID,用户ID,小树苗,中树苗,大树苗,水滴,杂草,铲子,树苗位置,已种植的小树苗数,大树苗收获数,创建时间,修改时间,删除标识)用户表(ID,是否注册,用户名,密码,真实姓名,性别,学号,年级,专业ID,院系ID,国家/地区,头像url,人像图片url,证件类型,证件号,手机号,积分,注册时的经度,注册时的纬度,微信授权用户唯一标识,微信账号用户昵称,微信用户头像,创建时间,修改时间,删除标识)
任务表-用户表(n:m)任务表(ID,父任务ID,是否是主线任务,子任务个数,任务名称,任务描述,任务类型,任务图片信息,任务奖励,任务积分,任务范围,任务难易程度,任务优先级,任务对象的年级,任务对象的院系ID,任务对象的专业ID,是否需要照片打卡,是否人工审核,动作姿势识别,物品识别,任务要求类型,摄像头ID,任务是否开始,任务开始时间,任务结束时间,创建时间,修改时间,删除标识)用户表(ID,是否注册,用户名,密码,真实姓名,性别,学号,年级,专业ID,院系ID,国家/地区,头像url,人像图片url,证件类型,证件号,手机号,积分,注册时的经度,注册时的纬度,微信授权用户唯一标识,微信账号用户昵称,微信用户头像,创建时间,修改时间,删除标识)

2.5.2 物理结构

2.5.2.1 广告实体

img

2.5.2.2 广告点击记录实体

img

2.5.2.3 广告用户记录实体

img

2.5.2.4 讨论记录实体

img

2.5.2.5 讨论点赞记录实体

img

2.5.2.6 院系实体

img

2.5.2.7 专业实体

img

2.5.2.8 通知实体

img

2.5.2.9 消息记录实体

img

2.5.2.10 任务实体

img

2.5.2.11 任务提交实体

img

2.5.2.12 养成实体

img

2.5.2.13 管理员实体

img

2.5.2.14 用户实体

img

2.5.2.15 用户任务统计实体

img

3 类图、系统安全和权限设计

3.1 用况图

3.1.1 学生端

img

用户信息管理子用况:

img

任务管理子用况:

img

养成管理子用况:

img

使用附加功能子用况:

img

3.1.2 管理端

img

学生管理子用况:

img

任务管理子用况:

img

广告管理子用况 :

img

3.2 类图

img

3.3 系统安全

3.3.1 安全性

为了保证用户使用应用时的系统安全,新苗同学用户端设置如下安全性保障:

3.3.1.1 用户身份验证

为基础安全提供保障,新苗同学采取以下用户验证措施:

  1. 详细信息验证:管理端导入用户账号后,要求用户在激活账号时上传人脸、身份证、入取通知书等详细信息,验证通过的用户才能访问新苗同学用户端。
  2. 面部识别:采用基于 dlib 库实现了人脸检测、关键点定位、人脸对齐、特征提取等人脸验证技术,对用户的身份进行验证,确保照片与注册时所上传的高考证件照片匹配。
  3. 用户登录:要求用户登录时输入正确的账号密码,确保用户登录安全。
  4. 支持微信绑定:推荐学生将账号和微信端进行绑定,为账号安全提供双重保障。
3.3.1.2 数据安全

为确保用户数据的安全,新苗同学应用实施了以下措施:

  1. 数据加密:所有用户数据与隐私信息(如密码、实名信息等)在传输和存储过程中都采用加密技术,避免信息泄露,确保数据的保密性与完整性。
  2. 数据库定期备份:数据库系统定期进行加密数据的备份,防止数据丢失或泄露;同时采用离线存储和灾难恢复机制,保障数据恢复的能力。
3.3.1.3 验证用户输入
  1. 对用户输入进行严格检查,防止恶意脚本注入和其他安全漏洞的出现。
  2. 采取二维码即时生成、姿势识别等手段,使任务数据、输入数据的真实性得到保障

3.3.2 健壮性

为了提升系统的可用性以及抗风险能力,新苗同学用户端设置如下健壮性保障:

3.3.2.1 平台兼容
  1. 支持多平台使用:用户在任意安卓设备均可使用新苗同学客户端,管理员可以使用任意浏览器登录新苗同学即可使用管理端,应用的平台兼容性强。
  2. 多端互通:用户在各个平台使用的新苗同学的账号和数据互通,可以自由选择需要使用的平台。
3.3.2.2 异常处理
  1. 设计机制:设计完善的异常处理机制,确保新苗同学能够在异常情况下正常运行,并向用户提供适当的错误提示。
  2. 记录日志文件:将所有异常情况都会被记录在日志文件中,以便管理员进行故障排查和问题解决。
  3. 新苗同学客户端返回的每个响应都包含了适当的状态码和错误提示,方便前端展示和用户理解,提高了系统的友好性和易用性。
3.3.2.3 提供稳定服务
  1. 服务端结合部署多种高可用性架构,具有较强的抗风险能力,保证服务的24小时稳定运行。
  2. 当硬件故障或系统崩溃时,系统能够保存用户数据并保证数据不会丢失。
  3. 合理管理内存使用,避免内存泄漏和不必要的内存占用,提高系统性能和稳定性。
3.3.2.4 优化用户体验
  1. 新苗同学界面设计简洁易懂、功能完备,能够覆盖大学生从入学到日常任务的统一管理。
  2. 新苗同学客户端可以通过获取用户反馈了解用户体验,优化系统界面和交互流程,提高用户的满意度和使用体验。
3.3.2.5 代码更新和版本测试覆盖
  1. 新苗同学后端会定期对系统代码进行优化,提高系统性能和稳定性。
  2. 新苗同学在版本发布前会实施全面的测试覆盖,确保系统的各项功能都能正常运行。

3.4 权限设计

在设计权限系统时,我们需要为不同的用户角色分配适当的权限,以确保系统的安全性和数据的完整性。

3.4.1 前台用户权限设计说明

  • 个人信息管理:用户可以查看和更新自己的个人资料,包括昵称、头像、性别、年级、院系等。
  • 任务管理:用户可以查看、订阅并参与任务。用户可以提交任务完成情况,并在任务结束后查看得分和状态。
  • 讨论与互动:用户可以发起、参与讨论,点赞和评论他人的帖子或回复。
  • 养成模块:用户可以种植树苗、浇灌树苗,并查看自己的养成排行榜。
  • 广告浏览:用户可以查看平台内广告,但没有广告管理权限。

3.4.2 后台管理员权限设计说明

  • 用户管理:管理员可以查看、审核用户信息,执行用户账户激活、禁用等操作。
  • 任务管理:管理员可以创建、编辑、发布和删除任务,同时可以审核用户提交的任务完成情况。
  • 讨论监管:管理员负责审核讨论区内容,删除违规的讨论、评论或点赞记录。
  • 广告管理:管理员可以创建、编辑、发布和删除广告,并查看广告的点击率和效果。
  • 数据监控:管理员可以查看平台上用户数据、任务数据和广告数据,并生成相应的统计报告。

3.5 设计思路

3.5.1 需求分析

  1. 明确项目的目标和需求:根据《新苗同学》项目的目标,提供便捷的校园生活服务平台,主要功能包括任务管理、讨论区、养成模块、广告展示等。
  2. 确定项目的范围和功能:项目包括用户端和管理端,用户端主要负责用户的任务参与、个人信息管理和互动;管理端负责平台内容的管理和用户数据的监控。

3.5.2 实体识别

  1. 用户实体:包括学生用户和管理员,学生用户参与任务、讨论和养成,管理员负责系统管理。
  2. 任务实体:任务包含主线任务和支线任务,用户通过完成任务获取奖励。
  3. 讨论实体:用户可以在任务或其他活动下发起讨论,并通过点赞和评论进行互动。
  4. 广告实体:广告向特定用户推送,管理员负责广告的管理和效果评估。

3.5.3 创建E-R图

根据识别出的实体和他们之间的关系,绘制出总体E-R图,描述用户、任务、讨论、广告等之间的联系。

3.5.4 定义类

将E-R图中的实体转换为类,每个类包含相应的属性和方法。用户类包括管理用户信息的操作,任务类包括发布任务、查看任务详情等操作。

3.5.5 确定属性

为每个类定义其需要的属性,例如用户类需要包括用户名、密码、性别、年级、头像等属性,任务类则包含任务名称、任务描述、任务状态等。

3.5.6 定义操作

每个类应定义其对应的操作,如用户类的登录、注册,任务类的任务发布、任务完成状态更新等。

3.5.7 确定关系

实体之间的关系主要包括:

  • 用户与任务:用户可以订阅并完成任务,任务与用户之间存在一对多关系。
  • 用户与讨论:用户可以发起讨论,讨论与用户之间也存在一对多关系。
  • 用户与广告:广告按用户类别推送,用户可以查看广告。

3.5.8 封装和抽象

各个类的实现细节应该封装,通过操作接口暴露必要的功能。抽象类用于定义通用操作,例如任务类中的任务发布和管理操作。

3.5.9 使用UML类图

使用UML类图符号表示类及其属性、操作和关系,确保系统结构的可视化和可理解性。

3.5.10 维护

随着需求的变化和项目的发展,定期更新E-R图和类图以反映最新的系统设计。

4 团队绩效

4.1 工作流程

4.1.1 开会讨论作业内容

首先最开始,我们先把一些需要用到的参考资料和文件搜集好,然后传到群文件去,方便大家查阅,并作会前的一个初步阅读。

image-20241021142411502

接着就是项目的设计和框架建立部分。

image-20241021142542927

然后通过会议,我们详细讨论了本次作业的细节内容,并确定好了各自的分工,并通过飞书文档的形式进行协作。

32da9d9f8d1e4c92ff99c4bc5b4eb7eb

4.1.2 分工划分和确认

我们将本次作业的内容进行罗列,并结合工作量进行合理划分,落实到每一个人头上,确保作业保质保量完成。

image-20241021141937150

4.1.3 定期推进

每个人根据自己的分工完成自己的文档部分。通过飞书文档,我们可以很轻松地追踪版本和进度。每个人的commit一目了然。

image-20241021143619064

image-20241021143423825

image-20241021143327017

然后我们借助qq群做进一步的进度推进和交接工作,以及确保进度汇总和对齐,能够保质保量完成。

image-20241021143141730

4.2 组员分工与贡献度

学号工作内容贡献度
222200314吴荣榜博客,任务分配,接口文档校验,截图,答辩汇报,第四章的管理端系统功能模块部分12.8395%
222200127徐煜晖系统设计说明书第三章,第四章的学生端系统功能模块部分11.5069%
222200307叶宇滟数据库设计说明书一二章,接口文档校验,系统设计说明书检验11.3039%
222200329徐文彬系统设计说明书一二章,接口文档校验,数据库设计说明书检验11.3120%
222200331翁鹏数据库的分析,接口文档校验,系统设计说明书第五章,接口文档编写11.6029%
222200408连文桢数据库设计说明书第三章,ER图设计,用况图设计,实体分析11.7968%
222200407杨知麟数据库设计说明书四五章,数据库设计说明书检验,系统设计说明书检验9.4248%
072203330梁心恬答辩汇报PPT制作,截图,数据库设计说明书检验,系统设计说明书检验10.7837%
222200412陈宇系统设计说明书六七章,数据库设计说明书检验,系统设计说明书检验9.4295%

5 开发计划安排

5.1 预期开发计划时间安排

img

5.2 预期开发计划分工安排

5.2.1 第1周-第2周(alpha冲刺)

模块任务内容负责人员具体说明
学生端账号激活、绑定微信、修改账号信息、任务引导、养成系统、排行榜徐煜晖(222200127)Android学生端的开发,完成基础功能模块实现
管理端批量导入学生信息、注册信息统计、创建主线和支线任务、推送任务、查看个人任务完成情况吴荣榜(222200314)管理端Web开发,确保各功能模块正常运作
后端 - 任务模块任务的创建、查询、完成状态更新等API开发翁鹏(222200331)负责任务相关API及后端功能开发
后端 - 推送模块任务的自动推送和管理端推送功能开发连文桢(222200408)实现推送相关的后端开发及接口实现
后端 - 用户管理模块用户管理模块后端开发,学生信息批量导入、用户数据增删改查API徐文彬(222200329)开发用户管理功能的后端逻辑及API接口
AI模块姿势识别、物品识别、AI集成与测试叶宇滟(222200307)负责AI模块的模型训练与集成,并进行测试
测试与文档协助测试Android和Web端功能,编写文档杨知麟(222200407)协助前端测试并完成相关文档
测试与文档测试与文档编写,重点测试学生端和管理端陈宇(222200412)参与系统的测试和文档编写工作
UI设计与产品负责UI设计与优化,确保前端界面一致性梁心恬(072203330)完成UI设计,优化用户界面,并负责PPT制作与总结

5.2.2 第3周-第4周(beta冲刺)

模块任务内容负责人员具体说明
学生端投放问卷、查看广告、查看校历、校园地图、教务处通知、奖励兑现徐煜晖(222200127)新增功能的Android端开发,完成相关模块集成
管理端自动审核任务推送、任务统计、广告投放吴荣榜(222200314)开发管理端新功能,完成任务审核与广告管理模块开发
后端 - 广告模块实现广告投放及广告点击数据处理翁鹏(222200331)负责广告投放与用户行为数据处理的后端开发
后端 - 任务自动审核与统计模块任务自动审核和统计功能的后端开发连文桢(222200408)开发任务审核自动化和统计功能,确保系统的后台处理逻辑
后端 - 广告推送模块广告投放模块后端开发,整合广告推送功能徐文彬(222200329)实现广告投放和推送相关的后端逻辑及API
AI模块完善姿势识别和物品识别功能,集成到任务系统叶宇滟(222200307)完善AI模块,优化识别算法并集成到任务系统中
测试与文档全面测试所有模块,并完成开发文档整理杨知麟(222200407)完成测试和文档编写工作,确保系统稳定
测试与文档全面测试系统,确保项目稳定性陈宇(222200412)参与系统测试,确保各功能模块无Bug
UI设计与产品完成UI优化,确保新功能UI设计与用户体验梁心恬(072203330)完成UI优化,确保新功能的设计一致性,并完成PPT和项目总结
...全文
1131 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Phoshowy 2024-10-22
  • 打赏
  • 举报
回复

好多好多好多内容哇

113

社区成员

发帖
与我相关
我的任务
社区描述
202401_CS_SE_FZU
软件工程 高校
社区管理员
  • FZU_SE_TeacherL
  • 助教_林日臻
  • 防震水泥
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧