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,描写前后端和数据库的交互方式