Gitee项目地址:https://gitee.com/qinl1024/find-item
1. 项目概述
寻物网站(Find Item)是一个基于 Vue3 + Spring Boot 的失物招领平台,旨在帮助校园、社区或企业内部的失物招领管理。该项目采用前后端分离架构,提供完整的用户前端和管理后台,支持失物发布、寻物启事、物品匹配、留言互动等核心功能。
1.1 项目特点
·开源免费:MIT 许可证,可自由使用和二次开发
·前后端分离:Vue3 + Spring Boot 架构,易于维护和扩展
·响应式设计:支持 PC 端管理后台和移动端 H5 页面
·安全可靠:JWT 认证 + Spring Security 双重保障
·功能完整:涵盖失物招领全流程管理
·易于部署:标准化的项目结构,快速上手
2. 技术栈
2.1 前端技术
| 技术 | 说明 |
| Vue 3 | 新一代 Vue.js 框架,Composition API |
| Vite | 下一代前端构建工具,极速开发服务器启动 |
| Element Plus | 基于 Vue3 的组件库 |
| Vue Router | Vue.js 官方路由管理器 |
| Pinia | Vue.js 新一代状态管理库 |
| Axios | 基于 Promise 的 HTTP 客户端 |
2.2 后端技术
| 技术 | 说明 |
| Spring Boot 2.7.18 | 快速应用开发框架 |
| MyBatis Plus | 强大的 ORM 持久层框架 |
| Spring Security | 安全认证框架 |
| JWT | 无状态身份认证 |
| MySQL 8.0 | 关系型数据库 |
| Redis | 缓存数据库 |
| Hutool | Java 工具类库 |
| Lombok | 简化 Java 代码 |
3. 项目结构
项目采用模块化设计,各模块职责清晰:
find-item/
├── find-item-vue # 管理后台前端 (Vue3 + Element Plus)
├── find-item-h5 # 移动端 H5 页面 (Vue3 + Vant 4)
├── find-item-web # 后端项目 (Spring Boot + MyBatis Plus)
└── find-item-sql # 数据库脚本
3.1 模块说明
·find-item-vue:管理后台前端,提供完整的后台管理界面,包括物品管理、用户管理、系统配置等功能
·find-item-h5:移动端 H5 页面,支持手机浏览器访问,提供用户端功能
·find-item-web:后端服务项目,提供 RESTful API 接口,处理业务逻辑和数据持久化
·find-item-sql:数据库初始化脚本,包含表结构定义和基础数据
4. 功能模块
4.1 前台用户功能
·首页展示失物/寻物信息列表
·支持关键词搜索和条件筛选
·用户注册与登录(支持 JWT 认证)
·发布失物招领信息
·发布寻物启事
·查看物品详细信息
·在线留言互动
·查看系统通知和反馈回复
4.2 后台管理功能
·控制台概览(统计数据展示)
·物品信息管理(增删改查)
·用户管理(启用/禁用、角色分配)
·角色权限管理
·菜单权限配置
·系统通知管理
·用户反馈处理
·操作日志查看
5. API 接口
项目提供 RESTful 风格的 API 接口:
| 接口 | 方法 | 描述 |
| /api/auth/login | POST | 用户登录 |
| /api/auth/register | POST | 用户注册 |
| /api/items/list | GET | 获取物品列表 |
| /api/items/{id} | GET | 获取物品详情 |
| /api/items | POST | 发布物品 |
| /api/items/{id} | PUT | 更新物品 |
| /api/items/{id} | DELETE | 删除物品 |
| /api/items/hot | GET | 获取热门物品 |
| /api/comments | GET | 获取留言列表 |
| /api/comments | POST | 发布留言 |
| /admin/users/list | GET | 获取用户列表 |
| /admin/users/{id} | PUT | 更新用户信息 |
| /admin/users/{id}/status | POST | 切换用户状态 |
| /admin/roles | GET | 获取角色列表 |
| /admin/menus | GET | 获取菜单列表 |
6. 数据库设计
主要数据库表:
| 表名 | 描述 |
| users | 用户表 - 存储用户账号、角色等信息 |
| lost_items | 失物招领物品表 - 存储失物/寻物信息 |
| comments | 留言表 - 存储用户留言评论 |
| roles | 角色表 - 存储系统角色信息 |
| menus | 菜单表 - 存储系统菜单权限 |
| role_menu | 角色菜单关联表 |
| notifications | 系统通知表 |
| user_notification | 用户通知关联表 |
| feedback | 用户反馈表 |
| operation_log | 操作日志表 |
| system_config | 系统配置表 |
| files | 文件上传记录表 |
7. 快速开始
7.1 环境要求
·JDK 8+
·Maven 3.6+
·Node.js 16+
·MySQL 8.0+
·Redis (可选)
7.2 安装步骤
步骤 1:数据库初始化
mysql -u root -p < find-item-sql/find-item-database.sql
步骤 2:启动后端
cd find-item-web
mvn spring-boot:run
步骤 3:启动前端
cd find-item-vue
npm install
npm run dev
访问地址:http://localhost:3000
默认管理员账号:admin / admin123
8. 开源协议
本项目采用 MIT 开源协议。MIT 协议是最宽松的开源协议之一,允许用户自由使用、复制、修改、合并、发布、分发、再授权和/或销售本软件的副本。
9. 项目亮点
·完整的业务闭环:从失物发布到认领,全流程覆盖
·权限体系完善:基于 RBAC 的权限管理,支持角色和菜单权限
·用户体验优秀:响应式界面设计,操作流畅
·代码质量高:遵循编码规范,注释清晰
·文档齐全:提供详细的 README 和启动指南
·易于扩展:模块化设计,便于功能扩展
9. 系统截图
PC端首页及管理
草原编程
邀请你前往腾讯公益一起捐
让困境学生安心读书
一起捐
收录于优选开源项目
阅读 4
开源项目部署教程
