一、需求分析
我们的目标是创建一个在线交流平台,让古典舞爱好者能够分享舞蹈技巧、交流学习心得、展示个人作品等。通过调研和分析,我们确定了以下几个关键需求:
- 用户注册和登录:用户需要能够注册账号并登录系统,以便在平台上进行交流和互动。
- 舞蹈技巧分享:用户可以发布舞蹈技巧相关文章,并对其进行分类管理。
- 学习心得交流:用户可以在平台上发表自己的学习心得,与其他用户进行交流。
- 作品展示:用户可以上传自己的舞蹈作品,并展示在个人主页上。
- 评论与点赞:用户可以对其他用户的文章和作品进行评论和点赞。
- 消息通知:系统需要提供实时消息通知功能,以便用户及时了解其他用户的互动信息。
- 搜索功能:用户可以通过关键字搜索感兴趣的文章和作品。
- 用户管理:管理员可以对用户进行管理,包括查看用户信息、修改用户资料等。
- 访问控制:根据用户的角色(如普通用户、管理员),系统应提供相应的访问控制功能。
二、架构设计
基于上述需求,我们设计了如下的系统架构:
- 前端设计:采用React框架进行前端开发,实现页面的动态展示和交互效果。
- 后端设计:使用Spring Boot框架进行后端开发,处理业务逻辑和数据交互。
- 数据库设计:选用MySQL数据库作为存储系统数据的介质,设计合理的表结构和关系。
- 通信协议:前后端之间通过RESTful API进行通信,遵循JSON格式的数据交换。
- 安全设计:使用JWT进行身份验证,保证用户数据的安全性。
- 部署与运维:采用Docker容器化部署,结合Jenkins实现持续集成和自动化部署。
三、数据库设计
根据需求分析,我们需要设计以下几个数据库表:
- 用户表(user):用于存储用户信息,包括用户名、密码、邮箱等字段。
- 文章表(article):用于存储舞蹈技巧文章信息,包括标题、内容、分类等字段。
- 学习心得表(experience):用于存储学习心得信息,包括标题、内容、发表时间等字段。
- 作品表(work):用于存储舞蹈作品信息,包括标题、描述、上传时间等字段。
- 评论表(comment):用于存储评论信息,包括评论内容、评论时间、对应文章或作品的id等字段。
- 点赞表(like):用于存储点赞信息,包括点赞时间、对应文章或作品的id等字段。
- 通知表(notification):用于存储消息通知信息,包括通知内容、发送时间等字段。
- 角色表(role):用于存储角色信息,包括角色名称、权限等字段。
- 用户角色关联表(user_role):用于建立用户与角色之间的关联关系。
四、系统功能实现
在系统功能实现阶段,我们将详细介绍每个模块的具体实现过程: