摘 要:为了设计并实现具有宠物产品商城和问答社区功能的APP,通过比较国内外宠物行业电商发展现状和国内已有的宠物电商平台的优缺点,分析可行性和需求,从而进行详细设计和实现。该APP后台采用SSM框架,数据库使用MySQL。该APP实现了用户注册与登录、搜索商品、提交订单、发表和回答问题等功能。该APP的后台管理系统实现了管理员登录、管理用户、管理商品分类、管理商品、管理仓库、管理问答社区和订单处理等功能。该APP的设计与实现为广大养宠人提供了购物与交流的线上平台,满足养宠人的消费需求和交流需求,促进养宠人科学养宠。同时该APP能给不同年龄段的养宠人均带来友好的使用感受。该宠物电商社区APP的开发对今后有类似开发流程的电商社区APP的设计具有一定的参考价值。
关键词:宠物电商;问答社区;APP
在独居人数增多、人口老龄化加剧、城镇化率提高的社会环境下[1],越来越多人养宠物,重视宠物的陪伴和感情作用。与此同时,国内养宠政策的逐步完善推动了宠物行业的规范化发展[2],为养宠人和宠物提供较为友好的环境。
宠物在家庭中的角色和养宠人的养宠观念都发生了变化。依据2021年中国宠物行业白皮书,将近九成的养宠人给予宠物拟人化的角色。85.10%的养宠人视宠物为家人,8.5%的养宠人视宠物为朋友[3]26。从宠物主粮到宠物护理、再到宠物玩具,新时代的养宠人追求用更加科学、健康和快乐的方式养宠[4-5]。宠物家庭地位的提高使养宠人愿意增加在宠物上的消费支出[6]。2021年中国宠物行业白皮书显示,单只狗和单只猫的年均消费都有增长[3]10。
在国内电子商务渗透各行各业的背景下,宠物电商行业也在高速发展,养宠人更喜欢在电商平台中购买宠物产品。据2021年中国宠物行业白皮书,养宠人主要通过电商平台、宠物诊所、宠物店渠道购买宠物主粮偏好度分别为74.50%、25.8%和24.4%[3]115。
美国宠物市场以线下零售为主[7],如美国最大的宠物综合零售连锁店PetSmart。电商平台发展较快[8-9],如综合类电商平台Amazon和垂直类宠物电商平台Chewy。美国宠物产品协会发布的2021-2022年全国宠物主人调查数据显示,养宠人在网上购物的比例几乎增加了20%,从72%增加到86%。欧洲、日本地区的养宠人以线下商超消费为主,电商平台消费较为稳定增长,但占比相对较小[10-11]。
国内养宠人最主要通过电商平台购买宠物产品。因为国内宠物市场的发展历史比较短,线下零售渠道还没有成熟。而国内的电子商务行业发达,居民对网上购物习以为常[12]。同时电商平台的多样化为养宠人提供了更多的线上购买选择。
目前国内宠物行业涉及的电商平台主要有以下三类:综合类电商平台如京东、淘宝上的宠物品牌自营和个人店铺;内容类平台如抖音和小红书;垂直类宠物电商平台如波奇宠物APP和E宠APP等。据2021年中国宠物行业白皮书,在线上购买渠道中,养宠人对淘宝/天猫、京东、波奇、E宠和抖音的偏好度各为90.10%、39.90%、9.00%、7.00%和10%[3]117。易知垂直类宠物电商平台不占优势。目前国内市场上已有的宠物电商APP功能类似,大部分都具有电商和社区的功能[13-14]。虽然已有的宠物电商APP功能比较丰富,但是均存在用户的购买率低、社区活跃度低的现象[15]。考虑到养宠人处于不同年龄段,设计并实现一款功能简洁、界面简约的宠物电商社区APP,能为不同年龄段的养宠人带来友好使用体验。
为了设计并实现一款简单易操作的宠物电商社区APP,分析国内外宠物电商发展现状、比较国内现有宠物电商APP存在的优缺点可知,设计并实现一款具有宠物产品商城和问答社区的宠物电商社区APP有一定的研究意义。
(1)宠物电商社区APP占用内存较小,用户使用成本低。
(2)宠物产品分类专业、用户查询方便。用户可以快速根据需要购买相应的宠物产品。
(3)用户在问答社区中能发表养宠遇到的问题,与其他用户进行互动。
(4)将宠物产品商城功能与问答社区功能结合,同时满足养宠用户的消费需求和交流需求,促进养宠人用更加科学、健康和快乐的方式来照顾自己的宠物。
(5)为不同年龄段的用户均能带来友好的使用感受。宠物电商社区APP操作简单,用户容易上手使用。
JavaScript是脚本语言,JavaScript程序在客户端和服务端均可运行[16]。
Spring是一个开源框架,使用Spring框架可以简化Java开发过程。
SpringBoot是在Spring基础上的一个开源框架。
MyBatis是一个在开发过程中只用关心SQL语句的开源框架。
MySQL是一个数据库管理系统应用软件[17]。开发该宠物电商社区APP使用的是MySQL。
开发该APP使用的软件如Eclipse和MySQL等软件都是直接从网上下载,几乎没有开发成本。所以开发该APP基本上不需要经济预算,在经济上是可行的。
该APP的开发环境和运行环境配置简单,且开发使用的技术已经比较成熟,在开发过程中遇到问题可以随时上网查询解决方法。
该APP开发使用的layui框架和SSM框架是免费开源的[18-19],且该APP没有用于商业用途,所以是合法的。
该APP功能简洁、界面简约,用户容易上手操作。在用户出现不当操作时,该APP会显示相应正确操作提示。
(1)注册和登录功能
用户在注册并且登录账号后才能使用该APP的功能。用户通过输入用户名、登录密码等信息来注册账号,通过输入用户名和密码登录账号。
(2)搜索商品功能
①用户可以通过首页的文字搜索框中输入关键字来搜索想要购买的宠物产品。
②用户可以从宠物产品分类根据需要查看对应类别下的产品。
(3)查看收藏功能
用户可以在宠物产品详情页选择收藏,在收藏中可以查看收藏的宠物产品。
(4)提交订单功能
①用户可以在商品详情页中提交订单。
②用户可以在购物车中提交订单。
(5)取消订单功能
用户可以在提交订单后取消订单,用户可以查看全部订单和订单情况如待付款等等。
(6)搜索问题功能
在问答社区中,用户可以在搜索框中输入关键字,然后在显示的问题中选择自己想搜索的内容,点击进入问题详情页。
(7)发表问题功能
用户可以在问答社区发表问题,通过输入问题的标题和内容发表自己的问题。
(8)回答问题功能
用户可以在问答社区中问题的详情页中回答问题。
(1)登录功能
管理员通过输入账号名和密码登录后台管理系统。
(2)管理用户功能
管理员能增加、删除某一个用户。
(3)管理商品分类
管理员能够增加、删除、查询宠物产品的分类。
(4)管理商品
管理员能够增加、删除、查询某一款宠物产品,修改某一款宠物产品的基本信息。
(5)管理仓库
管理员能够增加、删除、查询仓库,修改某一仓库的基本信息。
(6)订单处理
管理员能根据用户名和宠物产品名查询订单,根据用户的订单情况处理订单。
(7)资讯管理
管理员能够增加、删除、修改该APP的资讯信息。
(8)问答社区管理
管理员能删除问答社区中的问题和回答。
该宠物电商社区APP的设计需要考虑APP的易用性和可靠性等4个方面的性能[20]。
(1)易用性
因为该宠物电商社区APP的使用群体是分布在不同年龄段的养宠用户,所以在开发过程中考虑APP的易用性十分重要,使得用户操作简单便捷。
(2)可靠性
在开发过程中要充分考虑到所有可能操作会出现的异常结果,在APP出现异常或者用户操作不当的时候,APP应该显示出正确简单的操作提示,提高用户的使用体验。
(3)安全性
在设计开发的过程中,应该考虑到数据的安全性。用户信息保密,管理员操作权限明确。
(4)可扩展性
在设计开发的过程中,可在当前需求基础之上再对该宠物电商社区APP进行功能上的改进、完善和扩展。
该宠物电商社区APP的开发环境需求如下面的表3-1所示。
表3-1开发环境需求表
操作系统 |
开发工具 |
数据库 |
数据库管理工具 |
服务器 |
模拟器 |
Windows 10 |
Eclipse |
MySQL5.7.26 |
Navicat |
Tomcat 8.5.23 |
MuMu模拟器 |
根据该APP的功能需求,使用UML用例图描述用户需要该APP实现的服务。UML用例图由参与者、用例、参与者与用例之间的关系和以及系统的边界组成。参与者指的是不同的系统用户。用例指的是系统的外部功能。该APP的系统用户有两类:用户和管理员。该宠物电商社区APP的UML用例图描述了其功能需求,UML用例图如图3-1所示。
根据宠物电商社区APP的功能需求得出系统的功能结构。系统功能结构图能反应该宠物电商社区APP的功能,该APP的系统功能结构如图4-1所示。
(1)注册模块的输入、系统和显示模块如表4-1所示。
表4-1注册模块表
输入模块 |
系统模块 |
显示模块 |
用户输入用户名、密码、确认的密码、电话号码和性别 |
用户注册 |
显示注册成功,登录页面 |
(2)注册模块的流程图如4-2所示。
图4-2注册流程图
(1)登录模块的输入、系统和显示模块如下面的表4-2所示。
表42登录模块图
输入模块 |
系统模块 |
显示模块 |
用户输入用户名、密码 |
用户登录 |
首页 |
(2)登录模块的流程图如下面图4-3所示。
图4-3登录流程图
(1)实体之间的联系
据对宠物电商社区APP的需求分析和详细设计,得到该APP的实体联系如图4-4所示。
(2)实体及属性
①用户实体
用户实体的属性有用户编号、用户名、密码、账号类型、电话、性别、生日、地址编号、地址、收藏商品编号、余额和头像,用户实体如图4-5所示。
图4-5用户实体图
②商品分类实体
商品分类实体的属性有分类编号、商品分类名、分类级别和所属分类编号,商品实体如图4-6所示。
图4-6商品分类实体图
③仓库实体
仓库实体的属性有仓库编号、仓库名、仓库图、仓库地址、仓库电话和介绍,仓库实体如图4-7所示。
图4-7仓库实体图
④商品实体
商品实体的属性有商品编号、商品名、商品图、价格、商品描述、一级分类名、一级分类编号、二级分类名、二级分类编号、所属仓库编号和仓库名,商品实体如图4-8所示。
图4-8商品实体
⑤订单实体
订单实体的属性有订单编号、商品编号、用户编号、用户名、提交时间、订单价格、订单内容、仓库名、仓库编号、收货地址和订单情况,订单实体如图4-9所示。
图4-9订单实体图
⑥回答实体
回答实体的属性有回答编号、问题编号、内容、用户编号、用户名和回答时间,回答实体如图4-10所示。
图4-10回答实体图
⑦问题实体
问题实体的属性有问题编号、标题、内容、用户编号、用户名、发表时间和图片,问题实体如图4-11所示。
图4-11问题实体图
该APP使用MySQL5.7.26存储和处理数据。下面是该APP的主要数据库表。
(1)用户表
用户表用于存储用户的基本信息,用户表如表4-3所示。
表4-3用户表
数据项名称 |
数据项描述 |
数据类型 |
长度 |
是否为主键 |
id |
用户编号 |
int |
11 |
是 |
username |
用户名 |
varchar |
50 |
否 |
passwd |
密码 |
varchar |
50 |
否 |
roletype |
账号类型 |
varchar |
50 |
否 |
tel |
电话 |
varchar |
50 |
否 |
sex |
性别 |
varchar |
20 |
否 |
birth |
生日 |
varchar |
20 |
否 |
sid |
地址编号 |
varchar |
200 |
否 |
address |
地址 |
varchar |
200 |
否 |
favs |
收藏商品编号 |
varchar |
200 |
否 |
money |
余额 |
int |
11 |
否 |
(2)商品分类表
商品分类表用于存储商品所属的分类信息,商品有一级分类和二级分类,商品表如表4-4所示。
表4-4商品分类表
数据项名称 |
数据项描述 |
数据类型 |
长度 |
是否为主键 |
id |
分类编号 |
int |
11 |
是 |
title |
商品分类名 |
varchar |
500 |
否 |
pid |
所属分类编号 |
int |
11 |
否 |
level |
分类级别 |
int |
2 |
否 |
(3)仓库表
仓库表用于存储仓库的基本信息,仓库表如表4-5所示。
表4-5仓库表
数据项名称 |
数据项描述 |
数据类型 |
长度 |
是否为主键 |
id |
仓库编号 |
int |
11 |
是 |
sname |
仓库名 |
varchar |
100 |
否 |
img |
仓库图 |
varchar |
500 |
否 |
address |
仓库地址 |
varchar |
500 |
否 |
tel |
电话 |
varchar |
100 |
否 |
note |
介绍 |
varchar |
500 |
否 |
(4)商品表
商品表用于存储商品的基本信息和所属分类,商品表如表4-6所示。
表4-6商品表
数据项名称 |
数据项描述 |
数据类型 |
长度 |
是否为主键 |
id |
商品编号 |
int |
11 |
是 |
gname |
商品名 |
varchar |
100 |
否 |
price |
价格 |
varchar |
10 |
否 |
note |
商品描述 |
varchar |
2000 |
否 |
img |
商品图片 |
varchar |
500 |
否 |
type |
一级分类名称 |
varchar |
50 |
否 |
typeid |
一级分类编号 |
varchar |
10 |
否 |
type2 |
二级分类名称 |
varchar |
255 |
否 |
typeid2 |
二级分类编号 |
int |
10 |
否 |
shop |
仓库名 |
varchar |
50 |
否 |
sid |
仓库编号 |
varchar |
10 |
否 |
(5)订单表
订单表用于存储用户订单的基本信息和订单情况,订单表如表4-7所示。
表4-7订单表
数据项名称 |
数据项描述 |
数据类型 |
长度 |
是否为主键 |
id |
订单编号 |
int |
11 |
是 |
gids |
商品编号 |
varchar |
100 |
否 |
uid |
用户编号 |
varchar |
10 |
否 |
user |
用户名 |
varchar |
100 |
否 |
shop |
仓库名 |
varchar |
50 |
否 |
sid |
仓库编号 |
varchar |
10 |
否 |
address |
收货地址 |
varchar |
50 |
否 |
total |
订单价格 |
varchar |
100 |
否 |
gnames |
订单内容 |
varchar |
500 |
否 |
ndate |
提交时间 |
varchar |
255 |
否 |
statecn |
订单情况 |
varchar |
50 |
否 |
(6)回答表
回答表用于存储用户在问答社区回答的基本信息,回答表如表4-8所示。
表4-8回答表
数据项名称 |
数据项描述 |
数据类型 |
长度 |
是否为主键 |
id |
回答编号 |
int |
11 |
是 |
pid |
问题编号 |
int |
10 |
否 |
note |
内容 |
varchar |
500 |
否 |
uid |
用户编号 |
varchar |
10 |
否 |
username |
用户名 |
varchar |
200 |
否 |
ndate |
回答时间 |
varchar |
50 |
否 |
(7)问题表
问题表用于存储用户在问答社区发表的问题的基本信息,包括问题的标题和内容等,问题表如表4-9所示。
表4-9问题表
数据项名称 |
数据项描述 |
数据类型 |
长度 |
是否为主键 |
id |
问题编号 |
int |
11 |
是 |
title |
标题 |
varchar |
50 |
否 |
note |
内容 |
varchar |
500 |
否 |
uid |
用户编号 |
varchar |
10 |
否 |
username |
用户名 |
varchar |
200 |
否 |
ndate |
发表时间 |
varchar |
50 |
否 |
img |
图片 |
varchar |
255 |
否 |
用户必须注册账户后才能登录账户,注册与登录界面如图5-1所示。
图5-1注册与登录界面
用户能在商品分类下和搜索框内能搜索商品,搜索商品与查看收藏界面如图5-2所示。
图5-2搜索商品与查看收藏界面
用户提交订单后可以取消订单,用户提交订单与取消订单界面如图5-3所示。
图5-3提交与取消订单界面
用户可以在问答社区中搜索与发表问题,用户搜索与发表问题界面如图5-4所示。
图5-4搜索与发表问题界面
用户可以在问答社区中回答问题,用户回答问题界面如图5-5所示。
图5-5管理地址与评论问题界面
管理员输入账号名和密码后登录后台,其界面如图5-6所示。
管理员登录后台管理系统后,可以管理已注册用户和管理员的基本信息,用户管理界面如图5-7所示。
管理员登录后台管理系统后可以管理商品分类基本信息,商品分类管理界面如图5-8所示。
管理员登录后台管理系统后可以管理商品基本信息,商品管理界面如图5-9所示。
管理员登录后台管理系统后可以管理仓库基本信息,仓库管理界面如图5-10所示。
5.2.6订单处理界面
管理员可以删除用户已经取消订单,处理用户已付款订单,订单处理界面如图5-11所示。
管理员登录后台管理系统后,可以管理APP的资讯信息,资讯管理界面如图5-12所示。
管理员登录后台管理系统后能管理问答社区问题和回答,其管理界面如图5-13所示。
测试宠物电商社区APP主要功能用户注册、用户登录、搜索商品和提交订单等。下面采用黑盒测试的方法来设计测试用例,完成对每一个模块的功能测试。
主要测试用户注册成功、注册失败的显示结果,测试用例如表6-1。
表6-1用户注册测试用例表
测试 编号 |
测试内容 |
测试步骤 |
预期结果 |
实际结果 |
1 |
注册成功 |
注册页——输入正确完整的信息—点击“提交” |
显示注册成功——登录页 |
实现预期结果 |
2 |
注册失败 |
注册页——输入已注册的用户名—点击“提交” |
显示用户名已存在——注册页 |
实现预期结果 |
3 |
注册失败 |
注册页——输入不完整的手机号—点击“提交” |
显示电话号码格式不对——注册页 |
实现预期结果 |
主要测试用户登录成功、登录失败的显示结果,测试用例如表6-2。
表6-2用户登录测试用例表
测试 编号 |
测试内容 |
测试步骤 |
预期结果 |
实际结果 |
1 |
登录成功 |
登录页——输入正确的用户名和密码——点击登录 |
显示首页 |
实现预期结果 |
2 |
登录失败 |
登录页——输入正确的用户名和错误的密码——点击“登录” |
显示用户名/密码错误——登录页 |
实现预期结果 |
主要测试用户分类搜索成功、文字搜索成功的显示结果,测试用例如表6-3。
表6-3搜索商品测试用例表
测试 编号 |
测试内容 |
测试步骤 |
预期结果 |
实际结果 |
1 |
分类搜索成功 |
首页——点击“猫咪”——点击“猫咪主粮” |
显示猫咪主粮列商品列表 |
实现预期结果 |
2 |
文字搜索成功 |
启动页——在搜索框内输入关键字 |
显示含有关键字的宠物产品 |
实现预期结果 |
主要测试提交订单成功的显示结果,测试用例如表6-4。
表6-4提交订单测试用例表
测试 编号 |
测试内容 |
测试步骤 |
预期结果 |
实际结果 |
1 |
提交订单成功 |
点击“购物车”——选择商品——点击“提交”——选择收货地址——点击“提交” |
显示付款页面 |
实现预期结果 |
2 |
提交订单成功 |
商品详情页——点击“提交订单”——选择收货地址——点击“提交” |
显示付款页面 |
实现预期结果 |
主要测试取消订单成功的显示结果,测试用例如表6-5。
表6-5取消订单测试用例表
测试 编号 |
测试内容 |
测试步骤 |
预期结果 |
实际结果 |
1 |
取消订单成功 |
点击“订单”——点击“待付款”——点击“取消订单” |
显示取消成功 |
实现预期结果 |
主要测试搜索问题成功的显示结果,测试用例如表6-6。
表6-6搜索问题测试用例表
测试 编号 |
测试内容 |
测试步骤 |
预期结果 |
实际结果 |
1 |
文字搜索成功 |
首页——点击“问答社区”——在搜索框内输入关键字 |
显示标题含有关键字的问题列表 |
实现预期结果 |
主要测试发表问题成功、发表问题失败的显示结果,测试用例如表6-7。
表6-7发表问题测试用例表
测试 编号 |
测试内容 |
测试步骤 |
预期结果 |
实际结果 |
1 |
发表问题成功 |
点击“问答社区”——点击“新增”——输入标题和内容 |
显示包含该问题的问题页面 |
实现预期结果 |
2 |
发表问题失败 |
点击“问答社区”——点击“新增”——仅输入标题 |
显示请输入信息 |
实现预期结果 |
3 |
发表问题失败 |
点击“问答社区”——点击“新增”——仅输入内容 |
显示请输入信息 |
实现预期结果 |
主要测试回答问题成功的显示结果,测试用例如表6-8。
表6-8回答问题测试用例表
测试 编号 |
测试内容 |
测试步骤 |
预期结果 |
实际结果 |
1 |
回答问题成功 |
进入问题详情——在内容框输入回答内容——点击“评论” |
显示评论内容 |
实现预期结果 |
主要测试管理员登录后台管理系统成功和失败的显示结果,测试用例如表6-9。
表6-9管理员登录测试用例表
测试 编号 |
测试内容 |
测试步骤 |
预期结果 |
实际结果 |
1 |
登录成功 |
进入页——输入正确的用户名和密码——点击“登录” |
进入后台管理系统 |
实现预期结果 |
2 |
登录失败 |
输入正确的用户名和错误的密码——点击“登录” |
显示用户名/密码错误 |
实现预期结果 |
主要测试管理员删除用户成功的显示结果,测试用例如表6-10。
表6-10管理用户测试用例表
测试 编号 |
测试内容 |
测试步骤 |
预期结果 |
实际结果 |
1 |
删除成功 |
点击“用户管理”——在用户名为“大狗”的所在行行中点击“删除” |
用户列表中没有该用户 |
实现预期结果 |
主要测试管理员删除二级分类成功、增加二级分类成功的显示结果,测试用例如表6-11。
表6-11管理商品分类测试用例表
测试 编号 |
测试内容 |
测试步骤 |
预期结果 |
实际结果 |
1 |
删除二级分类成功 |
点击“商品分类管理”——在一级分类为狗的所在行点击“管理子分类”——在“狗狗零食”所在行点击“删除”——点击“确定” |
显示一级分类列表——显示真的删除此行吗——二级分类列表中没有“狗狗零食” |
实现预期结果 |
2 |
增加二级分类成功 |
点击“商品分类管理”——在一级分类为狗的所在行点击“管理子分类”——点击“新增”——输入二级分类名“狗狗出行” |
显示一级分类的列表——二级列表出现“狗狗出行” |
实现预期结果 |
主要测试管理员删除商品成功的显示结果,测试用例如表6-12。
表6-12管理商品测试用例表
测试 编号 |
测试内容 |
测试步骤 |
预期结果 |
实际结果 |
1 |
删除商品成功 |
点击“商品管理”——在商品名为“恰牌狗牵引绳”的所在行点击“删除”——点击“确定” |
显示商品列表——显示真的删除此行吗——商品列表中没有“恰牌狗牵引绳” |
实现预期结果 |
主要测试管理员删除仓库成功的显示结果,测试用例如表6-13。
表6-13管理仓库测试用例表
测试 编号 |
测试内容 |
测试步骤 |
预期结果 |
实际结果 |
1 |
删除仓库成功 |
点击“仓库管理”——在仓库名为“四川仓”所在行点击“删除”——点击“确定” |
显示仓库列表——显示真的删除此行吗——仓库列表中没有“四川仓” |
实现预期结果 |
根据测试结果,该宠物电商社区APP基本上通过了用户和管理员对应的功能测试。对于用户操作不当的情况,该APP也实现了给出相应提示的功能。但该APP还存在很多不足之处,需要日后不断改进,并且进行功能上的完善和扩展。
该宠物电商社区APP实现了用户注册与登录、搜索商品、提交订单、发表和回答问题等功能。同时,该宠物电商社区APP的设计与开发对今后有类似开发流程的电商社区APP的设计具有一定的参考价值。但是该宠物电商社区APP还存在很多不足之处,需要在功能上进行不断完善和改进。