# g_design **Repository Path**: empty-valley-cold-wind/g_design ## Basic Information - **Project Name**: g_design - **Description**: 一个使用分布式开发的论坛网站后端部分 - **Primary Language**: Java - **License**: EPL-1.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-01-20 - **Last Updated**: 2025-04-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: SpringCloud, SpringBoot, Redis, nacos ## README # 论坛开发后端 #### 介绍 一个完整的论坛开发内容,前后端分离,后端部分使用springcloud分布式开发 #### 论坛功能图 ![输入图片说明](https://foruda.gitee.com/images/1705743372991876297/eadf01db_10978103.png "屏幕截图") #### 安装教程 1.本地或虚拟机部署有redis-记得到配置文件(application.yml)修改地址和密码 2.nacos,我使用的版本是2.2.0-到配置文件修改为你自己的nacos地址,一般都是8848 3.mysql8-修改配置文件为你自己的账户密码以及库-建表sql语句请查看后文 4.rabbitMQ(如果没有可以将后端代码中相关文件和配置删掉,因为暂时还没有实际用上,只是部署上去了) 5.阿里云的oss服务,sms短信服务可以没有(可以直接用redis模拟,不用真的发出),但是oss对象存储服务一定要有,所有的图片都是通过oss上传以及获取的 ### 功能具体实现说明 这是一个论坛类型的网站,网站前端布局设计模仿了MCBBS的风格。后端架构是看过尚硅谷的尚融宝分布式项目之后再进行搭建的。所涉及技术如下:后端包含springboot,springcloud,redis,nacos,gateway,openFeign,rabbitMQ等,前端使用vite部署,包含vue3,ts,element-plus,Echarts等,前端的前台系统和后台系统没有分开部署 所包含功能如下: 1.登陆注册(注册需要手机验证码(使用redis和aliyun-sms服务实现),包含验证码和密码登陆),用户分为普通用户,版主,管理员。普通用户需要提升等级来 得到发评论,发帖,打赏等权限,可以进行每日签到。 能对文章进行收藏,收藏可以指定目录,对个人信息进行修改,对手机号和密码进行修改,修改时通过步骤进行,先验证手机号再修改,后台生成了csrfToken来防御 csrf攻击。 对文章,评论进行举报,对账户进行申诉,对自己的文章进行申请加精。版主由管理员指定,除普通用户功能外还可以对相关板块的文章进行审核/删除,对相关评论进行删除。接收板块相关的举报信息。管理员拥有所有权限-除版主权限外还可以对用户进行操作-比如指定版主和锁定用户(被锁定的用户能正常登陆但是所有权限都被封闭,只能进行申诉等待管理员解封),对用户申诉进行处理,修改网站字典(包括分区板块和等级字典),发布广播通知(所有用户都将接收到),查看操作日志以及网站流量分析. 2.所有发出的帖子都必须通过审核后才能被查看到,被拒绝通过的帖子可以通过编辑来重新进入待审核状态 3.通知功能。其它用户对你的帖子进行评论/打赏或者对你的评论进行回复后都会收到通知, 对于评论会有定位功能-即点击之后可以直接跳转到相应评论的位置。网站管理员对你的审核结果无论通过都会收到通知,可以根据管理员给出的否决理由来进行修改。 4.网站设置有任务系统,分为每日任务/一次性任务/长期任务,完成后都可以获得经验和积分。 评论会更新网站的更新时间,网站是默认通过更新时间排序,所以如果经常有人评论,则帖子的曝光率就会提高。 5.网站的图片上传是通过aliyun-oss实现的,在文章/评论被删除,用户头像被修改后,相关图片都会从oss存储中移除,防止占用空间。如果用户在发帖中途退出,那他上传的图片同样会被删除。 **_有一点我一直没有解决掉-就是如果用户在更新文章内容时,把原本内容的图片去掉了,那我应该如何把他去掉的这些图片删除掉呢,本来想在他进入编辑状态时就将他的老图片全部删除,但是如果他编辑到一半退出了那他原本的图片都消失了,如果在提交时删除那又没办法判断哪些是老图片哪些是新图片。还想将过上传的图片放进入new文件夹,进入编辑状态就将他移入old文件夹,提交则删除old文件夹的内容。但是数据库存储的是访问路径,如果进入编辑状态后退出图片同样丢失,或许可以在组件卸载且没有提交时将old文件夹的内容重新移回new文件夹,但是感觉太浪费资源了,有点得不偿失。实在是没有一个理想的解决方案。_** #### 使用说明 1. 论坛全程由个人独立开发,数据表可能会有瑕疵,会有些方面没有考虑到 2. xxxx 3. xxxx #### 建表SQL请查看文件 #### 前端项目 https://gitee.com/empty-valley-cold-wind/vueWeb