Skip to content

儒林小栈( pblog )一个基于微服务架构的前后端分离博客系统,加入了面试题管理功能。前端使用 Vue + ElementUi 。后端使用 SpringBoot + Mybatis-plus进行开发,使用 sa-token 做登录验证和权限校验,使用 ElasticSearch作为全文检索服务,文件支持上传本地、七牛云 和 阿里云OSS

License

Notifications You must be signed in to change notification settings

peiguozhi/rulin-blog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

儒林小栈

儒林小栈

儒林小栈 |项目介绍 | 站点演示 | 项目特点 | 项目目录 | 环境搭建 | 未来计划

项目介绍

儒林小栈( pblog ),一个基于微服务架构的前后端分离博客系统。前端使用 Vue + ElementUi。后端使用 SpringBoot + Mybatis-plus进行开发,使用 sa-token 做登录验证和权限校验,使用 ElasticSearch作为全文检索服务,文件支持上传本地、七牛云 和 阿里云OSS

  • 儒林小栈已成功部署至阿里云服务器,确保了系统的稳定运行和高效性能。借助阿里云提供的强大基础设施和技术支持,我们能够为用户提供流畅的访问体验,并支持高并发场景下的稳定服务。此外,通过使用阿里云的对象存储服务 OSS,我们实现了文件的高效存储和管理,进一步提升了用户体验。

  • 儒林小栈是我在其他博客的基础上改造而来,因能力有限,其中很多技术都是一边学习一边使用的,可以说儒林小栈也是一个我用来熟悉技术的项目,所以很多地方可能考虑不周,故有能改正的地方,还请各位老哥能够指出~

  • 现在挺多是SSM或者SSH的博客管理系统,想用 SpringBoot+ Vue 的微服务架构进行尝试项目的构建,里面很多功能可能只是为了满足自己的学习需求而引入的,大家可以根据自己服务器配置来选择启动的服务,因此本博客也是一个非常好的 SpringBoot以及 Vue 技术的入门学习项目。

  • 原来做过 Vue + ElementUi 做过管理系统,所以现在打算做一套自己的、基于当前最新技术栈、前后端分离的微服务博客系统。

  • 儒林小栈中的一些文章,都来自我平时的学习笔记,实践过程,还有一些大佬的分享,主要的目的是为了帮助我进行记忆,需要用到哪些知识可以很方便的进行查找使用。

  • 目前没有遇见比较好的背面试题八股文的网站,所以在博客中简单的集成了一些该功能,目前只是完成了基础的增删改查,简单的优化了移动端显示,后面会增加更多的功能。

项目部署细节

  • 为了保证儒林小栈的高性能和可靠性,我们选择了阿里云服务器作为部署平台。通过阿里云 ECS (Elastic Compute Service) 实例,我们能够根据实际负载动态调整资源,确保系统始终处于最佳运行状态。此外,我们还使用了阿里云的 OSS (Object Storage Service) 来存储用户上传的文件,这不仅降低了服务器的存储压力,还提高了文件的访问速度和安全性。

站点演示

【演示前端】:http://www.codescholar.cn

【演示后端】:http://www.codescholar.cn/admin

【Gitee地址】:https://gitee.com/chengxuru/rulin-blog

【演示账号】:test 密码:123456

您的star是我坚持的动力,感谢大家的支持,欢迎提交pr共同改进项目。

项目中初始用户和密码

  • 后台登录:管理员:admin,密码:123456

  • 后台登录:演示账号:test,密码:123456

  • Mysql:用户:root,密码:root

  • Redis:密码:无

  • knife4j接口文档:用户:admin,密码:admin

  • Druid初始密码: 用户:admin,密码:123456

项目特点

  • 友好的代码结构及注释,便于阅读及二次开发
  • 实现前后端分离,通过 Json 进行数据交互,前端再也不用关注后端技术
  • 页面交互使用 Vue2.x,极大的提高了开发效率。
  • 引入knife4j 文档支持,方便编写 API 接口文档。
  • 支持 GiteeQQ微信微博等第三方账号登录。
  • 引入ElasticSearch 作为全文检索服务,并支持可插拔配置
  • 引入七牛云对象存储,同时支持本地文件存储
  • 引入 RBAC 权限管理设计,灵活的权限控制,按钮级别的细粒度权限控制,满足绝大部分的权限需求
  • 采用自定义参数校验注解,轻松实现后端参数校验
  • 采用 AOP + 自定义注解 + Redis 实现限制IP接口访问次数
  • 留言采用弹幕墙,更加炫酷。
  • 支持代码高亮和复制,图片预览,深色模式等功能,提升用户体验。
  • 后台管理支持修改背景图片,博客配置等信息,操作简单,支持上传相册。
  • 采用自研的评论模块,实现评论邮件通知
  • 采用 Docker Compose 完成容器编排,Portainer 实现容器可视化,支持一键部署线上环境

项目目录

前端项目pblog-web为前台,pblog-admin为后台。

后端项目位于pblog下。

SQL文件位于根目录下的pblog.sql

可直接导入该项目于本地,修改后端配置文件中的数据库等连接信息,项目中使用到的关于七牛云功能和第三方授权登录等需要自行开通。

当你克隆项目到本地后可使用账号:admin,密码:123456 进行登录

本地访问接口文档地址:http://127.0.0.1:8888/rulin/doc.html

ps:请先运行后端项目,再启动前端项目,前端项目配置由后端动态加载。

pblog

  • annotation:自定义注解
  • aspect:aop模块
  • config:配置模块
  • common:常量模块
  • controller:控制器模块
  • entity:实体类模块
  • dto:数据传输对象模块
  • enums:枚举模块
  • exception :自定义异常模块
  • mapper:框架核心模块
  • service:服务模块
  • strategy :策略模块(用于扩展第三方登录,搜索模式,上传文件模式等策略)
  • utils:工具类模块
  • quartz:定时功能模块
  • webmagic :文章爬虫模块
  • vo:与前端进行交互的视图对象模块

后端技术

技术 说明 官网
SpringBoot MVC框架 https://spring.io/projects/spring-boot
sa-token 轻量级 java 权限认证框架 https://sa-token.cc/index.html
MyBatis-Plus ORM框架 https://mp.baomidou.com/
Swagger-UI 文档生产工具 https://github.com/swagger-api/swagger-ui
Kibana 分析和可视化平台 https://www.elastic.co/cn/kibana
Elasticsearch 搜索引擎 https://github.com/elastic/elasticsearch
Redis 分布式缓存 https://redis.io/
Docker 容器化部署 https://www.docker.com
Druid 数据库连接池 https://github.com/alibaba/druid
七牛云 七牛云 - 对象储存 https://developer.qiniu.com/sdk#official-sdk
JWT JWT登录支持 https://github.com/jwtk/jjwt
log4j 日志框架 https://logging.apache.org/log4j/2.x/
Lombok 简化对象封装工具 https://github.com/rzwitserloot/lombok
Nginx HTTP和反向代理web服务器 http://nginx.org/
Ip2region 离线IP地址定位库 https://github.com/lionsoul2014/ip2region
Docker Compose Docker容器编排 https://docs.docker.com/compose/
Portainer Docker可视化管理 https://github.com/portainer/portainer

前端技术

技术 说明 官网
Vue.js 前端框架 https://vuejs.org/
Vue-router 路由框架 https://router.vuejs.org/
Vuex 全局状态管理框架 https://vuex.vuejs.org/
Element 前端ui框架 https://element.eleme.io
Axios 前端HTTP框架 https://github.com/axios/axios
Echarts 图表框架 www.echartsjs.com
mavonEditor 在线markdown编辑器 http://www.mavoneditor.com/
Highlight.js 代码语法高亮插件 https://github.com/highlightjs/highlight.js
clipboard.js 现代化的拷贝文字 http://www.clipboardjs.cn/
markdown-it markdown 解析器 https://markdown-it.docschina.org/
webpack 模块打包器 https://www.webpackjs.com/
compression-webpack-plugin 代码压缩包插件 https://github.com/webpack-contrib/compression-webpack-plugin

环境搭建

开发工具

工具 说明 官网
IDEA Java开发IDE https://www.jetbrains.com/idea/download
WebStorm 前端开发IDE https://www.jetbrains.com/webstorm/
RedisDesktop Redis可视化工具 https://redisdesktop.com/download
SwitchHosts 本地Host管理 https://oldj.github.io/SwitchHosts/
X-shell Linux远程连接工具 https://xshell.en.softonic.com/
X-ftp Linux文件传输工具 https://www.netsarang.com/zh/all-downloads/
Navicat 数据库连接工具 https://navicat.com.cn/

开发环境

工具 版本号 下载
JDK 1.8 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Maven 3.6.0+ http://maven.apache.org/
Elasticsearch 7.9.2 https://www.elastic.co/downloads
MySQL 5.7.27 https://www.mysql.com/
Nginx 1.10 http://nginx.org/en/download.html
Redis 6.0.19 https://redis.io/download

致谢

儒林小栈参考了很多开源项目解决方案开源不易,感谢分享

未来计划

  • 门户网站增加登录页面
  • 集成ElasticSearch
  • 将图片存储在七牛云中
  • 写一个评论模块
  • 按钮级别的细粒度权限控制
  • 增加数据字典管理
  • 前端增加用户个人中心
  • 增加博客详情页目录导航
  • 使用Docker Compose完成博客一键部署
  • 使用Portainer对Docker镜像可视化管理
  • 适配门户页面的移动端布局
  • 增加定时任务模块
  • 增加大屏数据展示页面
  • 增加面试题管理模块
  • 增加评论表情
  • 支持第三方登录
  • 面试题增加标签
  • 面试题多维度筛选题目(难度、标签、题型)
  • 面试题多维度排序题目(热度、收藏数、频率)
  • 面试题题目推荐
  • 面试题题目遇见次数
  • 面试题共同编辑解析
  • 面试题精选题目、上传题目
  • 面试题题目收藏功能(语音读题、选题练习、分析报告)
  • 面试题不熟题集
  • 富文本编辑器和Markdown编辑器任意切换
  • 使用ELK搭建博客日志收集功能
  • 完善爬虫模块
  • 增加一个FAQ常见问题文档
  • 使用Freemark页面静态化技术对博客详情页静态化
  • 让原创文章能够同步到多平台,如:CSDN,掘金,博客园等
  • 增加博客迁移功能,让其它平台的博客,如:CSDN、博客园,WordPress能够同步到儒林小栈中

网站截图

前台web端

image-20230421152829758 image-20230421152857902
image-20230421152916029 image-20230421152929446
image-20230421152943045 image-20230421153007618
image-20230421153044253 image-20230421153242655

前台移动端

image-20230421153429751 image-20230421153450116
image-20230421153511073 image-20230421153521132

后台

image-20230421151848790 image-20230421151924326
image-20230421151815027 image-20230421152140954
image-20230421152257038 image-20230421152311674
image-20230421152326797 image-20230421152338715
image-20230421152420066 image-20230421152433741
image-20230421152448209 image-20230421152502633
image-20230421152522041 image-20230421152535878
image-20230421152549821 image-20230421152607347
image-20230421152640242 image-20230421152654228
image-20230421152707208 image-20230421152720481

About

儒林小栈( pblog )一个基于微服务架构的前后端分离博客系统,加入了面试题管理功能。前端使用 Vue + ElementUi 。后端使用 SpringBoot + Mybatis-plus进行开发,使用 sa-token 做登录验证和权限校验,使用 ElasticSearch作为全文检索服务,文件支持上传本地、七牛云 和 阿里云OSS

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published