## 📚 项目简介
Echo 是一套前后端不分离的开源社区系统,基于目前主流 Java Web 技术栈(SpringBoot + MyBatis + MySQL + Redis + Kafka + Elasticsearch + Spring Security + ...),并提供详细的开发文档和配套教程。包含帖子、评论、私信、系统通知、点赞、关注、搜索、用户设置、数据统计等模块。
**源码链接**:已托管在 Github 和 Gitee:
- Gitee:[https://gitee.com/veal98/Echo](https://gitee.com/veal98/Echo)(Gitee 官方推荐项目)
- Github:[https://github.com/Veal98/Echo](https://github.com/Veal98/Echo)
**文档地址**:文档通过 <u>Docsify + Github/Gitee Pages</u> 生成
- Gitee Pages:[https://veal98.gitee.io/echo](https://veal98.gitee.io/echo)
- Github Pages:[https://veal98.github.io/Echo](https://veal98.github.io/Echo)
## 📖 配套教程
想要自己从零开始实现这个项目或者深入理解的小伙伴,可以扫描下方二维码关注公众号『**飞天小牛肉**』回复 `Echo` 免费获取配套教程。本套教程不仅会详细解释本项目涉及的各大技术点,还会汇总相关的常见面试题,目前尚在更新中。
<img width="220px" src="https://gitee.com/veal98/images/raw/master/img/20210204145531.png" />
配套教程部分截图:
![](https://gitee.com/veal98/images/raw/master/img/20210930110659.png)
## 💻 核心技术栈
后端:
- Spring
- Spring Boot 2.1.5 RELEASE
- Spring MVC
- ORM:MyBatis
- 数据库:MySQL 5.7
- 分布式缓存:Redis
- 本地缓存:Caffeine
- 消息队列:Kafka 2.13-2.7.0
- 搜索引擎:Elasticsearch 6.4.3
- 安全:Spring Security
- 邮件任务:Spring Mail
- 分布式定时任务:Spring Quartz
- 日志:SLF4J(日志接口) + Logback(日志实现)
前端:
- Thymeleaf
- Bootstrap 4.x
- Jquery
- Ajax
## 🔨 开发环境
- 操作系统:Windows 10
- 构建工具:Apache Maven
- 集成开发工具:Intellij IDEA
- 应用服务器:Apache Tomcat
- 接口测试工具:Postman
- 压力测试工具:Apache JMeter
- 版本控制工具:Git
- Java 版本:8
## 🎀 界面展示
首页:
![](https://gitee.com/veal98/images/raw/master/img/20210211205641.png)
登录页:
![](https://gitee.com/veal98/images/raw/master/img/20210211205558.png)
密码重置页:
![](https://gitee.com/veal98/images/raw/master/img/20210709003428.png)
帖子发布页(支持 MarkDown):
![](https://gitee.com/veal98/images/raw/master/img/20210512101041.png)
帖子详情页(MarkDown 渲染):
![](https://gitee.com/veal98/images/raw/master/img/20210512101202.png)
帖子详情页:
![](https://gitee.com/veal98/images/raw/master/img/20210211205741.png)
个人主页:
![](https://gitee.com/veal98/images/raw/master/img/20210211205820.png)
朋友私信页:
![](https://gitee.com/veal98/images/raw/master/img/20210211205857.png)
私信详情页:
![](https://gitee.com/veal98/images/raw/master/img/20210211205948.png)
系统通知页:
![](https://gitee.com/veal98/images/raw/master/img/20210211210122.png)
通知详情页:
![](https://gitee.com/veal98/images/raw/master/img/20210211210152.png)
账号设置页:
![](https://gitee.com/veal98/images/raw/master/img/20210211210238.png)
数据统计页:
![](https://gitee.com/veal98/images/raw/master/img/20210211210323.png)
搜索详情页:
![](https://gitee.com/veal98/images/raw/master/img/20210211210531.png)
## 🎨 功能列表
![](https://gitee.com/veal98/images/raw/master/img/20210208222403.png)
- [x] **注册**
- [x] **登录 | 登出**
- 动态生成验证码
- 记住我
- [x] **账号设置**
- 修改头像
- 修改密码
- [x] **过滤敏感词**
- 前缀树
- [x] **帖子模块**
- 发布帖子(过滤敏感词)
- 分页显示所有的帖子
- 支持按照 “发帖时间” 显示
- 支持按照 “热度排行” 显示(Spring Quartz)
- 查看帖子详情
- 权限管理(Spring Security + Thymeleaf Security)
- 未登录用户无法发帖
- “版主” 可以看到帖子的置顶和加精按钮并执行相应操作
- “管理员” 可以看到帖子的删除按钮并执行相应操作
- “普通用户” 无法看到帖子的置顶、加精、删除按钮,也无法执行相应操作
- [x] **评论模块**
- 发布对帖子的评论(过滤敏感词)
- 分页显示评论
- 发布对评论的回复(过滤敏感词)
- 权限管理(Spring Security)
- 未登录用户无法使用评论功能
- [x] **私信模块**
- 发送私信(过滤敏感词)
- 私信列表
- 查询当前用户的会话列表
- 每个会话只显示一条最新的私信
- 支持分页显示
- 私信详情
- 查询某个会话所包含的所有私信
- 访问私信详情时,将显示的私信设为已读状态
- 支持分页显示
- 权限管理(Spring Security)
- 未登录用户无法使用私信功能
- [x] **统一处理 404 / 500 异常**
- 普通请求异常
- 异步请求异常
- [x] **统一记录日志**
- [x] **点赞模块**
- 支持对帖子、评论/回复点赞
- 第 1 次点赞,第 2 次取消点赞
- 首页统计帖子的点赞数量
- 详情页统计帖子和评论/回复的点赞数量
- 详情页显示当前登录用户的点赞状态(赞过了则显示已赞)
- 统计我的获赞数量
- 权限管理(Spring Security)
- 未登录用户无法使用点赞相关功能
- [x] **关注模块**
- 关注功能
- 取消关注功能
- 统计用户的关注数和粉丝数
- 我的关注列表(查询某个用户关注的人),支持分页
- 我的粉丝列表(查询某个用户的粉丝),支持分页
- 权限管理(Spring Security)
- 未登录用户无法使用关注相关功能
- [x] **系统通知模块**
- 通知列表
- 显示评论、点赞、关注三种类型的通知
- 通知详情
- 分页显示某一类主题所包含的通知
- 进入某种类型的系统通知详情,则将该页的所有未读的系统通知状态设置为已读
- 未读数量
- 分别显示每种类型的系统通知的未读数量
- 显示所有系统通知的未读数量
- 导航栏显示所有消息的未读数量(未读私信 + 未读系统通知)
- 权限管理(Spring Security)
- 未登录用户无法使用系统通知功能
- [x] **搜索模块**
- [x] **网站数据统计**(管理员专属)
- 独立访客 UV
- 支持单日查询和区间日期查询
- 日活跃用户 DAU
- 支持单日查询和区间日期查询
- 权限管理(Spring Security)
- 只有管理员可以查看网站数据统计
- [x] **优化网站性能**
- 处理每次请求时,都要通过拦截器根据登录凭证查询用户信息,访问的频率非常高。因此将已成功登录的用户信息在缓存 Redis 中保存一段时间,查询用户信息的时候优先从缓存中取值;若缓存中没有该用户信息,则将其存入缓存;用户信息变更时清除对应的缓存数据;
- 引入本地缓存 Caffeine,缓存热帖列表和帖子的总数,避免缓存雪崩(这里面还能再加一层二级缓存 Redis)。
## 🔐 待实现及优化
以下是我觉得本项目还可以添加的功能,同样欢迎各位小伙伴提 issue 指出还可以增加哪些功能,或者直接提 PR 实现该功能:
- [x] 发帖支持 Markdown 格式
- [x] 忘记密码(发送邮件找回密码)(Implemented by [逆光影者 (cpfree) ](https://gitee.com/cpfree))
- [ ] 查询我的点赞
- [x] 管理员对帖子的二次点击取消置顶功能(Partially Implement by [Max (Lyingfromyou)](https://gitee.com/Lyingfromyou))
- [ ] 管理员对已删除帖子的恢复功能(本项目中的删除帖子并未将其从数据库中删除,只是将其状态设置为了拉黑)
- [ ] 定期自动发帖功能
- [ ] 添加 Gitee/Github 账号登陆功能
## 🌱 本
没有合适的资源?快使用搜索试试~ 我知道了~
论坛:基于 SpringBoot + MyBatis + MySQL + Redis + Kafka + Elast.zip
共722个文件
js:220个
html:184个
css:66个
需积分: 5 0 下载量 148 浏览量
2024-02-03
23:27:18
上传
评论
收藏 4.85MB ZIP 举报
温馨提示
论坛:基于 SpringBoot + MyBatis + MySQL + Redis + Kafka + Elast
资源推荐
资源详情
资源评论
收起资源包目录
论坛:基于 SpringBoot + MyBatis + MySQL + Redis + Kafka + Elast.zip (722个子文件)
AUTHORS 6KB
test.bat 18B
mvnw.cmd 6KB
bootstrap.min.css 152KB
bootstrap.min.css 115KB
editormd.css 76KB
editormd.css 76KB
editormd.min.css 60KB
editormd.preview.css 55KB
editormd.preview.min.css 44KB
ambiance.css 26KB
bootstrap-theme.min.css 19KB
codemirror.css 8KB
jsdoc-default.css 6KB
codemirror.min.css 5KB
mdn-like.css 5KB
solarized.css 5KB
qunit-1.16.0.css 5KB
merge.css 3KB
lint.css 3KB
xq-dark.css 3KB
global.css 2KB
lesser-dark.css 2KB
pastel-on-dark.css 2KB
xq-light.css 2KB
tomorrow-night-eighties.css 2KB
editormd.logo.css 2KB
erlang-dark.css 2KB
prettify-tomorrow.css 2KB
zenburn.css 2KB
twilight.css 2KB
midnight.css 2KB
vibrant-ink.css 2KB
mbo.css 2KB
base16-dark.css 2KB
base16-light.css 2KB
style.css 2KB
tern.css 2KB
3024-night.css 2KB
paraiso-dark.css 2KB
paraiso-light.css 2KB
tomorrow-night-bright.css 2KB
3024-day.css 2KB
blackboard.css 2KB
colorforth.css 2KB
editormd.logo.min.css 2KB
the-matrix.css 2KB
night.css 2KB
rubyblue.css 2KB
prettify-jsdoc.css 1KB
monokai.css 1KB
cobalt.css 1KB
simplescrollbars.css 1KB
eclipse.css 1KB
neo.css 932B
elegant.css 768B
neat.css 693B
show-hint.css 662B
discuss-detail.css 541B
dialog.css 502B
tiki.css 440B
foldgutter.css 435B
tiddlywiki.css 220B
matchesonscrollbar.css 188B
letter.css 182B
login.css 182B
fullscreen.css 116B
ambiance-mobile.css 103B
my-reply.css 101B
fontawesome-webfont.eot 59KB
OpenSans-LightItalic-webfont.eot 20KB
OpenSans-Italic-webfont.eot 20KB
OpenSans-BoldItalic-webfont.eot 20KB
OpenSans-Regular-webfont.eot 19KB
OpenSans-Bold-webfont.eot 19KB
OpenSans-Light-webfont.eot 19KB
editormd-logo.eot 1KB
loading@3x.gif 21KB
loading@2x.gif 16KB
loading.gif 8KB
.gitignore 395B
.gitignore 131B
editormd.js.html 149KB
scala.html 28KB
index.html 22KB
index.html 17KB
change-mode.html 15KB
index.html 13KB
index.html 13KB
index.html 13KB
toc.html 11KB
index.html 11KB
index.html 11KB
discuss-detail.html 10KB
marked-emoji-test.html 10KB
index.html 10KB
full.html 10KB
index.html 9KB
index.html 8KB
use-seajs.html 8KB
共 722 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
码农阿豪
- 粉丝: 1w+
- 资源: 1750
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功