基于springboot+vue+微信小程序的宠物领养系统
基于springboot+vue+微信小程序的宠物领养系统
一、介绍
本项目利用SpringBoot、Vue和微信小程序技术,构建了一个宠物领养系统。
本系统的设计分为两个层面,分别为管理层面与用户层面,也就是管理者与用户,管理权限与用户权限是不同的,具体角色分类与所具权限如下:
- 管理者:能够通过账户密码登录管理者界面,管理员有个人信息、修改密码、用户管理、公告管理、宠物管理、领养管理和社区管理功能。
- 用户:能够通过注册登录查看宠物信息、对于自己喜欢的宠物,可以申请领养。用户可以在社区发帖以及跟帖、且拥有公告查看、个人信息编辑、修改密码、参与用户调研、查看我的领养申请以及查看以及添加个人宠物的功能,且可以维护个人宠物的成长记录。
二、软件架构
功能架构:
技术栈:
- 后端:Java、SpringBoot、Mybaits Plus ;
- 前端:vue3、element-plus(https://element-plus.org/zh-CN/component/overview.html)、echarts;
- 微信小程序:vant(https://vant-ui.github.io/vant-weapp/#/button)
- 数据库: MySql
三、系统功能
用户功能需求
(1)注册功能
用户在小程序上进行账号注册。首先检查用户名和邮箱是否存在,如不存在即可进行注册;验证用户实名身分是否成年,只有满足身份证年龄18周岁以上的用户才可注册;注册成功后,将用户输入的密码进行MD5加密,注册成功后提示注册成功,并将用户信息保存到数据库中。
(2)登录功能
使用宠物领养系统前是需要用户登录个人账号。用户使用注册的账号登录小程序。
(3)首页
用户登录小程序后,首先可以看待宠物列表,可以浏览系统发布的宠物信息。(包括图片、视频、详细介绍),点击详情可以查看宠物详情,包含宠物基本信息、详情、审核信息和成长记录等信息。对于自己感兴趣的宠物,可以点击申请领养进行申请(申请领养前必须先完成用户信息调研)。
点击首页的“推荐”按钮,可以进入推荐列表:系统会根据用户调研信息的喜好结果,个性化推荐心仪的宠物。
(4)社区
用户通过申请领养到宠物后还可以在平台上实时记录宠物成长信息和在宠物社区进行发帖,与其他用户交流心得。还可以对他人发布的信息进行点赞、评论等操作。该部分功能分为晒宠物、求宠物、找领养等模块,用户发布的时候可以选择模块标签后进行发布。
(5)公告
用户可以查看管理员发布的系统公告
(6)个人信息编辑
用户在这里维护个人信息。
(7)修改密码
用户可以定期在这里修改密码,确保账号的安全性。
(8)用户调研
用户在这里参与用户调研,填写调查问卷后,系统会给用户推荐喜欢的宠物,用户也可以对自己感兴趣的宠物申请领养。
(9)我的领养申请
用户在这里查看自己的领养申请记录,分为全部、已申请、审核通过、审核未通过、已收货和已取消几类数据。
(10)我的宠物
首先,用户可以在该模块添加自己的宠物,添加后可以维护宠物的成长记录,该模块的数据管理员不可见,仅宠物主自己可看。如果用户想转让自己的宠物,点击转让按钮即可转让,转让后宠物会进入管理员界面,由管理员进行审核与发布。对于用户领养且已收货的宠物、点击领养tag按钮,即可查看宠物信息。
管理者功能需求
(1)登录
管理员使用系统,首先要登入系统。
(2)个人信息
管理员在这里维护个人信息。
(3)首页
首页是对平台数据的统计页面,这里使用echarts图对数据进行分析展示,管理员可以清晰的看到平台相关数据分析。
(4)修改密码
管理员可以定期在这里修改密码,确保账号的安全性。
(5)用户管理
管理者可以进入用户管理页面,可以看到目前所注册的用户相关信息,通过姓名,手机账号进行搜索,还可以对用户进行如下操作:
a)新增:点击新增按钮,输入用户信息,可添加新用户
b)搜索:输入用户名字和手机号码,点击搜索即可查询用户信息
c)编辑:编辑用户信息
d)重置密码:点击重置密码,可重置该用户密码
e)启用/停用:对用户账号状态进行修改,被停用的用户无法登录系统
f)删除:删除该账号
(6)公告管理
管理者进入公告管理页面,进行新增、修改、删除、停/启用以及查看详情等操作。
(7)宠物管理
管理者进入宠物管理页面,即可看到平台所有宠物列表,包含管理员添加的以及用户转让的宠物,且可以进行新增、查看详情、修改、删除、审核、启/停用、以及维护成长记录等操作。
(8)领养管理
管理员进入领养管理页面,可以看到用户所有的申请领养记录,可以对记录进行审核操作,且可以在这里查看宠物详情和领养详情。
(9)社区管理
管理宠物社区的帖子和评论,可以对违规信息进行删除操作。
四、安装教程
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并执行项目的sql文件
- 使用IDEA/Eclipse导入项目,若为maven项目请选择maven,等待依赖下载完成
- 修改application.yml里面的数据库配置以及文件下载地址等配置,然后运行项目
- (管理端前端)在编译器中打开terminal,进入pet-web目录下,执行npm install 依赖下载完成后执行 npm run dev,执行成功后会显示访问地址
- (微信小程序)在微信开发者工具中打开pet-mini代码
五、工程目录结构
|house-second|-- pet-server 后端目录接口|-- pet-web 管理端前端|-- pet-web 用户端(微信小程序)
六、表结构
表名 | 说明 | 功能 |
---|---|---|
tbl_file | 文件信息表 | 存储文件信息 |
tbl_user | 用户信息表 | 存储系统用户信息 |
tbl_user_survey | 用户调研信息表 | 保存用户调研信息 |
tbl_notice | 公告信息表 | 存储公告信息 |
tb_pet_user | 个人宠物信息表 | 存储用户个人宠物基础信息 |
tb_pet | 宠物信息表 | 存储宠物库宠物基本信息 |
tb_pet_adopt | 宠物领养信息表 | 存储领养信息 |
tb_pet_record | 宠物成长记录表 | 存储宠物成长记录信息 |
tb_community | 社区信息表 | 存储社区帖子信息 |
tb_community_collect | 社区点赞表 | 存储社区帖子点赞和收藏信息 |
tb_community_comment | 社区评论表 | 存储社区帖子评论信息 |
七、其它
微信小程序官方文档:https://developers.weixin.qq.com/miniprogram/dev/component/picker-view-column.html
vat文档:https://vant-ui.github.io/vant-weapp/#/button
源码地址:https://gitee.com/ymz-001/j-pet
相关文章:

基于springboot+vue+微信小程序的宠物领养系统
基于springbootvue微信小程序的宠物领养系统 一、介绍 本项目利用SpringBoot、Vue和微信小程序技术,构建了一个宠物领养系统。 本系统的设计分为两个层面,分别为管理层面与用户层面,也就是管理者与用户,管理权限与用户权限是不…...
如何使用策略模式并让spring管理
1、策略模式公共接口类 BankFileStrategy public interface BankFileStrategy {String getBankFile(String bankType) throws Exception; } 2、策略模式业务实现类 Slf4j Component public class ConcreteStrategy implements BankFileStrategy {Overridepublic String ge…...
react中hooks之useRef 用法总结
1. 基本概念 useRef 是 React 的一个 Hook,返回一个可变的 ref 对象,其 .current 属性被初始化为传入的参数。这个对象在组件的整个生命周期内保持不变。 2. 主要用途和特性 2.1 获取 DOM 元素实例 function TextInputWithFocusButton() {const inpu…...

使用 Docker 部署 Java 项目(通俗易懂)
目录 1、下载与配置 Docker 1.1 docker下载(这里使用的是Ubuntu,Centos命令可能有不同) 1.2 配置 Docker 代理对象 2、打包当前 Java 项目 3、进行编写 DockerFile,并将对应文件传输到 Linux 中 3.1 编写 dockerfile 文件 …...
如何在Ubuntu上安装和配置Git
版本控制系统(VCS)是软件开发过程中不可或缺的工具之一,它帮助开发者跟踪代码变更、协作开发以及管理不同版本的项目。Git作为当前最流行的分布式版本控制系统,因其高效性和灵活性而广受青睐。本文将指导你如何在Ubuntu操作系统上…...

FPGA 21 ,深入理解 Verilog 中的基数,以及二进制数与十进制数之间的关系( Verilog中的基数 )
目录 前言 一. 基数基础 1.1 基数介绍 2.1 基数符号 3.1 二进制数 二. 二进制与十进制数 三. 二进制数 3.1 定义寄存器类型变量 3.2 定义线网类型变量 3.3 赋值操作 3.4 解析二进制数为十进制数 四. 代码示例 五. 注意事项 六. 更多操作 前言 在Verilog中&#…...
【redis】redis-cli命令行工具的使用
redis-cli命令行工具是一个功能强大的Redis客户端,它允许用户与Redis数据库进行交互和管理。 以下是一些常用参数的使用说明: 基本连接参数 -h, --host <hostname>:指定要连接的Redis服务器的主机名或IP地址。如果未指定,…...

使用Matplotlib显示中文的方法
1 问题提出 使用图1所示的代码进行matplotlib绘图时,因为其默认不支持中文,此时无法显示正确内容,如图2所示。 图1 matplotlib绘图绘图代码 图2 matplotlib无法显示中文 2 问题解决 2.1 设置全局字体 在图1所示的代码中,第13…...

SQL Server2022详细安装教程
1. 打开SQL Server官网:SQL Server 下载 | Microsoft 2. 选择Developer版 3. 下载好安装包,打开,选择自定义 4. 选择下载位置,最好不要在C盘即主磁盘即可。等待下载 5. 下载成功之后会弹出这个框 6. 点击“安装”&#…...

家里温度随心控,假期出行更舒适~
春节假期马上到来啦!这是放松身心、陪伴家人的最佳时机~ 但旅途结束的温差变化、空气质量问题是否让你有些担忧呢? 别担心!有了约克VRF中央空调,让你的假期更加舒心无忧~ 清新空气,自在出游…...
压力测试详解
压力测试 压力测试是一种软件测试,用于验证软件应用程序的稳定性和可靠性。压力测试的目标是在极其沉重的负载条件下测量软件的健壮性和错误处理能力,并确保软件在危急情况下不会崩溃。它甚至可以测试超出正常工作点的测试,并评估软件在极端…...

从epoll事件的视角探讨TCP:三次握手、四次挥手、应用层与传输层之间的联系
目录 一、应用层与TCP之间的联系 二、 当通信双方中的一方如客户端主动断开连接时,仅是在客户端的视角下连接已经断开,在服务端的眼中,连接依然存在,为什么?——触发EPOLLRDHUP事件:对端关闭连接或停止写…...

Redis复制(replica)
Redis主从复制 [Redis主从复制](replica)是一个多Redis实例进行数据同步的过程,其中一个实例是主实例(Master),其他实例是从实例(Slave)。主实例负责处理命令请求,而从实…...

[云讷科技] 用于软件验证的仿真环境
我们使用Pursuit自动驾驶仪为各种场景设计仿真环境,以便用户可以在模拟环境中直接验证他们的软件,无需现场测试。该环境基于Gazebo引擎。 1. 工作区目录 模拟环境的工作区位于提供的U盘中的~/pursuit_space/sitl_space_pursuit中。用户可以按照用户手册…...
使用 Vite 和 Vue 框架创建组件库
在前端开发中,组件化开发已成为一种高效、可维护的方式。通过创建组件库,不仅可以提高代码复用率,还能方便地在不同项目之间共享组件。本文将详细介绍如何使用 Vite 和 Vue 框架创建一个组件库,并将其导出供其他项目使用。为保持一…...
【数据结构学习笔记】19:跳表(Skip List)
介绍 跳表是一个能在 O ( n l o g n ) O(nlogn) O(nlogn)时间完成查找、插入、删除的数据结构,相比于树形结构优点就是很好写(所以也用于实现Redis ZSet)。其核心思想就是维护一个元素有序的,能随机提升索引层数的链表。最下面一…...
【8】深入理解 Go 语言中的协程-从基础到高级应用
文章目录 一、引言 🌟二、协程基础概念 🧐(一)什么是协程(二)协程与线程、进程的区别三、协程的创建与启动 🚀(一)使用 go 关键字创建协程(二)简单…...

深入理解 ECMAScript 2024 新特性:字符串 isWellFormed 方法
ECMAScript 2024 引入了一个新的字符串实例方法:String.prototype.isWellFormed。这一新增功能是为了帮助开发者更容易地验证字符串是否为有效的 Unicode 文本。本文将详细介绍这一方法的使用场景、实现原理及其在实际应用中的价值。 String.prototype.isWellFormed…...
算法分析与设计之贪心算法
文章目录 前言一、Greedy Algorithms1.1 贪心选择性质1.2 最优子结构性质1.3 正确性证明 二、典型例题2.1 Interval Scheduling间隔调度2.2 Interval Partitioning最少间教室排课2.3 Selecting Breakpoints选择加油站停靠点2.4 硬币找零2.5 Scheduling to Minimizing Lateness2…...

Centos 宝塔安装
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh 安装成功界面 宝塔说明文档 https://www.bt.cn/admin/servers#wcu 或者可以注册宝塔账号 1 快速部署 安装docker 之后 2 需要在usr/bin下下载do…...

Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...

论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...

java高级——高阶函数、如何定义一个函数式接口类似stream流的filter
java高级——高阶函数、stream流 前情提要文章介绍一、函数伊始1.1 合格的函数1.2 有形的函数2. 函数对象2.1 函数对象——行为参数化2.2 函数对象——延迟执行 二、 函数编程语法1. 函数对象表现形式1.1 Lambda表达式1.2 方法引用(Math::max) 2 函数接口…...
写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里
写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里 脚本1 #!/bin/bash #定义变量 ip10.1.1 #循环去ping主机的IP for ((i1;i<10;i)) doping -c1 $ip.$i &>/dev/null[ $? -eq 0 ] &&am…...