Skip to content

biabuluo/JNU-BlogSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

JNU-BlogSystem

JAVA实训结课项目

项目概述

本项目旨在创建一个校园开发者社区,为校园内的开发者提供一个交流、学习和分享的平台。

用户角色

游客
  • 游客是未登录或注册的访问者。
  • 可以浏览博客文章列表。
  • 可以阅读完整的博客文章内容。
  • 可以进行博客文章搜索。
  • 不能发表评论、点赞、收藏或进行其他需要登录的操作。
注册用户
  • 注册用户是通过注册账号获得权限的用户。
  • 可以进行游客的所有操作。
  • 可以创建、编辑和删除自己的博客文章。
  • 可以发表评论。
  • 可以点赞和收藏喜欢的博客文章。
  • 可以编辑个人资料,包括头像、昵称和个人简介等。
管理员
  • 管理员是具有特殊权限的用户角色。

  • 可以进行注册用户的所有操作。

  • 可以管理用户账号,包括禁用、删除用户账号。

  • 可以管理博客文章,包括编辑和删除文章。

  • 可以设置系统的功能和权限,如用户权限管理和系统配置。

  • 拥有最高权限,能够对系统进行维护和管理。

功能需求

用户注册和登录
  • 用户能够注册新账号并提供必要的个人信息。
  • 用户可以使用用户名和密码登录到系统。
博客文章管理
  • 用户可以创建新的博客文章,并填写标题、内容和其他相关信息。
  • 用户能够编辑已有的博客文章,包括标题、内容、标签和发布状态。
  • 用户可以删除不再需要的博客文章。
博客文章展示
  • 博客文章列表显示标题、作者、发布日期和摘要信息。
  • 用户可以点击文章标题查看完整的文章内容。
评论和回复
  • 用户可以对博客文章发表评论。
  • 用户可以删除自己的评论。
  • 标签和分类 - 用户可以为博客文章添加标签和分类,以方便浏览和搜索。
文章搜索
  • 用户可以根据关键词搜索博客文章,系统会返回相关的文章列表。
用户个人资料
  • 用户可以编辑个人资料,包括头像、昵称、个人简介等。
文章点赞和收藏
  • 用户可以对喜欢的文章进行点赞或收藏,以便稍后查看或推荐给其他用户。
阅读量统计
  • 系统会记录每篇博客文章的阅读量,以便展示热门和受欢迎的文章。
用户权限管理
  • 管理员角色可以管理用户、审核文章,并对系统的功能进行管理和设置。

非功能需求

用户界面
  • 用户界面应该简洁、直观,易于使用和导航。
  • 响应式设计,以适应不同屏幕尺寸和设备。
安全性
  • 用户的个人信息应该受到保护,包括密码的加密存储。
  • 防止未经授权的访问和恶意攻击。
性能
  • 系统应该具有良好的性能,能够快速响应用户请求。
  • 针对高并发情况进行优化,确保系统的可伸缩性。
可维护性
  • 代码应该易于理解、扩展和维护,采用合适的软件开发规范和设计模式。
  • 提供文档和注释,以便开发人员能够理解系统的工作原理。

技术栈

前端
  • Vite
  • Vue3
  • Vue-Router
  • Vuex
  • Swiper
  • Naive-UI
后端
  • SpringBoot
  • MyBatis
  • SpringSecurity
  • Redis
  • Gradle
数据库
  • H2 Database (for test)
  • MySQL

数据库设计

用户表(User)

  • id:用户ID(主键)
  • username:用户名(唯一)
  • phone:手机号码(唯一)
  • email:邮箱(唯一)
  • password:密码

角色表(Role)

  • id:角色ID(主键)

  • roleName:角色名

用户角色表

  • id:用户角色ID(主键)
  • userId:用户ID(外键关联到用户表的id)
  • roleId:角色ID(外键关联到角色表的id)

博客文章表(BlogPost)

  • id:文章ID(主键)
  • title:标题
  • content:内容
  • author_id:作者ID(外键关联到用户表的id)
  • createdTime:创建时间
  • updated_time:更新时间

标签表(Tag)

  • id:标签ID(主键)
  • name:标签名

文章标签表(PostTag)

  • id:文章标签ID(主键)
  • post_id:(外键关联到博客文章表的id)
  • tag_id:(外键关联到标签表的id)

评论表(Comment)

  • id:评论ID(主键)
  • post_id:文章ID(外键关联到博客文章表的id)
  • author_id:作者ID(外键关联到用户表的id)
  • content:评论内容
  • createdTime:创建时间
  • updated_time:更新时间

用户资料表(UserProfile)

  • id:用户资料ID(主键)
  • userId:用户ID(外键关联到用户表的id)
  • avatar:头像(存储头像文件的路径,或者用Base64储存?)
  • nickname:昵称
  • bio:个人简介

点赞表(Like)

  • id:点赞ID(主键)
  • post_id:文章ID(外键关联到博客文章表的id)
  • userId:用户ID(外键关联到用户表的id)

收藏表(Favorite)

  • id:收藏ID(主键)
  • post_id:文章ID(外键关联到博客文章表的id)
  • userId:用户ID(外键关联到用户表的id)

系统架构

TODO,描写前后端和数据库的交互方式

About

JAVA实训结课项目

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors