mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6mobile wallpaper 7mobile wallpaper 8mobile wallpaper 9mobile wallpaper 10mobile wallpaper 11mobile wallpaper 12
3235 字
9 分钟
Java原创项目:仿b站v1.0(附前后端源码及接口文档)
2025-05-11

目录

一、技术栈

二、项目展示及说明

(一)用户端

1.注册/登录界面

2.首页

3.视频播放页

4.搜索界面

5.个人界面

6.动态界面

7.私信界面

8.历史界面

9.投稿界面

(二)管理端

1.登陆界面

2.首页

3.数据趋势界面

4.视频审核界面

5.动态管理界面

6.用户管理界面

7.管理员列表界面

8.日志一览界面

(三)自动清除过旧数据

三、源码

四、最后想说


一、栈#

前端

  • **核心架构:**Vue 3 + Vite
  • UI 组件:Element Plus
  • 数据可视化:ECharts
  • 表单验证:VeeValidate + Yup
  • HTTP 请求:Axios
  • 动画 & 工具:GSAP、Lodash、VueUse
  • 多媒体:vue3-video-play + vue3-danmaku
  • 加密 & 安全:CryptoJS、crypted-vue-route

后端

  • 核心架构:Spring Boot
  • 数据层:MySQL + MyBatis + Druid + Redis
  • 搜索功能:Elasticsearch + High Level REST Client
  • 消息通信:RabbitMQ + Spring AMQP
  • 安全:Spring Security + JWT + Sensitive-Word
  • 工具链:Hutool + Lombok + Fastjson/Jackson
  • 云服务:阿里云 OSS(对象存储)
  • 通信:WebSocket + RESTful API

二、项目展示及说明#

(一)用户端#

1.注册/登录界面#

  • 表单校验功能:实时校验用户名、密码、字段的格式和必填性,并提供即时错误提示。后续将加入邮箱验证功能。
  • 密码加密功能:后端使用相应算法对用户原密码进行加密,保障用户账号安全性。

2.首页#

  • 推荐视频展示:展示推荐视频封面、标题、作者、发布时间,并点击跳转播放页。
  • 实时热搜展示:展示全站搜索量Top10,轮播展示,点击直接搜索。
  • 搜索历史展示:本地浏览器存储搜索记录,支持一键清除/单条删除,点击复用搜索。

3.视频播放页#

  • 视频信息展示:展示视频标题、日期、作者、简介、标签。
  • 实时弹幕功能:实时接收/发送弹幕,支持暂停、隐藏。
  • 作者关注功能:关注/取消关注,特别关注设置,显示粉丝数。
  • 视频评论功能:多级评论,支持@和图片,分页加载,回复定位。
  • 视频互动操作:支持点赞、投币、收藏、分享。
  • 自动连播功能:播放完当前视频自动播放右侧第一个推荐视频。

4.搜索界面#

  • 搜索路径加密:保护用户隐私,加密搜索词传输和存储。
  • 关键词高亮显示:在搜索结果中高亮匹配的关键词(标题、作者、简介、标签)。
  • 视频搜索筛选功能:支持多条件筛选(相关度、播放量、收藏量、弹幕数、日期、时长)。
  • 用户搜索功能:搜索注册用户,按粉丝量筛选,显示用户基本信息。
  • 搜索结果分页:分页展示搜索结果,加快搜索速度,减轻后端压力,优化体验。

5.个人界面#

用户自身的个人界面:

  • 用户信息编辑:支持修改头像、昵称、简介等基本信息。
  • 密码修改:支持新旧密码对照进行修改,并进行后端解密校对
  • 投稿视频、收藏夹、投币视频展示:分页展示用户投稿、收藏和投币的视频列表。
  • 投稿合集管理:支持创建、编辑、删除合集。
  • 收藏夹管理:编辑收藏夹标题/描述,删除收藏夹,自定义封面。
  • 动态管理:编辑、删除动态(图文/视频),展示动态流。

他人的个人界面:

  • 关注功能:关注/取消关注,设置特别关注。
  • **订阅文件夹:**订阅他人的公开收藏夹,接收更新通知。

6.动态界面#

  • 发布动态:支持文字、图片(多图)、视频和标签。
  • 动态列表展示:分页加载关注对象的动态(按发布时间倒序)。
  • 单用户动态聚合:展示指定用户的全部动态。
  • 敏感词过滤:自动过滤掉动态中的敏感词。
  • 视频转发到动态:将视频以卡片形式分享到动态,支持添加转发评语。
  • 动态互动功能:点赞/取消点赞,发布/回复评论(支持@他人和附带图片)。

7.私信界面#

  • 实时聊天功能:支持与互关用户在线实时聊天,消息即时推送,并有弹窗通知功能。
  • 新视频发布通知:实时接收对方新视频动态,点击跳转播放页。
  • ** 消息已读/未读状态**:实时显示消息是否被对方阅读。
  • 消息删除与撤回:支持单方面删除聊天记录,2分钟内可撤回消息。
  • 多媒体消息支持:发送文字、图片,未来扩展视频/文件。
  • 互动通知(回复/@/点赞):聚合通知页展示互动消息。
  • 系统通知(公告/下架):支持接收官方公告,违规视频下架通知。
  • 其他订阅通知:关注用户动态、收藏夹更新等。

8.历史界面#

  • 每日浏览视频记录:记录用户每天观看的视频及对应观看时长,支持按日期分类展示。
  • 关闭/开启历史记录功能:允许用户自由关闭或开启历史记录功能,关闭后不再记录新数据。
  • ** 一键清空历史功能**:彻底清除所有历史记录。

9.投稿界面#

  • 视频投稿与敏感词过滤:支持上传视频文件,自定义标题、简介、标签等信息,自动检测敏感词并过滤(替换为“喵”)。
  • 视频列表管理与排序:展示视频列表(待审核/已通过/未通过),支持按投稿时间、播放量等排序,未通过视频支持修改后重新投稿。
  • 用户数据总览:展示用户总点赞数、粉丝数、评论数等核心数据。
  • 数据可视化与趋势分析:图表展示粉丝、点赞、收藏的增长趋势,支持7/30/90天切换。
  • 评论管理与搜索:展示所有视频评论,支持按时间、回复数、点赞数排序。搜索视频标题关联评论,支持删除评论。

(二)管理端#

1.登陆界面#

  • 表单校验功能:实时校验用户名、密码、字段的格式和必填性,并提供即时错误提示。后续将加入邮箱验证功能。

2.首页#

  • **管理员信息展示:**展示当前登录管理员的基本信息。
  • **视频审核状态实时展示:**展示待审核、未通过、已通过的视频数量。
  • **数据总览:**实时统计全平台注册用户数、投稿视频数等核心指标。

3.数据趋势界面#

  • ** 数据趋势可视化:**展示视频投稿趋势(每日/每周/每月投稿量)、注册用户趋势(新增用户数)等核心数据,支持7天、30天、90天时间范围切换,动态更新图表。

4.视频审核界面#

  • **视频数据分类展示与分页:**分页展示未通过、待审核、已通过的视频列表,支持切换标签页查看不同状态的数据。
  • **搜索与筛选功能:**按投稿日期范围(如最近7天、自定义区间)和视频标题关键词筛选数据。支持多条件组合查询(如“标题含‘游戏’且投稿时间为2025-05-01至2025-05-10”)。
  • **视频详情:**点击列表项展开详情页,展示视频元数据(如时长、标签)、审核记录、违规项(如涉黄、广告)
  • 审核操作
    • 不通过/下架:需填写原因(必填),并通知用户。
    • 通过:直接更新状态。

5.动态管理界面#

  • 动态数据分页展示:分页展示全站用户发布的动态,默认按时间倒序排列。
  • 动态下架处理:对违规动态执行下架操作(内容不可见但保留记录),填写下架原因并通知用户。
  • 日期范围筛选:按上传日期范围筛选数据。

6.界面#

  • **用户信息分页展示:**分页展示所有注册用户信息。
  • **数据筛选:**按注册时间范围(如最近7天/30天)或按用户状态(正常/禁用)。
  • 搜索功能:支持用户名关键词模糊匹配。
  • **账号禁用:**冻结违规账号填写原因,并实时通知用户并禁用相关功能。

7.管理员列表界面#

  • **管理员信息分页展示:**分页展示所有管理员信息。
  • **数据筛选:**按注册时间范围(如最近7天/30天)或按用户状态(正常/禁用)。
  • 搜索功能:支持用户名关键词模糊匹配。
  • **账号禁用:**冻结违规账号填写原因,冻结账号无法登录。

8.日志一览界面#

  • **分页展示用户端/管理端日志:**分页展示用户端和管理端的操作日志。
  • **时间范围筛选功能:**支持选择日期范围(如最近7天、自定义区间)筛选日志。

(三)自动清除过旧数据#

利用 Task每天凌晨两点自动清除:

  • 半年前的聊天记录
  • 每个用户十五天前的历史记录
  • 单日搜索量小于一百的搜索数据
  • 半年前的日志数据

三、源码#

前后端代码、、sql脚本都在这里。

库中有详细说明,这里不做赘述。

https://github.com/xie480/Yilena-video-web.git


四、最后想说#

刚好历时两个月,这个也终于是完成了。

这单纯是一个练手项目,是一个阶段性的总结。

在项目推进过程中,我经历了诸多技术层面的迭代优化:数据库表结构前后调整了十余个版本,接口也从最初规划的60余个扩展至最终100+。由于课业时间限制,许多设计都留下了优化空间——比如在后期引入Redis缓存时,才发现部分接口设计时未充分考虑缓存键的规范性,导致缓存策略实施效果未达预期,也算是一个教训吧。

代码质量方面,Service层的实现仍存在不少粗糙之处。受限于当前的技术认知水平,我决定暂时保持现状,待能力提升后再进行深度重构。最初设想的也因经验不足改为单体架构,如今项目复杂度已使得服务拆分变得颇具挑战性,这项架构升级只能等有时间了再说……

前端是耗时最久的,有一半原因是因为不熟悉吧,导致最开始开发几个前端页面时的速度非常之缓慢,而且质量也不太行,基本就是纯堆砌的代码,还好后面渐渐熟悉了,也开始写得顺手了。

谨以此项目纪念这段学习旅程,也希望能为同样在技术道路上探索的你带来些许启发。

码文不易,点个赞再走吧


原文链接: Java原创项目:仿b站v1.0(附前后端源码及接口文档) 作者: Yilena

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Java原创项目:仿b站v1.0(附前后端源码及接口文档)
https://blog.csdn.net/2401_88959292/article/details/147873931?spm=1001.2014.3001.5501
作者
Yilena
发布于
2025-05-11
许可协议
CC BY 4.0

部分信息可能已经过时

相关文章 智能推荐
1
记录:Java阶段性项目(拼图小游戏)
杂记 本文详细记录了一个基于Java Swing的拼图小游戏阶段性项目的开发全过程。项目包含登录、注册及游戏三大核心界面,涵盖了GUI组件应用、事件监听(鼠标、键盘、动作、窗口)、图片打乱与移动逻辑、计步器及胜利条件判断等丰富功能。文章不仅分享了密码解密、验证码生成等实用技巧,还介绍了如何通过适配器类简化事件处理,并巧妙融入了作弊功能与小彩蛋,为Java初学者提供了一个兼具趣味性与实战价值的面向对象编程学习范例。
2
带你轻松学习Golang的并发模型
技术笔记 本文深度对比了Go与Java的并发模型,揭示了两者在应对大规模并发时的不同设计哲学。文章详细剖析了Go基于goroutine与channel的轻量级G-P-M调度机制,强调其“通过通信共享内存”的理念;同时回顾了Java基于操作系统线程与共享内存加锁的传统模型,及引入虚拟线程后的演进。通过具体的超时与取消场景代码对比,探讨了两者在控制流、资源认知及场景亲和性上的差异,帮助开发者在不同业务上下文中做出更明智的并发架构选择。
3
带你轻松学习LangChain4j
技术笔记 本文全面介绍了Java生态中的大模型应用开发框架LangChain4j。从其解决的模型调用统一化、Prompt管理规范化等核心痛点出发,详细解析了框架的四层架构与面向抽象、消息优先的设计思想。文章深入讲解了ChatLanguageModel、AiServices等核心模块,剖析了@SystemMessage、@UserMessage等常用注解的驱动机制,并探讨了ChatMemory上下文管理、流式输出及结构化结果解析等高级特性。最后,客观分析了LangChain4j在企业级开发中的优势与当前版本的局限性。
4
记录:基于TCP协议的控制台版网络聊天室
杂记 本文记录了一个基于TCP协议的控制台版网络聊天室的完整开发过程。项目涵盖了用户注册、登录、消息发送与接收以及服务端群发等核心功能。文章详细解析了客户端与服务端的交互逻辑,重点展示了如何利用多线程技术实现消息的并发处理与实时反馈。通过具体的Java代码示例,包括ServerPort、ServerThread、ClientPort及ClientChatRunnable等核心类,直观呈现了网络编程与IO流在实际项目中的应用,为初学者理解TCP通信与多线程编程提供了生动的实践案例。
5
记录:IO流大作业——每日一记
杂记 本文记录了一个基于Java IO流的控制台版"每日一记"大作业的完整实现过程。项目涵盖了日记的添加、修改、删除、导入导出等核心功能,并详细介绍了字节流、字符流、缓冲流、转化流、对象流等各类IO流的特点与应用场景。通过具体的代码示例,展示了如何利用GUI组件(如JFrame、JTextField等)构建用户界面,以及如何通过事件监听器实现用户交互与数据持久化操作,为初学者掌握Java IO流与GUI编程提供了生动的实践案例。

目录

封面
Sample Song
Sample Artist
封面
Sample Song
Sample Artist
0:00 / 0:00