Web课设

Web课的课设思路

BLESS

课设Web

43 Words

2023-11-14 14:55 +0800


项目功能预计实现

初步实现V2EX论坛的功能,注册,登录,分区,帖子列表,帖子详情,回复,点赞,收藏,评论,用户信息,用户主页,用户详情,用户关注,用户粉丝,用户回复,用户收藏,用户点赞等功能

论坛设计思路

前端,我们计划使用Vue作为框架,结合Element Plus开发组件。同时,我们将使用Vite作为构建工具,并利用Vue的新的Composition API来使组件间的逻辑更清晰和易于维护。

后端,我们打算使用Spring Boot作为主要框架,并使用JPA连接MySQL数据库。这样可以让我们更专注于业务开发。

为了设计接口,我们计划采用RESTful规范,并使用Swagger生成接口文档。这有助于保持接口的简洁和可读性。

为了方便后期的运维管理,我们计划使用Docker进行容器化部署。此外,我们计划采用JWT进行认证授权。

为了管理源代码和进行协同开发,我们计划使用Git和GitHub。而Azure将作为我们选择的云平台来承载服务。

在测试方面,我们计划各自负责前后端页面和接口的单元测试和集成测试。

在团队协作方面,我们计划由一位同学负责统筹各项工作,以确保项目的顺利进行,分别由一位同学前端设计,一位同学后端设计,一位同学负责测试,一位同学负责数据库设计及部署

具体实现

前端

我们计划设计三个页面:首页、帖子页和用户页。首页用于展示帖子列表和当前用户信息,帖子页用于展示帖子详情,用户页用于展示用户信息。

首页组件,使用Element Plus的组件来展示帖子列表和当前用户信息。我们将通过调用API获取帖子数据,并使用卡片组件展示帖子列表。同时,我们将使用卡片组件展示当前用户的信息。

帖子页组件,使用Element Plus的布局和卡片组件展示帖子的详细信息。我们将显示帖子的标题、内容和其他相关信息。

用户页组件,使用Element Plus的表单和布局组件展示用户的信息。我们将展示用户的姓名、邮箱、头像等信息。

后端

后端部分的设计主要涉及到API的设计和实现。我们计划设计以下API:用户认证和授权API、帖子API、评论API、用户个人资料API、搜索API、点赞和收藏API、分类和标签API、通知和消息API。这些API将包含用户注册、登录、身份验证,以及论坛帖子的创建、编辑、删除和评论的添加、编辑、删除等功能。

首先,我们计划创建数据访问层(Repository)。我们将为每个实体类创建对应的Repository接口,这些接口将继承自JpaRepository或其他相关接口,以提供基本的CRUD操作和一些自定义的查询方法。

接下来,我们计划创建服务层(Service)。在服务层中,我们将编写业务逻辑。我们计划使用@Autowired注解将Repository注入到Service中,并实现相应的功能方法,例如用户认证、帖子管理、评论管理等。

然后,我们计划创建控制器(Controller)。我们计划使用@RestController注解创建控制器类,并定义相应的请求处理方法。在这些方法中,我们将调用服务层的方法,来处理请求和响应。同时,我们还计划在application.properties或application.yml文件中配置数据库连接信息,包括数据库URL、用户名、密码等。

数据库

用户表(User Table):存储用户的基本信息,包括用户ID、用户名、密码、邮箱、头像和注册时间。 帖子表(Post Table):记录帖子的详细信息,包括帖子ID、标题、内容、发布时间,以及发帖用户的用户ID和帖子所属的分类的分类ID。 评论表(Comment Table):存储评论的内容,包括评论ID、评论内容、发布时间,以及评论用户的用户ID和被评论帖子的帖子ID。 分类表(Category Table):描述帖子的分类信息,包括分类ID和分类名称。 标签表(Tag Table):定义了标签的名称和标签ID。 此外,为了管理用户角色和权限,可能还需要一个单独的“用户角色”表。这个表将包括角色ID、角色名称和对应的权限。这种设计可以帮助我们更有效地管理用户和权限,同时确保数据的一致性和安全性。

服务器部署

配置SSL证书,并使用Nginx作为反向代理服务器。

协作

前后端开发者在各自的本地分支中工作,拉取更新,修改完成后提交推送,由统筹人员检查合并