基于fastapi+vue的宠物领养管理系统
一、项目简介
宠物领养管理系统是一套面向普通用户、志愿者和管理员的全栈公益平台。后端采用 FastAPI、SQLAlchemy、Pydantic、MySQL、JWT 和 openpyxl,前端采用 Vue 3;系统覆盖宠物信息、领养申请、流浪宠物救助、寻宠启示、论坛、捐赠、公益活动、救助站、科普文章和通知等业务。
后端 API 实际按认证、用户、宠物、领养、流浪报告、救助站、论坛、捐赠、活动、文章、通知和上传拆分;前端包含用户首页、宠物列表与详情、领养申请、论坛、走失宠物、救助地图、捐赠、活动、文章、通知和个人中心,以及管理员看板、宠物、用户、领养、救助审核、论坛审核、捐赠、活动、救助站和文章管理页面。
二、系统功能
1.1 用户端功能
注册登录与个人资料
用户可注册普通用户或志愿者身份并登录系统。FastAPI 后端使用 JWT 完成令牌校验,用户在个人中心维护资料、密码及个人领养、救助、捐赠、发帖等操作记录。
宠物浏览与领养申请
用户可在PetList.vue浏览待领养宠物,按物种、品种或状态等条件查看信息;进入PetDetail.vue后可了解宠物详情并提交领养申请。MyApplications.vue用于查看个人申请和审核进度,申请结果由后台审核后反馈。
流浪宠物救助与寻宠信息
用户可在StrayReports.vue发布或浏览流浪宠物救助报告,志愿者可参与救助进度跟进。LostPets.vue用于发布和查看寻宠启示,用户可提供线索,发布人可在宠物找回后更新状态。
论坛、文章与通知互动
用户可在Forum.vue、ForumPost.vue发帖、评论、点赞或举报内容;可阅读科普文章、文章详情和平台通知。通知模块使领养审核、活动或平台消息能够及时反馈给用户。
公益捐赠、活动与救助站查询
用户可在Donations.vue进行资金或物资捐赠,在Activities.vue查看并报名公益活动;RescueMap.vue和救助站模块展示救助站、喂养点及其位置相关信息。
1.2 管理员端功能
运营数据看板
Dashboard.vue展示用户数量、待领养宠物、待审核申请、捐赠等核心数据,并可呈现领养趋势和宠物分布等统计,为公益平台日常运营提供参考。
用户、宠物与领养审核管理
管理员可在Users.vue、Pets.vue、Adoptions.vue管理用户账号、宠物档案和领养申请。申请审核可执行通过或驳回,并将结果通知申请人;相关记录支持按业务需要导出。
救助、寻宠与论坛内容审核
管理员可在StrayReview.vue审核流浪宠物救助报告与寻宠信息,在ForumReview.vue查看论坛帖子和举报内容,执行恢复、隐藏或删除等处理。
捐赠、活动、救助站与文章管理
管理员可维护捐赠状态、公益活动及报名人数、救助站信息、科普文章和平台公告,使用户端对应内容持续更新。
三、技术栈
| 层级 | 技术 | 说明 |
|---|---|---|
| 后端 | Python、FastAPI、Pydantic | 异步 API 与请求校验 |
| 数据访问 | SQLAlchemy、MySQL 8.0 | 领养、救助、内容和捐赠数据存储 |
| 身份认证 | JWT(python-jose)、passlib、bcrypt | 令牌认证与密码哈希 |
| 文件与导出 | python-multipart、openpyxl | 图片资料上传与 Excel 导出 |
| 前端 | Vue 3 | 用户端和管理端响应式页面 |
四、项目结构
c171/ ├── backend/ │ ├── api/ │ │ ├── auth.py、users.py、pets.py# 认证、用户与宠物接口│ │ ├── adoptions.py# 领养申请接口│ │ ├── stray_reports.py# 流浪宠物救助接口│ │ ├── rescue_stations.py# 救助站接口│ │ ├── forum.py、articles.py# 论坛与文章接口│ │ ├── donations.py、activities.py# 捐赠与活动接口│ │ ├── notifications.py、upload.py# 通知和文件上传│ │ └── admin.py# 后台管理接口│ ├── main.py# FastAPI 启动入口│ ├── .env# 环境配置│ └── requirements.txt ├── frontend/src/ │ ├── views/# 用户端业务页面│ └── views/admin/# 后台管理与审核页面└── README.md五、环境要求
- Python 3.9+
- MySQL 8.0
- Node.js 16+
- pip、npm
六、数据库初始化
根据backend/.env中的数据源信息创建数据库并配置本机连接;项目运行所需的初始化数据请以实际数据库脚本或应用初始化逻辑为准。请勿将生产环境密钥直接写入源码。
七、后端启动
cdbackend pipinstall-rrequirements.txt python main.py八、前端启动
cdfrontendnpminstallnpmrun dev九、默认账号
项目未提供可确认的默认账号,请以数据库初始化数据为准。
十、业务流程说明
9.1 宠物领养审核流程
用户浏览宠物详情后提交领养申请,系统将申请与用户、宠物信息关联保存。管理员在领养管理中查看申请,填写审核意见并执行通过或驳回;审核结果通过通知模块反馈给申请人,用户在“我的申请”中持续查看状态。
9.2 公益救助与内容审核流程
用户或志愿者发布救助、寻宠或论坛内容后,相关记录进入后台审核或管理范围。管理员审核通过后,内容在用户端展示;对于举报、无效或不当内容,管理员可隐藏、删除或调整状态,保障公益信息和社区互动规范运行。
十一、交付内容
- FastAPI 后端与 Vue 前端完整源码。
- 项目依赖、环境配置模板及数据库初始化相关文件。
- 项目说明文档,包含功能说明、环境、初始化和启动步骤。
本项目为个人原创,结构清晰,功能完整,适合课程设计、毕业设计和项目演示使用。有定制化需求可以评论或私信作者。
个人网址:https://michael-jay.pages.dev/