图片兴趣社区平台-需求分析

LsUna1 2021-12-27 16:03:54

 

1.需求分析

1.1概述

随着互联网的高速发展,人们特别是青年人对于社交的需求日益增加。针对这种需求,设计并实现一个网页版的图片兴趣社区,主要面向用户为年轻人,旨在为年轻人提供一个图片社交的途径,以此认识世界,结交朋友。用户可以使用滤镜修饰图片,对图片打标签,添加文字说明之后发布到社区,分享自己的生活;并能在社区中通过标签或名称发现各种图片与用户,通过图片进行交流,结识到有共同兴趣爱好的朋友。

1.2.用例分析

 

1.3.功能模块分析

通过对项目的用例分析,可以将整个项目分为5个功能模块

固定导航栏

 

  1. 实现返回主页功能

  1. 实现搜索功能:1搜索某个特定的用户 2搜索某个tag的图片#开头

  1. 实现各种页面跳转功能:例如跳转到收藏夹。

用户账号登录注册模块

1.实现用户使用账号登录功能

2.实现用户注册新账号功能

3.实现用户修改账号功能

4.实现用户找回遗忘账号功能

首页模块

1.实现搜索他人帖子功能

2.实现浏览他人帖子功能

个人主页模块

1.展示自己的个人相关信息

2.修改自己的个人相关信息

3.展示自己收藏的相关帖子图片

图片推送模块

1.实现展示帖子的详细相关信息(包括图片,点赞数,评论)

2.实现用户对帖子进行点赞的功能

3.实现用户对帖子进行评论的功能

2.软件设计

2.1.架构风格

整个项目使用MVC架构从而实现前后端分离

2.2前端技术选型

  • 脚手架: create-react-app
  • 组件库: Ant-design
  • 网络通讯:axios

2.2.部分页面设计(主要是自己负责部分)

2.2.1主页

组件设计:

1.主页组件

主页组件由选项卡与贴子预览组件组成。

选项卡用于选择主页浏览的模式,暂定为有关注的人与推荐两种模式。打开主页后,向server请求贴子预览的数据,并用于来渲染贴子预览组件。

2.贴子预览组件

贴子组件由上半部分贴子相关信息及操作的组件与下半部分图片组件构成。

贴子组件在渲染时,会向server请求与贴子相关地数据,并将贴子的id号(用于进一步检索贴子详细数据的索引)存入组件的state中。

其中上半部分组件左边的用户头像用户点击可以进入发布贴子的用户的个人主页,右边的选项是与贴子相关的交互操作,包括举报,收藏。这些都会将贴子的id号与操作码一起发送给server端。

下半部分组件用于展示贴子的预览信息。用户如果点击图片,会打开贴子的页面,并将贴子的id号传入到这个贴子页面中,用于帮助这个贴子页面从server获取数据。

2.3.数据库设计

1.用户登录信息表

user_register(用户登录信息)    
属性PK/FK类型备注约束
u_idPKint用户idNOT NULL
username varchar()账号名NOT NULL
password varchar()密码NOT NULL
telephone varchar(11)手机号码NOT NULL
email varchar()电子邮箱 

2.用户详细信息表

user_details(用户详细信息)    
属性PK/FK类型备注约束
u_idPK,FKint用户idNOT NULL
nickname varchar()昵称NOT NULL
sex int(1)性别NOT NULL
register_date datetime注册时间NOT NULL
update_date datetime修改时间NOT NULL
birthday datetime生日 
location varchar()地区 
signature varchar()个性签名 
profile_url varchar()用户头像urlNOT NULL

3.用户相关信息表

user_relatedData(用户相关信息)    
属性PK/FK类型备注约束
u_idPK,FKint用户idNOT NULL
followers_number int关注其他人的数量NOT NULL
fans_number int粉丝数量NOT NULL
posts_number int帖子数量NOT NULL
collection_number int收藏帖子的数量NOT NULL
forward_number int转发帖子的数量NOT NULL
profile_url varchar()用户头像urlNOT NULL

4.关注信息表

follow(关注信息)    
属性PK/FK类型备注约束
u_idPK,FKint用户idNOT NULL
follow_idFKint关注者NOT NULL
state int(2)状态NOT NULL
update_time datetime修改时间NOT NULL

5.帖子信息表

post(帖子信息)    
属性PK/FK类型备注约束
post_idPKint帖子idNOT NULL
publisher_idFKint发布者idNOT NULL
photo_number int图片数量NOT NULL
content varchar(500)内容 
comment_number int评论数量NOT NULL
forward_number int被转发数NOT NULL
like_number int点赞数量NOT NULL
collection_number int收藏数量NOT NULL
publish_time datetime发布时间NOT NULL
photo_path_url varchar()图片路径NOT NULL
location varchar()定位NOT NULL

6.图片信息表

photo(图片信息)    
属性PK/FK类型备注约束
photo_idPK,FKint图片idNOT NULL
url varchar()图片urlNOT NULL

7.点赞信息表

like(点赞信息)    
属性PK/FK类型备注约束
post_idPK,FKint被点赞帖子idNOT NULL
u_idPK,FKint点赞者NOT NULL
state int(1)状态NOT NULL
update_time datetime修改时间NOT NULL

8.转发信息表

forward(转发信息)    
属性PK/FK类型备注约束
forward_idPKint转发号NOT NULL
post_idFKint转发的帖子的idNOT NULL
u_idFKint转发人idNOT NULL
state int(1)状态NOT NULL
update_time datetime修改时间NOT NULL
comment_number int评论数NOT NULL
like_number int点赞数NOT NULL
extra_content varchar(500)转发的心情 

9.评论信息表

comment(评论信息)    
属性PK/FK类型备注约束
comment_idPKint评论idNOT NULL
post_idFKint帖子idNOT NULL
u_idFKint评论者idNOT NULL
parent_id int父亲结点评论id 
child_number int孩子结点数量NOT NULL
content varchar()评论内容NOT NULL
create_time datetime创建时间NOT NULL

10.同步库

feeds(同步库)    
属性PK/FK类型备注约束
u_idPK,FKint消息接收者idNOT NULL
post_idPK,FKint接收的帖子idNOT NULL
send_idFKint发送者idNOT NULL
publish_timeFKdatetime发布时间NOT NULL
post_type int(2)发送/转发NOT NULL

11.收藏夹表

collection(收藏夹)    
属性PK/FK类型备注约束
collection_idPKint收藏夹idNOT NULL
u_idFKint用户idNOT NULL
collection_name varchar()收藏夹名称NOT NULL
posts_id varchar()所有帖子id 

 

作者:305

...全文
109 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

571

社区成员

发帖
与我相关
我的任务
社区描述
软件工程教学新范式,强化专项技能训练+基于项目的学习PBL。Git仓库:https://gitee.com/mengning997/se
软件工程 高校
社区管理员
  • 码农孟宁
加入社区
  • 近7日
  • 近30日
  • 至今

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