Joo × PICFLOW

Joo 是一个基于 PICFLOW 构建的全栈图片分享社区平台,采用瀑布流布局,为用户提供优雅的图片浏览和分享体验。

核心特性

瀑布流首页

瀑布流首页

首页采用自适应瀑布流(Masonry)布局,图片卡片高度根据原始比例自动计算,充分利用屏幕空间。支持明暗双主题切换,CSS 变量驱动,切换无闪烁。

智能推荐引擎 v3.0

PICFLOW 内置六因子评分推荐算法:

  • 标签匹配(权重 35%):用户偏好标签与图片标签的交集
  • 标签权重(权重 15%):偏好标签的累积权重
  • 上传者偏好(权重 15%):用户对特定上传者的偏好
  • 协同过滤(权重 15%):相似用户的收藏
  • 新鲜度(权重 10%):发布时间衰减
  • 热度(权重 10%):点赞 ×2 + 浏览 ×0.5

系统从四个来源收集候选图片(标签匹配、上传者偏好、协同过滤、热门兜底),进行评分排序后,再通过多样性过滤器确保不会过度集中单一分类。

多云存储支持

一套统一的存储抽象层,支持三种后端无缝切换:

后端 适用场景
本地存储 小规模 / 个人部署
阿里云 OSS 生产环境,CDN 加速
腾讯云 COS 生产环境,CDN 加速

用户可独立选择偏好的存储后端,图片命名采用 {timestamp}_{16-hex}.{ext} 格式。

AI 内容审核

支持接入多种 AI 服务进行图片内容安全检测:

  • OpenAI GPT-4 Vision
  • 阿里云内容安全 API
  • 腾讯云图片审核

定时任务每小时自动扫描新上传图片,违规内容自动软删除,累计违规自动封禁。

RESTful API

提供 18 个 API 端点,Bearer Token 鉴权,覆盖认证、用户、图片、互动、发现、版本管理等全部功能,可用于构建移动端和第三方客户端。

管理后台

25+ 个功能页面的管理面板,涵盖用户管理、图片管理、标签管理、回收站、推荐引擎测试、内容审核、数据分析、操作日志、站点设置、公告管理、邮件管理、版本管理等。

技术架构

系统架构

技术栈:PHP 8.0+ / MySQL 8.0 / PHPMailer / uni-app (Vue 3)

数据库:13 张表(users, categories, images, image_tags, likes, browse_history, user_tag_prefs, user_uploader_prefs, email_verifications, change_logs, announcements, site_settings, app_versions),全部 InnoDB + utf8mb4。

安全特性

  • bcrypt 密码哈希
  • CSRF Token 防护
  • PDO 参数化查询
  • 登录频率限制(5 次/IP/5分钟)
  • 洪水攻击自动封禁
  • 图片 MIME + 扩展名双重校验
  • API Token SHA-256 哈希存储
  • 软删除 + 回收站机制

项目地址

完整文档:Joo Wiki

Updated:

📝 本文由AI生成