同学朋友聚会等存在老照片,珍贵视频散落在各人手机、现场照片无法集中展示、难以营造共同回忆氛围"的痛点。传统做法要么拉群传照片(杂乱无序、有隐私顾虑),要么专人收集(耗时耗力、现场冷场)。本项目定位为同学朋友聚会的移动端怀旧相册,通过扫码免登录上传老照片与现场照片,配合现场大屏轮播和背景音乐,把零散的记忆集中呈现,让参会同学即时分享、即时共鸣,降低聚会照片的收集与展示门槛。
点击空白处退出提示
同学朋友聚会等存在老照片,珍贵视频散落在各人手机、现场照片无法集中展示、难以营造共同回忆氛围"的痛点。传统做法要么拉群传照片(杂乱无序、有隐私顾虑),要么专人收集(耗时耗力、现场冷场)。本项目定位为同学朋友聚会的移动端怀旧相册,通过扫码免登录上传老照片与现场照片,配合现场大屏轮播和背景音乐,把零散的记忆集中呈现,让参会同学即时分享、即时共鸣,降低聚会照片的收集与展示门槛。
项目分为用户端 H5 和管理后台两部分。
用户端 H5:
班级暗号验证:进入前随机抽答本班专属问题,答对签发 HMAC 签名 token,兼顾趣味性与门槛
照片/视频浏览:按"老照片 / 聚会现场"分类瀑布流展示,支持点赞、评论
评论系统:支持回复引用(类微信"回复 @某人"样式)与原生 emoji 表情面板
极速上传:浏览器端图片压缩(最大边 1080px、质量 0.75、GIF 保留动画、压缩失败自动回退),视频限 100MB
现场大屏(幻灯片模式):照片自动轮播 + 背景音乐,通过 SSE 实时接收新上传照片即时上屏,附扫码二维码引导上传
管理后台:
素材管理:分页列表、分类筛选、删除素材(含磁盘文件)
评论管理:关键词搜索、分页、删除评论
账号管理:登录鉴权、修改密码
技术栈:前端 Vue 3 + Vite + Vue Router + Pinia + Vant 4;后端 Java 21 + Spring Boot 4 + MyBatis-Plus;数据库 MySQL 8(utf8mb4);实时推送 SSE;部署 Nginx + HTTPS + 启动脚本。
负责任务:独立完成前后端全栈开发与生产环境部署,包括需求规划、产品文档、数据库设计、REST API、前端页面与交互、大屏轮播、评论回复/表情、配置加密、Nginx 与启动脚本编写、域名申请、云服务器部署及项目上线、后续系统升级维护等完整流程。
实现亮点与难点:
SSE 长连接实时推送 + Nginx proxy_buffering off 保障大屏即时性
Jasypt 对数据库密码、token 密钥加密,密钥经环境变量注入,敏感信息不入库、不入 git
图片前端压缩多分支容错(小图跳过、GIF 不压、压完更大则保留原图、失败回退)
浏览器视频自动播放策略处理(静音兜底 + 主动 play/pause 控制),解决移动端二次打开不播放问
点赞采用数据库层原子递增(likes_count = likes_count + 1),避免"读-改-写"并发覆盖
评论数批量统计(GROUP BY media_id),消除列表页 N+1 查询










评论