论坛系统
论坛地址:http://cywloveyou.top
Gitee地址:https://gitee.com/cywloveyou/my-forum-opened
前言:
2020年经历了好多,失去一些东西的同时也获得了很多以前不曾拥有的…具体情感生活抛开不讲
半年前接触ssm框架,弄得我死去活来,自己捣鼓了一个购车项目,不过电脑坏了就丢了,就再来个初恋项目吧…
近来无聊,想做一个小型类似于csdn功能的博客新系统,说干就干,卡忙北鼻…
大体介绍
1.前端技术栈
-
JS框架:JQuery,AJAX
-
CSS框架:Semantic UI官网
-
Markdown编辑器:编辑器 Markdown
-
照片墙:lightbox插件
-
代码高亮:代码高亮 prism
-
动画效果:动画 animate.css
-
看板娘,灯笼和雪花效果
2.后端技术栈
- JDK版本: JDK1.8
- 核心框架:SpringBoot 2.2.5
- 邮件任务: springboot的邮件任务
- 消息中间件: RabbitMQ
- 安全框架: shiro 1.1.4
- 项目构建:Maven 3.5.2
- 持久层框架:Mybatis
- 模板引擎:Thymeleaf
- 分页插件:PageHelper
- 加密:MD5加密
- 插件: lombok
- 缓存: redis 6.0.9
3.数据库
- 关系型数据库: mysql 5.7
- 非关系型数据库: redis 6.0.9
运行环境
- 阿里云centos7.4
整个技术栈大体是这些
功能需求
- 此项目分为 游客,普通用户,管理员
- 这里就根据这三个角色来分别讲述功能需求
1.路人
- 访问网站可以查看论坛基本信息
- 查看文章信息:文章列表、推荐文章、文章标题、文章内容、发布时间、访问量以及评论等信息
- 查看分类文章:分类列表、分类文章信息
- 查看时间轴:按照文章时间发布顺序查看文章
- 搜索文章:导航栏右边搜索框根据关键字搜索
- 多人聊天:留言并回复
- 查看友情链接,广告栏
- 查看表白墙,可以推荐自己,找对象(虽然没多少用户)
- 查看相册信息:相册列表、照片名称、照片拍摄地点、时间、照片描述
- 查看关于本站的一些信息,我就是我,一个管理员,哈哈
- 查看音乐盒,听音乐(在网上直接找的插件,为了好玩)
- 点赞功能,查看访问量,文章数,点赞量,评论数,总用户
量(使用redis实现) - 查看发帖子用户的详细信息
- 注册功能,注册完之后会给你发邮件,通知注册成功,账号只有一个,注册完不可修改,作为登录的唯一标识
2.普通用户
-
游客是注册过了才成为普通用户,具有游客的一切权限
-
登录功能:登录成功之后会跳转到用户后台,如果登录失败,会根据情况来判断原因是用户名不存在还是密码错误,来反馈给用户,如果登录失败三次及以上,账号就会被锁定一分钟(这里是shiro+redis实现)
-
邮箱登录:如果忘记密码可以选择邮箱登录,输入当时注册的邮箱,可以接收到验证码,输入正确即可登录成功(rabbitmq+邮件任务,实现异步发送验证码)
扫描二维码关注公众号,回复: 12685165 查看本文章 -
评论功能,进入别人发的文章可以进行评论
后台如下
-
查看个人的信息(账号,昵称,邮箱,空间生日,发表文章数,头像)
-
发表文章:普通用户登录成功之后,即可发表文章.
-
查看自己发表过的文章
-
修改个人信息:修改昵称,邮箱,密码,头像等,但是账号仅有一个,一旦注册不可修改
-
切换账号,如果有其他的账号可以进行切换
-
注销功能:登录成功之后可以注销
3.管理员(重头戏)
- 拥有路人的所有权限
- 拥有普通用户所有功能权限
- 登录:可进入登录页面,根据数据库的用户名和密码进行登录,仅有一个管理员,那就是本人,如果再次添加管理员,则直接在数据库中添加
- 文章管理:查询文章列表、新增文章、编辑文章、删除文章、搜索文章
- 分类管理:查询分类列表、新增分类、编辑分类、删除分类
- 相册管理:查询相册列表、新增照片、编辑照片、删除照片
- 消息管理:登录后回复评论留言会显示栈主的头像信息,并能显示删除消息按键,可以对消息进行删除
- 用户管理: 查询所有注册过的用户,修改用户信息(密码和账号均不能改),删除用户(踢出栈),设置用户权限为管理员.
- 广告管理:添加广告,修改广告,删除广告
- 友链管理:添加友链,删除友链,修改友链
- 修改个人信息:账号,密码,邮箱,头像,昵称等
下一章讲解数据库设计,请看下回分解