很多校园失物招领场景,常见的问题并不是"没人捡到",而是"信息分散、沟通低效、核验困难"。
今天分享的这套系统,就是围绕这些实际问题设计的一套完整解决方案。
它不是一个简单的"发帖子系统",而是一套面向校园场景的 失物招领与寻物启事平台,支持:
-
学号 / 手机号注册登录
-
用户发布寻物启事、失物招领
-
管理员内容审核
-
智能匹配提醒
-
私密认领申请
-
临时沟通会话
-
上传认领凭证
-
数据大屏统计分析
-
后端 RBAC 权限控制
与普通"帖子列表"不同,这套系统重点做了三件事:
-
结构化地点选择不依赖第三方地图,采用校园点位表 + 级联选择器,支持地点坐标匹配。
-
智能匹配机制新发布内容审核通过后,会自动检索近 7 天的对立类型数据进行匹配,并推送站内提醒。
-
认领闭环流程不是留言完就结束,而是支持认领申请、私密核验、临时沟通、上传凭证、确认归档。
如果你正在做毕业设计、课程设计、Java 全栈项目、校园类信息平台,或者想找一个业务完整、流程闭环清晰的项目,这套系统会比较合适。
一、系统演示
登录页


系统支持账号密码登录与手机号验证码登录,同时提供学号注册、手机号注册两种方式。学号注册时,系统会根据学号中的学院编码自动识别所属学院。
用户发布信息页


用户发布信息时,可选择寻物启事或失物招领,支持结构化地点选择、最多 3 张图片上传,以及图片识别特征自动提取。
认领中心


认领中心集中展示可公开查看的寻物启事和失物招领信息。用户可在详情页私密提交认领申请,申请内容仅发布者与申请者本人可见。
我的发布

"我的发布"页面可查看自己发布内容的完整状态流转,包括待审核、匹配中、待认领、已认领、已找回、已驳回等节点信息。
消息中心

系统内置消息中心,用于接收匹配提醒、审核结果、留言回复等站内消息,避免用户错过关键状态变化。
管理员审核后台


管理员可对用户发布内容进行审核,支持详情查看、审核通过、驳回原因填写,以及用户信息管理。
数据大屏

后台数据大屏支持按时间、学院、物品类型进行筛选,用于展示平台运行情况和失物招领数据分布。
二、系统功能需求
这套系统目前具备的核心功能包括以下几个模块。
1. 用户认证与个人中心
-
支持账号密码登录
-
支持手机号验证码登录
-
支持学号注册、手机号注册
-
学号注册按规则自动识别学院
-
支持头像上传、昵称修改、个人资料维护
-
支持修改密码与二次确认
2. 失物招领 / 寻物启事发布
-
支持发布两类信息:
-
-
寻物启事
-
失物招领
-
-
支持结构化地点选择
-
支持最多 3 张图片上传
-
支持图片识别特征自动提取
-
发布后默认进入待审核状态
3. 智能匹配
-
新发布内容审核通过后自动触发匹配
-
检索近 7 天的对立类型数据
-
-
招领 -> 寻物
-
寻物 -> 招领
-
-
匹配维度:
-
-
物品类型:30 分
-
关键词匹配:40 分
-
时间相近(±24h):15 分
-
地点相近(±500m):15 分
-
-
匹配度大于等于 80 分时自动推送站内信提醒双方
4. 私密认领机制
-
认领申请内容仅发布者和申请者本人可见
-
不同申请者之间互不可见
-
支持发布者审核认领申请
-
支持一键联系
-
支持上传认领凭证
-
支持确认认领并归档
5. 消息与社交
-
匹配提醒消息
-
留言回复通知
-
审核结果通知
-
好友系统
-
收藏功能
-
分享给好友
6. 管理后台
-
用户管理
-
角色管理
-
审核管理
-
公告管理
-
学院管理
-
物品类型管理
-
留言回复
-
数据大屏
7. 权限与安全
-
RBAC 权限控制
-
动态菜单加载
-
自定义权限指令控制按钮显示
-
高风险操作二次确认
-
登录超时处理
-
闲置自动登出
-
多标签页会话同步
三、系统技术栈
前端技术栈
-
框架:Vue 3 + TypeScript
-
UI组件库:Element Plus + 自定义业务组件
-
数据可视化:ECharts(用于后台数据大屏展示)
-
状态管理:Pinia
-
网络请求:Axios(封装统一拦截器)
-
构建工具:Vite
️ 后端技术栈
-
核心框架:Spring Boot 2.7.x (Java)
-
ORM框架:MyBatis-Plus
-
安全认证:Spring Security + JWT (JSON Web Token)
-
权限控制:RBAC 动态权限模型
-
工具类库:Hutool + Lombok
-
AI能力集成:百度AI开放平台接口(图像识别与特征提取)
️ 数据存储与环境
-
数据库:MySQL 8.0+
-
运行环境:JDK 1.8 / 17
-
开发工具:IntelliJ IDEA + VS Code
四、系统部署
1. 环境要求
建议环境如下:
-
JDK 8 或以上
-
Maven 3.8+
-
Node.js 20+
-
MySQL 8.0+
2. 数据库初始化
项目中已提供 SQL 文件,先执行建库建表,再执行初始化数据:
-
backend/src/main/resources/sql/01_smart_find_schema.sql -
backend/src/main/resources/sql/02_smart_find_data.sql
如果是已有库升级,不建议整份重复执行数据 SQL,而应按需要执行对应更新语句。
3. 启动后端
修改后端配置文件:
backend/src/main/resources/application.yml
重点配置:
-
MySQL 地址
-
数据库用户名密码
-
文件上传目录
-
百度图像识别接口配置
启动 SmartFindApplication
4. 启动前端
cd frontend
npm install
npm run dev
默认访问地址:
-
前端:
http://localhost:5173 -
后端:
http://localhost:8080/api
5. 百度图像识别配置
如果要使用"图片识别特征自动提取",需要在后端配置:
app:
baidu:
image-recognition:
enabled: true
api-key: 你的API Key
secret-key: 你的Secret Key
token-url: https://aip.baidubce.com/oauth/2.0/token
advanced-general-url: https://aip.baidubce.com/rest/2.0/image-classify/v2/advanced_general
五、写在最后
如果你还想看更多 Java、Spring Boot、Vue、毕业设计、管理系统实战项目,欢迎持续关注,后
续会继续更新。