项目定位
UGC 内容社区是一个围绕内容生产、审核分发和用户互动搭建的社区项目。项目地址:https://ugc.flf.one/
这个项目不是单独展示某个播放页,而是把“创作者投稿、后台审核、首页推荐、内容消费、评论互动、通知私聊”串成一条完整链路。普通用户进入首页后可以浏览推荐内容,打开视频后发送弹幕、点赞、收藏、关注创作者,也可以在评论区继续讨论;创作者侧可以保存草稿、上传视频或发布文章,内容提交后再进入审核与分发流程。
核心体验
首页推荐。 首页是内容消费的第一入口,承担推荐 Feed 和内容分发能力。用户可以从推荐流中快速判断内容主题、作者信息、互动热度和是否值得继续观看。推荐链路不是静态列表,后端会围绕全局热门池、个性化 Feed、标签、作者和热度数据组织内容,让文章和视频进入统一的社区分发视图。

视频详情。 视频详情页是互动最集中的页面。除了视频播放本体,还承载弹幕、点赞/点踩、收藏、关注、播放上报、在线人数统计和相关推荐等能力。用户在观看过程中可以进行轻量反馈,也可以把一次观看转化成后续关系链或个人内容资产。

评论互动。 评论区用于沉淀围绕内容的公开讨论。项目支持根评论、子评论、分页展开、热度/时间排序,以及评论点赞、点踩和删除等交互。点赞、评论、收藏、关注等行为也会进入通知体系,反馈给对应的内容作者或互动对象。

私聊沟通。 私聊补充了内容社区里的用户关系链。相比公开评论,私聊更适合一对一沟通,也让关注、互动和用户资料之间形成更完整的闭环。私信链路包含会话列表、历史消息、消息发送、已读/未读、会话隐藏和在线状态查询,并通过 WebSocket 尝试实时推送。

登录注册。 登录注册是社区互动的身份基础。项目支持验证码登录、Token 刷新和退出登录,也支持邮箱魔法链接。未注册邮箱通过魔法链接验证后会自动创建用户,并绑定默认角色;认证完成后由 JWT 和角色权限信息支撑后续前台互动与后台管理入口。

创作与审核
UGC 项目的核心不只是浏览内容,还包括从用户投稿到内容发布的完整闭环:
- 用户登录后保存文章或视频草稿。
- 视频素材通过文件服务上传,支持分片上传、合并、直传和上传记录。
- 视频提交后进入转码流程,生成多清晰度视频和封面,再回写视频状态。
- 文章和视频提交审核后进入审核列表。
- 审核通过后内容变为已发布,并刷新推荐候选和 Feed 版本。
- 审核驳回时记录原因,创作者可以根据结果调整内容。
审核侧支持人工审核记录,也保留 AI 审核状态、审核理由、审核时间和审核日志等字段。后台人员可以在审核端按状态、作者、时间和排序条件查看待处理内容,避免用户投稿直接进入公开分发。
社区能力
围绕内容消费和用户关系,项目还补充了几组基础能力:
- 关注关系:支持关注、取关、关注状态、关注列表、粉丝列表和互关列表。
- 收藏夹:支持创建收藏夹、同步内容所在收藏夹、移动收藏条目和分页查看收藏内容。
- 浏览历史:支持按类型查看、搜索、删除单条记录和清空记录。
- 站内通知:点赞、收藏、评论、关注等互动会形成通知,并支持未读数、标记已读和删除。
- 全局搜索:支持文章、视频、题目和用户的综合搜索,并可按最新、播放、弹幕、收藏等维度排序。
- 标签建议:投稿和内容筛选时可以使用标签自动补全,帮助内容进入更稳定的分类和推荐链路。
这些能力把一次内容消费继续延伸到关系沉淀、个人内容资产和后续消息触达里,让社区不只停留在“看完即走”的播放场景。
系统支撑
这个项目后端按业务域拆成多个服务模块:
draft-auth:登录、邮箱魔法链接、Token 签发和认证入口。draft-user:用户资料、私信会话、聊天消息、已读未读和在线状态查询。draft-file:文件上传、分片合并、视频转码、封面生成和对象存储。draft-community:文章、视频、Feed、评论、弹幕、收藏、关注、通知、搜索和审核。draft-rbac:用户角色、菜单权限和后台管理权限基础。draft-gateway:统一路由、JWT 校验、用户与权限请求头透传。draft-websocket:用户连接管理、在线状态、点对点消息推送。
这些模块共同支撑了一个 UGC 社区从用户注册登录到创作者投稿,再到后台审核发布、首页推荐分发、用户互动讨论和私聊沟通的完整产品链路。相比单纯的视频播放页面,这个项目更关注内容、用户和互动之间的关系,投稿、审核、推荐、观看、评论、关注、收藏、通知和私聊组合起来才是社区产品的基本闭环。
