魔幻现实处理加工队——项目系统设计与数据库设计

魔幻现实处理加工队 2024-04-23 23:07:09
这个作业属于哪个课程软件工程实践-2023学年-W班
这个作业要求在哪里团队作业 概要设计和数据库设计
这个作业的目标设计好系统和数据库、制定好计划和分工
其他参考文献构建之法(第三版)

目录

  • 一、链接
  • 二、系统和数据库设计
  • 1.体系结构设计
  • 2.功能模块层次图
  • 3.ER分析
  • 4.数据库表设计
  • 三、类图、系统安全和权限设计
  • 1.类图
  • 2.系统安全
  • 3.权限设计
  • 四、改进分析
  • 1.类似知乎这样的多级评论能不能做到?
  • 2.重难点问题体现
  • 3.大家来评理在哪里体现?
  • 4.首页占位符过多的问题
  • 5.功能需要有类图支持
  • 6.现在想好要做什么核心功能?
  • 五、团队绩效
  • 六、开发计划安排

一、链接

gitcode仓库系统设计说明书数据库设计说明书答辩PPT

二、系统和数据库设计

1.体系结构设计

1.系统架构

系统采用典型的前后端分离架构,前端使用React框架实现,提供用户友好的交互界面;后端使用Node.js和Express.js框架实现,处理业务逻辑和数据交互;数据库采用MySQL存储用户信息、文章内容等数据。

2.主要功能

系统主要功能包括:

  • 用户注册和登录:用户可以注册新账户并登录系统。
  • 编辑个人信息:用户可以编辑个人资料,包括性别、生日、邮箱、头像和个人描述等。
  • 发布文章和评论:用户可以发布文章,并对其他用户的文章进行评论。
  • 点赞功能:用户可以对文章、评论和其他用户进行点赞。
  • 获取文章详情和列表:用户可以查看文章的详细信息,并根据标签分类或关键字搜索获取文章列表。
  • 获取好友列表:用户可以查看自己的好友列表。

3.总体原则

系统设计遵循以下总体原则:

  • 用户友好性:界面设计简洁明了,操作流畅,提供良好的用户体验。
  • 数据安全性:采用JWT进行用户认证和授权,保护用户数据的安全性。
  • 性能优化:采用缓存技术、负载均衡等手段进行性能优化,提高系统响应速度和并发处理能力。
  • 可扩展性:采用前后端分离架构,容易扩展和维护,支持移动端部署。

2.功能模块层次图

img

3.ER分析

1.接口设计

系统对外提供了一系列接口,包括用户注册、登录、发布文章、评论等功能。这些接口通过SQL语句实现对数据库的操作,保证数据的一致性和完整性。

2.数据模型设计

数据库采用关系型数据库MySQL,通过实体-关系模型设计数据库表结构,包括用户表、文章表、评论表、点赞表和好友表等,保证数据之间的关联性和有效性。

img

4.数据库表设计

  • 用户表(User):存储用户信息,如用户名、密码等。
  • 文章表(Post):存储用户发布的文章信息。
  • 文章点赞表(PostLike):存储用户对文章的点赞信息。
  • 评论表(Comment):存储用户对文章的评论信息。
  • 评论点赞表(CommentLike):存储用户对评论的点赞信息。
  • 好友表(Friendship):存储用户之间的好友关系信息。

在设计这些表时,需要注意以下几点:

 1.所有的外键都应该有对应的索引以优化查询性能。
 2.对于可能经常进行查询的字段,比如用户名、文章标题等,也应该添加索引。
 3.考虑到数据的一致性和完整性,应该在相关的字段上设置适当的约束,例如非空约束、唯一约束和外键约束。
 4.为了保护用户隐私,密码应该经过加密处理后再存储。
 5.考虑到系统的可扩展性和维护性,在设计之初就应该预留一定的空间以适应未来可能的需求变化。
这样的设计可以有效地组织和管理用户、文章、评论以及好友关系等信息,并支持对这些数据的增删改查操作,同时保持数据的一致性和完整性。

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

1.类图

img

2.系统安全

系统的安全设计主要包括用户认证、数据传输和数据存储方面的安全措施:

1.用户认证

  • 用户注册和登录:用户在注册和登录时需要提供用户名和密码,密码采用加密存储,并使用HTTPS协议传输,防止密码被窃取。
  • JWT认证:用户登录后,服务端颁发JWT令牌,客户端保存在本地,并在每次请求时通过HTTP头部发送JWT令牌进行认证,有效防止CSRF攻击。

2.数据传输

  • HTTPS协议:所有数据传输均采用HTTPS协议加密传输,保证数据在传输过程中的安全性。
  • 输入验证:对用户输入进行有效性验证,防止SQL注入和XSS攻击。

3.数据存储

  • 数据库安全:数据库采用MySQL进行数据存储,对敏感数据如用户密码进行加密存储,避免明文存储。
  • 数据备份:定期对数据库进行备份,以防止数据丢失或遭受攻击后能够及时恢复。

3.权限设计

  • 身份验证:用户在访问需要权限的资源时,需要进行身份验证,未认证用户无法访问。
  • 权限管理:根据用户角色和权限,控制用户对资源的访问权限,确保数据安全。

四、改进分析

1.类似知乎这样的多级评论能不能做到?

答:确实,像知乎这样的平台提供了多级评论功能,允许用户对已有评论进行回复,从而形成了一个树状的讨论结构。这种设计有其优点,比如能够更清晰地展示讨论的脉络,让用户之间的对话更加有序。然而,正如您所提到的,这种功能也可能带来一些挑战和问题。

首先,多级评论可能会导致评论区的混乱。随着讨论的深入,评论层级可能会变得非常复杂,使得用户难以追踪和理解整个讨论的流程。特别是对于新用户或不经常参与讨论的用户来说,他们可能很难找到自己想要的信息或参与到讨论中。

其次,多级评论可能导致信息的堆积。在热门话题下,可能会有大量的评论和回复,这不仅会占用大量的存储空间,还可能导致服务器负载过重,影响网站的性能和用户体验。此外,过多的信息也可能使用户感到压力,导致他们不愿意花时间阅读所有的评论和回复。

所以我们暂时没有考虑做这个功能。


2.重难点问题体现

答:在项目的实施过程中,我们遇到了几个主要的难点和挑战。首先是各个功能之间的联动问题。我们的平台包含多个模块和功能,如发帖、评论、点赞等,这些功能之间需要进行有效的协同工作,以确保用户的体验流畅且一致。例如,当一个用户发布了一篇新帖子后,我们需要确保该帖子能够被正确地显示在首页和其他相关页面上,同时触发通知机制,告知关注该用户的其他用户。这需要我们在后端实现复杂的逻辑和数据处理,同时也需要在前端进行精细的界面设计和交互优化。

第二个难点是帖子的审核机制。为了确保平台的内容质量和安全,我们需要对用户发布的帖子进行实时的审核。这不仅涉及到文本内容的过滤和分析,还需要考虑到图片、视频等媒体的审查。我们采用了先进的算法和技术,如自然语言处理和图像识别,来自动检测和处理违规内容。然而,由于语言的多样性和复杂性,以及不断变化的网络环境,这一过程仍然充满挑战。

第三个难点是用户管理。作为一个社交平台,我们需要处理大量的用户数据和隐私信息。如何安全地存储和管理这些信息,防止数据泄露和滥用,是我们面临的一个重要问题。此外,我们还需要对用户的行为进行监控和管理,以防止恶意行为和滥用行为的发生。这需要我们建立一套完善的用户管理机制,包括注册验证、权限控制、举报处理等。


3.大家来评理在哪里体现?

答:大众审评功能是一种创新的社区互动方式,它让社区成员直接参与到内容审核的过程中,通过投票的方式来决定某个帖子是否符合社区的主调和大众的审美。这种方式不仅能够提高社区成员的参与感和归属感,还能够有效地筛选出高质量的内容,提升整个社区的品味和价值。

在大众审评界面,用户不仅可以投票,还可以针对待审的帖子发表自己的看法和建议。这种开放式的评论机制鼓励了用户之间的交流和讨论,有助于形成共识和多元化的观点。用户可以在评论中分享自己的见解,提出改进建议,或者与其他用户就某个问题进行深入的探讨。这种互动不仅丰富了社区的文化氛围,也促进了用户之间的理解和尊重。

总的来说,大众审评功能为社区提供了一个民主化、透明化的内容审核机制,让每个用户都有机会参与到社区的建设和发展中来。通过这种方式,我们可以更好地了解用户的需求和期望,不断优化和改进我们的服务,为用户提供更加优质和个性化的体验。


4.首页占位符过多的问题

答:在我们的平台上,首页的布局和内容是根据用户的兴趣和行为动态生成的。为了保持页面的一致性和美观性,我们引入了占位符的概念。占位符是一个虚拟的元素,它在页面上占据一定的位置,但并不直接显示任何实际的内容。当有新的帖子或分类满足特定的条件时,相应的占位符就会被激活,显示出实际的标题和摘要,并提供一个链接供用户点击跳转到详细页面。如果当前没有符合条件的帖子或分类,那么对应的占位符就会保持隐藏状态,不会干扰到页面的整体布局和视觉效果。

这种设计既保证了页面的整洁和一致性,又提高了用户的浏览效率。用户可以快速地看到哪些区域有更新的内容,而无需逐个检查每个部分。同时,这也减轻了服务器的负担,因为只有在有实际内容时才需要加载和渲染相关的数据。


5.功能需要有类图支持

答:类图绘制时的粒度确实不好把控,这一点是我们需要学习改进的。具体来说,前端由于和功能点结合紧密,在类图中比较容易有具体、详细的实现;而在api文档定义完成之前,后端只能对数据库和接口有一个宏观的的、不具体的定义(不否认同时受制于项目经验),在类图上往往只能体现出少量几个类(如orm、数据库、api)。

总之我们在原有的类图上,已经补上了更多后端功能。


6.现在想好要做什么核心功能?

答:我们的平台致力于为用户提供一个丰富多样的社交体验,因此在接下来的开发阶段,我们将重点推出以下几个核心功能:

1.发帖及互动功能:用户可以创建并发布自己的帖子,分享他们的想法、经历或作品。同时,其他用户可以对帖子进行点赞和评论,与作者或其他读者进行互动交流。这将促进社区内的信息共享和知识传播,增强用户之间的联系和共鸣。

2.大众审评功能:这是一个创新的社区参与机制,允许用户对帖子进行投票和评论,共同决定其质量和价值。这不仅提升了社区的民主性和透明度,也让用户有机会直接影响到社区的内容生态。

3.个人中心设置:用户可以在个人中心对自己的账户进行管理,包括修改个人信息、设置隐私选项、查看历史活动等。这将帮助用户更好地掌控自己的在线身份和数据,保障他们的权益和隐私。

4.社区基本设置:作为管理员或版主,您可以对社区进行基本的设置和管理,包括定义规则、调整版面布局、管理用户权限等。这将帮助您打造一个有序、活跃且符合社区特色的交流平台。

5.举报和投诉功能:为了保障社区的安全和公正,我们提供了举报和投诉功能。用户可以对违反社区规则或侵犯他人权益的行为进行举报,我们会及时处理并采取相应的措施。

五、团队绩效

学号姓名分工贡献度(%)
222100233董阳工作分配协调、部分文档撰写、技术指导20
222100227帕力万ppt、博客15
222100234曾翔宇用例图及其描述、新功能原型设计12
222100106方锦琦api文档14
222100107田丰宇前端基本程序架构7
222100328夏鑫洋后端架构、数据库和系统架构文档、api文档20
222100336潘岩数据库和系统架构文档、类图修正12

六、开发计划安排

时间段宏观任务目标前端具体任务后端具体任务产品经理/组长
4.18-4.241.后端设计,前端设计和技术学习1.css样式、可复用组件、json获取,以及页面主体:考虑分析相关的依赖关系,进行数据库建表,并绘制er图2技术方面进行指导,并审核相关的文档质量
4.24-5.81.前端绘制软件基本框架
2.后端实现基本功能接口
1.主页(推荐页)
2.用户个人信息
3.除评审功能外的普通帖子
4.评论、普通用户登陆界面
5.后端json获取
1.实现项目基本结构搭建(orm)
2.实现html协议下,前端需要的通信相关接口,具体参考api文档
3.服务器部署(时间足够的话)
1.文档、博客方式跟进程序开发进度
2.衔接前后端工作
3.必要时进行技术讨论和指导
5.8-5.22前端后端协同开发进阶功能1.管理员界面、审核功能
2.评审功能
3.好友列表
4.用户个人帖子管理
同上一安排1.考虑是否新增新的功能
2.准备测试数据并组织初步测试
3.博客和相关文档记录跟进
5.22-5.29测试、优化和验收1.UI美化
2.上一安排中可扩展的特色功能和安全机制的实现
3.打包部署web(和移动端)
3.各功能测试
1.代码优化和重构
2.测试相关功能
3.服务器维护
组织协调相关工作和文档博客记录
...全文
89 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

系统架构不明确,只有文字能以清晰地传递系统体系结构整体概貌;
评审功能模块中有“举报”模块,后台是否需要对应的“处理举报“?
数据表结构设计不能简单截图,设计文档要告诉其他开发者每个字段的涵义、类型、长度、约束等,需要另作表格定义;

助教张宇梦 助教 04-24
  • 打赏
  • 举报
回复

App包括帖子社区功能,但是在数据库表设计中并不包括社区表

助教张宇梦 助教 04-24
  • 打赏
  • 举报
回复

从数据模块和功能模块来看,本系统的应用场景并不明显

300

社区成员

发帖
与我相关
我的任务
社区描述
福州大学的软件工程实践-2023学年-W班
软件工程需求分析结对编程 高校 福建省·福州市
社区管理员
  • FZU_SE_teacherW
  • Pity·Monster
  • 助教张富源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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