113
社区成员
发帖
与我相关
我的任务
分享| 这个作业属于哪个课程 | https://bbs.csdn.net/forums/2401_CS_SE_FZU |
|---|---|
| 这个作业要求在哪里 | https://bbs.csdn.net/topics/619366803 |
| 这个作业的目标 | 系统设计、数据库设计、安全和权限设计 |
| 其他参考文献 | 无 |
120页,24666个字
34页,8534个字
《新苗同学》的系统架构采用模块化设计,保证系统的可维护性、可扩展性和灵活性。系统由以下几个主要模块组成:
具体结构如下:

后端采用Spring Boot框架进行开发,提供快速、高效的服务。主要组成部分包括:
这种架构设计使得后端系统可以高效可靠地实现大规模用户的访问支持。
具体结构如下:

客户端采用MVVM(模型-视图-视图模型)架构,负责用户交互和界面展示。主要组件包括:
这种设计兼顾了客户端在数据获取和用户界面更新上的灵活性。
具体结构如下:

管理端使用Vue.js构建用户界面,采用组件化设计,便于代码重用和维护。主要特性包括:
此设计实现了管理端应用的高性能和良好的用户体验。
具体结构如下:

系统使用MySQL作为主要数据库,负责持久化存储用户数据和应用状态。同时,利用Redis作为缓存,提高数据访问的效率。
客户端的实现基于MVVM架构,确保界面与业务逻辑的分离。关键技术包括:
前端采用Vue 3作为主要框架,结合以下技术:
后端技术架构基于Spring Boot,集成了以下组件:

学生端主要划分为 4 个模块: 用户信息管理模块、任务管理模块、养成管理模块、附加功能模块。
主要的划分依据及步骤如下:

用户信息管理细化为登录、查看个人信息、个人信息维护、查看积分排行榜。
个人信息维护再次细化为激活账号、修改密码、修改头像。

任务管理细化为个人任务列表、活动任务大厅、查看任务详情、参与任务、任务通知管理、任务评论管理。
个人任务列表再次细化为查看主线任务列表、查看支线任务列表、查看已完成任务列表。
活动任务大厅再次细化为查看可订阅支线任务、订阅支线任务。
任务通知管理再次细化为订阅任务通知、任务点范围接收通知。
任务评论管理再次细化为查看任务评论列表、创建评论、点赞评论、取消点赞评论。

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


管理端主要划分为 4 个模块: 统计查询模块、任务管理模块、广告管理模块、学生管理模块。
主要的划分依据及步骤如下:

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

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

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

广告管理细化为广告统计、发布广告、查看已发布广告模块。
广告实体(ID,广告类型,文本内容,图片内容,跳转链接,关键字,关键字个数,优先级,推送位置,推送方式,广告目标年级范围,广告目标性别,广告目标学院,广告开始时间,广告结束时间,广告费用,被点击的次数,被推送的次数,创建时间,修改时间,删除标识)
属性约束:广告类型 => (1:文本,2:图片,3:视频,4:文本图片,5:文本视频)
属性约束:跳转链接 => (-1:无)
属性约束:推送方式 => (1:app内展示,2:消息推送,3:全部)
属性约束:广告目标性别 => (0:女,1:男,2:全部)

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

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

讨论记录实体(ID,用户ID,用户名,真实姓名,头像URL,父评论ID,讨论对象ID,讨论对象类型,讨论类型,讨论文字内容,讨论图片内容,点赞数,被回复评论数,热度,最新评论时间,创建时间,修改时间,删除标识)
属性约束:父评论ID => (-1: 无父评论)
属性约束:讨论对象类型 => (1:任务,2:校园圈动态)
属性约束:讨论类型 => (1:任务讨论,2:校园圈的动态,3:任务讨论的评论,4:校园圈的动态的评论,5:任务讨论的评论的评论,6:校园圈的动态的评论的评论)
属性约束:删除标识 => (0:未删除,1:已删除)

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

院系实体(ID,院系名,删除标识)
属性约束:删除标识 => (0:未删除,1:已删除)

专业实体(ID,专业名,院系ID,删除标识)
属性约束:删除标识 => (0:未删除,1:已删除)

通知实体(ID,用户ID,任务ID,订阅任务通知时间,是否完成通知,消息ID,创建时间,修改时间,删除标识)
属性约束:删除标识 => (0:未删除,1:已删除)

消息记录实体(ID,标题,内容,接收者ID,是否已读,消息类型,消息来源ID,消息来源类型,创建时间,修改时间,删除标识)
属性约束:
是否已读 => (0:未读,1:已读)
消息类型 => (0:消息,1:代办)
删除标识 => (0:未删除,1:已删除)

任务实体(ID,父任务ID,是否是主线任务,子任务个数,任务名称,任务描述,任务类型,任务图片信息,任务奖励,任务积分,任务范围,任务难易程度,任务优先级,任务对象的年级,任务对象的院系ID,任务对象的专业ID,是否需要照片打卡,是否人工审核,动作姿势识别,物品识别,任务要求类型,摄像头ID,任务是否开始,任务开始时间,任务结束时间,创建时间,修改时间,删除标识)
属性约束:
是否是主线任务 => (0:支线,1:主线)
任务类型 => (0:开学前,1:注册时,2:开学后)
是否需要照片打卡 => (0:否,1:物品,2:人像,3:动作,4:其他)
是否人工审核 => (0:否,1:是)
任务是否开始 => (0:未开始,1:开始,2:结束)
删除标识 => (0:未删除,1:已删除)

任务提交实体(ID,用户ID,任务ID,父任务ID,图片路径,定位信息,提交时间,提交备注,审核状态,审核人ID,审核建议,任务完成分数,创建时间,修改时间,删除标识)
属性约束:
审核状态 => (0:待审核,1:审核通过,2:审核不通过)
删除标识 => (0:未删除,1:已删除)

养成实体(ID,用户ID,小树苗,中树苗,大树苗,水滴,杂草,铲子,树苗位置,已种植的小树苗数,大树苗收获数,创建时间,修改时间,删除标识)
属性约束:
树苗位置 => sapling_position 字段解释位置ID与浇灌水滴数的关系:-1表示无树苗,浇灌水滴数大于等于5小于15表示中树苗
删除标识 => (0:未删除,1:已删除)

管理员实体(ID,用户名,密码,创建时间,修改时间,删除标识)
属性约束:
删除标识 => (0:未删除,1:已删除)

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

用户任务统计实体(ID,用户ID,任务ID,父任务ID,任务名称,是否是主线任务,任务积分,任务奖励,任务优先级,任务开始时间,任务结束时间,任务类型,任务完成时间,任务完成分数,任务完成情况,子任务完成数,创建时间,修改时间,删除标识)
属性约束:
删除标识 => (0:未删除,1:已删除)
是否是主线任务 => (0:否,1:是)
任务类型 => (0:开学前,1:注册时,2:开学后)
任务完成情况 => (0:未完成,1:待审核,2:已完成,3:失败)
子任务完成数 => (-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,证件类型,证件号,手机号,积分,注册时的经度,注册时的纬度,微信授权用户唯一标识,微信账号用户昵称,微信用户头像,创建时间,修改时间,删除标识) |
















用户信息管理子用况:

任务管理子用况:

养成管理子用况:

使用附加功能子用况:


学生管理子用况:

任务管理子用况:

广告管理子用况 :


为了保证用户使用应用时的系统安全,新苗同学用户端设置如下安全性保障:
为基础安全提供保障,新苗同学采取以下用户验证措施:
为确保用户数据的安全,新苗同学应用实施了以下措施:
为了提升系统的可用性以及抗风险能力,新苗同学用户端设置如下健壮性保障:
在设计权限系统时,我们需要为不同的用户角色分配适当的权限,以确保系统的安全性和数据的完整性。
根据识别出的实体和他们之间的关系,绘制出总体E-R图,描述用户、任务、讨论、广告等之间的联系。
将E-R图中的实体转换为类,每个类包含相应的属性和方法。用户类包括管理用户信息的操作,任务类包括发布任务、查看任务详情等操作。
为每个类定义其需要的属性,例如用户类需要包括用户名、密码、性别、年级、头像等属性,任务类则包含任务名称、任务描述、任务状态等。
每个类应定义其对应的操作,如用户类的登录、注册,任务类的任务发布、任务完成状态更新等。
实体之间的关系主要包括:
各个类的实现细节应该封装,通过操作接口暴露必要的功能。抽象类用于定义通用操作,例如任务类中的任务发布和管理操作。
使用UML类图符号表示类及其属性、操作和关系,确保系统结构的可视化和可理解性。
随着需求的变化和项目的发展,定期更新E-R图和类图以反映最新的系统设计。
首先最开始,我们先把一些需要用到的参考资料和文件搜集好,然后传到群文件去,方便大家查阅,并作会前的一个初步阅读。

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

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

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

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



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

| 学号 | 工作内容 | 贡献度 |
|---|---|---|
| 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% |
| 模块 | 任务内容 | 负责人员 | 具体说明 |
|---|---|---|---|
| 学生端 | 账号激活、绑定微信、修改账号信息、任务引导、养成系统、排行榜 | 徐煜晖(222200127) | Android学生端的开发,完成基础功能模块实现 |
| 管理端 | 批量导入学生信息、注册信息统计、创建主线和支线任务、推送任务、查看个人任务完成情况 | 吴荣榜(222200314) | 管理端Web开发,确保各功能模块正常运作 |
| 后端 - 任务模块 | 任务的创建、查询、完成状态更新等API开发 | 翁鹏(222200331) | 负责任务相关API及后端功能开发 |
| 后端 - 推送模块 | 任务的自动推送和管理端推送功能开发 | 连文桢(222200408) | 实现推送相关的后端开发及接口实现 |
| 后端 - 用户管理模块 | 用户管理模块后端开发,学生信息批量导入、用户数据增删改查API | 徐文彬(222200329) | 开发用户管理功能的后端逻辑及API接口 |
| AI模块 | 姿势识别、物品识别、AI集成与测试 | 叶宇滟(222200307) | 负责AI模块的模型训练与集成,并进行测试 |
| 测试与文档 | 协助测试Android和Web端功能,编写文档 | 杨知麟(222200407) | 协助前端测试并完成相关文档 |
| 测试与文档 | 测试与文档编写,重点测试学生端和管理端 | 陈宇(222200412) | 参与系统的测试和文档编写工作 |
| UI设计与产品 | 负责UI设计与优化,确保前端界面一致性 | 梁心恬(072203330) | 完成UI设计,优化用户界面,并负责PPT制作与总结 |
| 模块 | 任务内容 | 负责人员 | 具体说明 |
|---|---|---|---|
| 学生端 | 投放问卷、查看广告、查看校历、校园地图、教务处通知、奖励兑现 | 徐煜晖(222200127) | 新增功能的Android端开发,完成相关模块集成 |
| 管理端 | 自动审核任务推送、任务统计、广告投放 | 吴荣榜(222200314) | 开发管理端新功能,完成任务审核与广告管理模块开发 |
| 后端 - 广告模块 | 实现广告投放及广告点击数据处理 | 翁鹏(222200331) | 负责广告投放与用户行为数据处理的后端开发 |
| 后端 - 任务自动审核与统计模块 | 任务自动审核和统计功能的后端开发 | 连文桢(222200408) | 开发任务审核自动化和统计功能,确保系统的后台处理逻辑 |
| 后端 - 广告推送模块 | 广告投放模块后端开发,整合广告推送功能 | 徐文彬(222200329) | 实现广告投放和推送相关的后端逻辑及API |
| AI模块 | 完善姿势识别和物品识别功能,集成到任务系统 | 叶宇滟(222200307) | 完善AI模块,优化识别算法并集成到任务系统中 |
| 测试与文档 | 全面测试所有模块,并完成开发文档整理 | 杨知麟(222200407) | 完成测试和文档编写工作,确保系统稳定 |
| 测试与文档 | 全面测试系统,确保项目稳定性 | 陈宇(222200412) | 参与系统测试,确保各功能模块无Bug |
| UI设计与产品 | 完成UI优化,确保新功能UI设计与用户体验 | 梁心恬(072203330) | 完成UI优化,确保新功能的设计一致性,并完成PPT和项目总结 |
好多好多好多内容哇