冬天的冰淇淋不会化——项目系统设计与数据库设计
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2020 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2020/homework/11447 |
团队名称 | 冬天的冰淇淋不会化 |
这个作业的目标 | 将项目设计落地,完善设计类图,设计好系统和数据库、制定好计划和分工 |
团队项目的预期开发计划时间安排
周数 | 日期 | 任务 | 成果 |
---|---|---|---|
10 | 11.02-11.08 | 数据库设计、系统架构设计学习、微信小程序的开发 | 数据库系统说明书、系统设计说明书 |
11 | 11.09-11.15 | 细化接口文档、搭建项目基础架构、实现基础功能(例如登录注册) | 接口文档、具备基本功能的软件 |
12 | 11.16-11.22 | 填充项目功能、进行集成测试 | 测试报告、实现主要功能的软件 |
13 | 11.23-11.29 | 实现非主要功能、邀请同学进行测试 | 用户使用反馈、软件的最终版本 |
团队项目的预期开发计划分工安排
学号 | 预计内容 |
---|---|
031802219 | 后端:基础架构设计 |
031802214 | 前端:业务逻辑编写 |
031802223 | 后端:算法模块 |
031802225 | 产品:迭代需求,优化原型 |
031802233 | 前端:UI设计,界面编写 |
031802235 | 前端:UI设计,界面编写 |
051803216 | 产品:迭代需求,用户体验收集 |
181800404 | 测试,后端测试,集成测试 |
031802607 | 测试,前端测试,集成测试 |
031802439 | 后端:分享帖模块 |
031802644 | 前端:业务逻辑编写 |
体系结构设计图
功能模块层次图
设计类图
ER分析
表结构设计
用户表,用于存储用于登录所需要的相关信息
角色表,RBAC 权限模型中的角色,用于鉴权
用户-角色关联表,用于标识用户具有的角色
用户信息表,用于存储用户的个人资料和信息
关注表,用于存储用户的关注列表
通知表,用于存储系统对用户下发的通知
分享帖表,用于存储分享帖的信息
评论表,用于存储用户对分享帖的评论
私信表,用于存储用户之间的私信
偏好表,存储用户偏好以用于推荐
表格详见系统设计说明书
系统安全和权限设计
-
后端启用https加密连接,保证数据在传输过程中的安全性
-
登录校验采用 jwt的形式,有效避免csrf攻击
-
前端和后端对数据进行双重校验,保证数据的合法性
-
后端操作数据库使用预编译SQL语句,防止SQL注入攻击
-
权限模型采用简化版的 RBAC 权限管理模型,设计简单,易于扩展,每名用户拥有角色,用户和角色之间为多对多,目前角色暂时分为登录用户和管理员两类。
设计思路
-
首先是后端的架构设计。因为团队后端人员对 Java 更为熟悉,所以后端采用 Java进行开发。后端每个模块的都分为三层,Controller,Service,Mapper,这样的三层架构利于扩展和解耦,是目前的主流设计之一。此外,考虑到项目的性能问题,因此使用了Redis作为缓存,提高服务器的并发量。因为项目需要调用外部的接口,而这些接口的返回值并不需要及时返回给用户,所以对于外部接口的调用,采用了RabbitMq作为消息中间件,将消息传递给专门的调用模块进行调用。
-
数据库的设计采用无外键的形式,因为外键会在一定程度上影响性能(例如在更新时需要扫描外键对应的表并锁定),不使用外键,而依靠程序员在业务层处理数据的一致性可以提高性能。此外,对于分享帖和评论引入了逻辑删除这一字段,这也是目前比较主流的一种做法,因为这样更有利于对数据的分析。
-
在安全和权限设计部分,使用了较为常见的jwt进行登录的校验,因为jwt的无状态性,可以减小服务器的负载,权限管理则使用了RBAC权限模型,这也是目前最主流的一种权限管理模型。
问题回复
如何确保用户分享好物的动力:
1.获得高点赞数的用户可以收到由系统送出的小礼品。
2.用户分享好物得到赞赏的时候,积累点赞数可以兑换奖品。
3.在运营成熟后,可以与部分专门针对学生党的品牌供应商达成合作关系,高点赞数用户将会成为校园大使,校园大使可以与供应商达成合作,对供应商产品进行推销,而校园大使相应也会获得供应商提供的赞助。
可行性不大,无法确保用户基数:
1.初始时可通过新生班导、院团委学生会以及在学校和学校的各个社团进行宣传。
2.可通过品牌商的赞助支持社团活动,从而举办一场关于生活的活动,参与活动的可以获得综测或者奖品的奖励。
3.可以与一些生活有关的活动、团立项等进行合作,我们的好物分享平台,不仅仅分好物,也会分享使用好物的经验。
4.在平台为用户提供良好的互动环境,建立起用户对平台的黏性。
没有很吸引用户,基础用户群体较大;用户是否愿意分享,分享的积极性:
1.通过问卷调查,我们了解到,若能够为用户间提供良好的互动功能,用户是乐意于存在一个平台去分享他们的购物经历。
2.平台本身是为大学生们提供一个互帮互助的地方,许多用户其实都有着分享的欲望,特别是购物经历在极好或极差的时候。
售后问题,如何防止恶意广告:
1.强调我们只是分享平台,不是电商平台,所以并不会存在售后问题。
2.除了点赞功能,我们还设有踩雷标签,如果分享的好物踩雷标签过多,我们会认为其为恶意广告,当分享过多踩雷好物时候,我们会对用户进行处罚!
3.用户若发现他人分享帖内容不实,可以向平台举报,平台会进行二次审核,并做出处理。
不愿意在熟悉的人面前分享:
我们在注册的时候会要求学生填写相关学号真实姓名的信息,以确保是本校学生,
但是在用户界面并不会展示这些信息,只要稍加注意,并不会被熟悉的人认出。
如何和小红书等类似的产品竞争:
现在市面上同类的产品更多的是面向于社会大众,无法为校园内的学生群体提供更具体、更适宜的推荐内容,而我们也正是从学生群体出发,致力于学生群体间的沟通与互助,为校园生活提供便利。
需求分析的改进
在本次现场展示中,我们项目暴露出来的问题是,在运营前期,由于缺少用户基数,平台内容缺乏,无法对新用户产生足够的吸引力。所以需要在运营前期提供一个有效的方法,获取足够数量的基础用户群体,并且需要用户分享一定数量的分享帖用来吸引后续用户。
在前期宣传方面,我们做出了详细的推广方案,来吸引第一批用户的加入:
1.通过海报+二维码模式,在食堂和宿舍楼门口张贴海报进行宣传,吸引同学们注意力。特别是在新生开学季和大型购物日,可以加大宣传的力度。
2.通过向学院或学校介绍我们的产品,获得在微信上发送推文的机会,介绍我们的产品,并在推文中附上app链接。
3.公众号与小程序结合:由于小程序即用即走的特点,所以小程序无法维持与用户的高粘性,所以容易造成用户流失,不过可以将公众号与小程序进行结合。通过公众号绑定小程序,底部菜单设置 微信小程序 入口,文章插入小程序卡片等方式可以达到锁住用户的目的。
4.发动身边同学的力量,通过群或朋友圈分享,介绍我们的小程序,并进行推广。
5.在小程序中加入邀请有礼选项,通过分享小程序,能够获得一定奖励,并且在好物帖上添加分享选项,用户可以将小程序连接分享给同学、朋友。
由于我们团队队员同时有担任学院社团的相关职位,以及班导等角色,在初期的宣传方面有一定的优势,能够做出较为有效的推广,这也是我们团队的一大优势之一。
工作流程
首先我们根据需求文档和原型对数据库进行了建模,确定了数据库的表结构,之后,我们分析了所需要的接口,并对系统的架构进行了分层设计,最终整合出《系统设计说明书》和《数据库设计说明书》两份文档。
组员分工与贡献度比例
学号 | 工作内容 | 贡献分 |
---|---|---|
031802219 | 数据库设计,E-R图绘制 | 5.20 |
031802214 | 系统设计说明书制作 | 4.95 |
031802223 | 数据库设计,E-R图绘制 | 5.17 |
031802225 | 数据库设计,改进需求 | 5.07 |
031802233 | 系统设计说明书制作 | 4.95 |
031802235 | 系统设计说明书制作 | 4.95 |
051803216 | 改进需求 | 5.01 |
181800404 | 功能模块设计 | 4.95 |
031802607 | 博客撰写 | 4.90 |
031802439 | 功能模块设计 | 4.95 |
031802644 | ppt制作 | 4.90 |
github团队仓库链接和文档的下载链接或在线预览链接
https://github.com/forestlinji/winter-icecream
文档下载链接:https://pan.baidu.com/s/1SZGggxIE7Y1pO0hwzrXPyQ 提取码:2333