# 校园失物招领系统 **Repository Path**: dm_team/Campus-Lost-and-Found-System ## Basic Information - **Project Name**: 校园失物招领系统 - **Description**: 校园失物招领系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-09 - **Last Updated**: 2026-09-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 校园失物招领系统 / Campus Lost and Found System 本系统面向高校校园失物招领场景,覆盖拾获登记、失物报告、线索匹配、认领审核、公告提醒、线下交接、用户信誉和分类字典维护。 ## 项目亮点 - 支持管理员 / 学生双角色演示。 - 支持“失物报告 -> 系统匹配 -> 认领申请 -> 审核通过 -> 线下交接”的完整流程。 - 支持“拾获登记 -> 入库保管 -> 待认领 -> 已归还”的物品流转。 - 提供服务指挥台,展示待审核认领、待复核匹配、超期未领物品等关键指标。 - 支持公告发布与领取提醒,适合论文截图和答辩演示。 - 新增“分类管理”模块,内置 19 个分类分组、182 个业务类别,可在系统运行中继续新增、编辑、停用和删除。 - 分类字典已接入物品类别、校园地点、紧急程度、认领审核结果、公告类型、公告范围、公告状态等下拉项。 ## 技术栈 - 前端:React 18 + Vite 6 + Ant Design 5 + Recharts - 后端:Node.js 18+ + Express 4 - 数据库:SQLite,本项目通过 `better-sqlite3` 自动创建本地数据库文件,不需要单独安装 MySQL - 包管理:npm 9+ ## 目录说明 ```text 05-campus-lost-found-system/ backend/ 后端 Express 服务 src/server.js 主接口服务 src/categorySeed.js 默认分类字典数据 src/categoryService.js 分类字典业务服务 data/ 运行后自动生成 SQLite 数据库,不建议提交到码云 frontend/ 前端 React 项目 src/views/ 页面组件 database/ init.sql 建表脚本 sample_data.sql 演示数据脚本 docs/ 需求、设计、接口、部署、使用说明 start-project.bat Windows 一键启动脚本 ``` ## 环境要求 建议使用以下版本: - Node.js:18.x、20.x 或 22.x - npm:9.x 及以上 - 操作系统:Windows 10/11、macOS 或 Linux - 数据库:SQLite,随项目后端依赖使用,不需要额外安装数据库软件 检查版本: ```bash node -v npm -v ``` ## 启动方式 ### 方式一:Windows 一键启动 在项目根目录执行: ```bash start-project.bat ``` ### 方式二:手动分别启动 启动后端: ```bash cd D:\Ten-Projects\05-campus-lost-found-system\backend npm install npm run dev ``` 启动前端: ```bash cd D:\Ten-Projects\05-campus-lost-found-system\frontend npm install npm run dev ``` 启动后访问: - 前端页面:http://localhost:5177 运行到这里后,浏览器会打开登录页。可直接使用下面账号登录: - 管理员: `lost_admin` / `Pass@123` - 普通用户: `lost_user` / `Pass@123` 建议第一次演示或检查时先使用管理员账号,因为管理员可以看到类别管理、用户管理和完整业务功能。 ## 演示账号 - 管理员:`lost_admin` / `Pass@123` - 普通用户:`lost_user` / `Pass@123` ## 当前核心模块 ### 1. 服务指挥台 - 展示在库招领物品、待匹配失物报告、待审核认领申请、待复核线索数量。 - 展示招领物品分类、认领审核状态、近 7 日交接完成趋势。 - 展示异常提醒,便于答辩时说明管理员的治理视角。 ### 2. 招领大厅 - 支持按类别、状态、关键词筛选招领物品。 - 支持查看物品详情、匹配线索、认领申请和服务日志。 - 学生可提交认领申请。 - 登录用户可发布拾获信息。 ### 3. 我的服务台 - 学生可提交失物报告。 - 查看自己的失物报告、匹配线索、认领申请和公告提醒。 - 失物报告提交后,系统会根据类别、地点、时间和关键特征生成匹配线索。 ### 4. 管理端业务闭环 - 线索匹配中心:管理员确认或忽略系统推荐线索。 - 认领审核与交接:管理员审核认领申请,生成取件码,完成线下交接。 - 公告提醒:管理员发布招领公告、服务提醒和安全提示。 - 用户信誉总览:管理员查看用户信誉分、归还次数、有效认领和账号状态。 ### 5. 分类管理 当前内置 19 个分类分组、182 个类别,包括: - 物品类别 - 校园地点 - 保管位置 - 招领物品状态 - 失物报告状态 - 认领审核状态 - 认领审核结果 - 交接状态 - 线索匹配状态 - 紧急程度 - 公告类型 - 公告范围 - 公告发布状态 - 用户状态 - 认领凭证类型 - 物品特征标签 - 交接方式 - 拾获人类型 - 服务操作类型 管理员登录后进入“分类管理”,可以新增、编辑、停用、删除类别。启用状态的类别会进入相关下拉框。 ## 数据初始化与重置 首次启动后端时,系统会自动执行: - `database/init.sql` - `database/sample_data.sql` 数据库文件会生成在: ```text backend/data/campus-lost-found-system.db ``` 如需恢复初始演示数据,请先关闭后端服务,再删除以下文件后重新启动后端: ```bash del backend\data\campus-lost-found-system.db del backend\data\campus-lost-found-system.db-shm del backend\data\campus-lost-found-system.db-wal ``` macOS / Linux 可使用: ```bash rm -f backend/data/campus-lost-found-system.db* ``` ## 上传码云建议 建议上传: - `backend/src/` - `frontend/src/` - `database/` - `docs/` - `README.md` - `package.json`、`package-lock.json` 不建议上传: - `backend/data/*.db` - `backend/data/*.db-shm` - `backend/data/*.db-wal` - `backend/node_modules/` - `frontend/node_modules/` - `frontend/dist/` 这些文件可以由安装依赖、启动服务或构建命令重新生成。 ## 验证命令 后端分类字典测试: ```bash cd backend node --test test/categoryService.test.js ``` 前端生产构建: ```bash cd frontend npm run build ```