bbs项目简介

项目简介

袋鼠bbs 是一套前后端不分离社区系统,基于目前主流 Java Web 技术栈(SpringBoot + MyBatis-plus + MySQL + Redis + Kafka + Elasticsearch + shiro + ...)。包含帖子、评论、私信、系统通知、点赞、关注、搜索、用户设置、数据统计等模块。

核心技术栈

后端:

  • Spring
  • Spring Boot
  • Spring MVC
  • ORM:MyBatis-plus
  • 数据库:MySQL 5.7
  • 分布式缓存:Redis
  • 本地缓存:guava
  • 消息队列:Kafka
  • 搜索引擎:Elasticsearch 7.2.0
  • 安全:shiro
  • 邮件任务:Spring Mail
  • 日志:SLF4J(日志接口) + Logback(日志实现)

前端:

  • Thymeleaf
  • Bootstrap 4.x

开发环境

  • 操作系统:mac
  • 构建工具:Apache Maven
  • 集成开发工具:Intellij IDEA
  • 接口测试工具:Postman
  • 压力测试工具:Apache JMeter
  • 版本控制工具:Git
  • Java 版本:8

界面展示

首页:

bbs项目简介_第1张图片

登录页:

bbs项目简介_第2张图片

帖子发布页(支持 MarkDown):
bbs项目简介_第3张图片

帖子详情页:
bbs项目简介_第4张图片

个人主页:

bbs项目简介_第5张图片

朋友私信页:

bbs项目简介_第6张图片

私信详情页:

bbs项目简介_第7张图片

系统通知页:

bbs项目简介_第8张图片

通知详情页:

bbs项目简介_第9张图片

账号设置页:

bbs项目简介_第10张图片

搜索详情页:
bbs项目简介_第11张图片
说说列表页:

bbs项目简介_第12张图片
说说发布页:
bbs项目简介_第13张图片

功能列表

  • [x] 注册
  • [x] 登录 | 登出

    • 动态生成验证码
  • [x] 账号设置

    • 修改头像
    • 修改密码
  • [x] 帖子模块

    • 发布帖子
    • 分页显示所有的帖子

      • 先按照热度再按照时间进行排序
    • 查看帖子详情
    • 权限管理(shiro)

      • 未登录用户无法发帖
  • [x] 评论模块

    • 发布对帖子的评论
    • 分页显示评论
    • 发布对评论的回复
    • 权限管理(shiro)

      • 未登录用户无法使用评论功能
  • [x] 私信模块

    • 发送私信
    • 私信列表

      • 查询当前用户的会话列表
      • 每个会话只显示一条最新的私信
      • 支持分页显示
    • 私信详情

      • 查询某个会话所包含的所有私信
      • 访问私信详情时,将显示的私信设为已读状态
      • 支持分页显示
    • 权限管理(shiro)

      • 未登录用户无法使用私信功能
  • [x] 统一处理 404 / 500 异常

    • 普通请求异常
    • 异步请求异常
  • [x] 统一记录日志
  • [x] 点赞模块

    • 支持对帖子、评论/回复点赞
    • 第 1 次点赞,第 2 次取消点赞
    • 首页统计帖子的点赞数量
    • 详情页统计帖子和评论/回复的点赞数量
    • 详情页显示当前登录用户的点赞状态(赞过了则显示已赞)
    • 统计我的获赞数量
    • 权限管理(shiro)

      • 未登录用户无法使用点赞相关功能
  • [x] 关注模块

    • 关注功能
    • 取消关注功能
    • 统计用户的关注数和粉丝数
    • 我的关注列表(查询某个用户关注的人),支持分页
    • 我的粉丝列表(查询某个用户的粉丝),支持分页
    • 权限管理(shiro)

      • 未登录用户无法使用关注相关功能
  • [x] 系统通知模块

    • 通知列表

      • 显示评论、点赞、关注三种类型的通知
    • 通知详情

      • 分页显示某一类主题所包含的通知
      • 进入某种类型的系统通知详情,则将该页的所有未读的系统通知状态设置为已读
    • 未读数量

      • 分别显示每种类型的系统通知的未读数量
      • 显示所有系统通知的未读数量
    • 导航栏显示所有消息的未读数量(未读私信 + 未读系统通知)
    • 权限管理(shiro)

      • 未登录用户无法使用系统通知功能
  • [x] 搜索模块
  • [x] 面试模块

    • 权限管理(shiro)

      • 未登录用户无法查看
  • [x] 个人简介模块
  • [x] 与我联系模块

    本地运行

各位如果需要将项目部署在本地进行测试,以下环境请提前备好:

  • Java 8
  • MySQL 5.7
  • Redis
  • Kafka
  • Elasticsearch 7.2.0

然后修改配置文件中的信息为你自己的本地环境,直接运行是运行不了的

本地运行需要修改的配置文件信息如下:

1)application-develop.properties:

  • MySQL
  • Spring Mail(邮箱需要开启 SMTP 服务)
  • Kafka:consumer.group-id(该字段见 Kafka 安装包中的 consumer.proerties,可自行修改, 修改完毕后需要重启 Kafka)
  • Elasticsearch:cluster-name(该字段见 Elasticsearch 安装包中的 elasticsearch.yml,可自行修改)
  • 阿里云oss(需要新建一个对象存储空间,用来存放上传的头像图片)

2)logback-spring-develop.xml:

  • LOG_PATH:日志存放的位置

每次运行需要打开:

  • MySQL
  • Redis
  • Elasticsearch
  • Kafka

另外,还需要事件建好数据库 community,然后依次运行项目 sql 文件夹下的这几个 sql 文件建立数据库表:

bbs项目简介_第14张图片

部署架构

因为体量不是太大,单体就可以

bbs项目简介_第15张图片

首页链接

你可能感兴趣的:(后端前端)