express校园闲置物品租售平台--附源码17956


摘 要

本研究旨在设计并实现一个基于Node.js的校园闲置物品租售平台,以促进校园内部资源的循环利用和经济节约。该平台采用Node.js作为开发语言,充分利用其非阻塞I/O和事件驱动的特性,为用户提供高效、稳定的服务体验。在技术框架方面,选择了Express框架来处理后端逻辑,Express以其轻量级和高性能的特点,使得后端服务的搭建变得简洁而强大。平台后端与MySQL数据库紧密配合,利用其强大的数据存储和管理能力,确保数据的安全性和一致性。通过这一技术组合,预期打造一个用户友好、功能全面、安全可靠的校园闲置物品租售平台,以满足校园用户对物品交换和租赁的需求,同时提供一个便捷的在线交易环境,促进校园社区的可持续发展,并增强学生之间的互动与合作。

关键词:校园闲置物品租售平台;Express框架;Node.js语言;

Abstract

The aim of this study is to design and implement a campus idle item rental and sales platform based on Node.js, in order to promote the recycling and economic savings of internal resources on campus. This platform uses Node.js as the development language, fully utilizing its non blocking I/O and event driven features to provide users with an efficient and stable service experience. In terms of technical framework, the Express framework was chosen to handle backend logic. With its lightweight and high-performance characteristics, Express makes the construction of backend services simple and powerful. The platform backend is closely integrated with MySQL database, utilizing its powerful data storage and management capabilities to ensure data security and consistency. Through this technological combination, it is expected to create a user-friendly, comprehensive, safe and reliable platform for renting and selling idle items on campus, to meet the needs of campus users for item exchange and leasing, while providing a convenient online trading environment, promoting the sustainable development of campus communities, and enhancing interaction and cooperation among students.

Keywords: Campus idle item rental and sales platform; Express framework ; Node.js language;


 目 录

第1章 绪  论

1.1 项目背景与意义

1.1.1 研究背景

1.1.2 研究意义

1.2 国内外研究现状

1.2.1 国内研究现状

1.2.2 国外研究现状

1.3 主要研究内容

第2章 关键技术

2.1 Node.JS开发语言

2.2 MySQL数据库

2.3 express开发框架

2.4 B/S模式

2.5 Node.jsScript脚本语言

第3章 需求分析

3.1 可行性分析

3.1.1 经济可行性分析

3.1.2 操作可行性分析

3.1.3 技术可行性分析

3.2 功能需求分析

3.3 性能需求分析

3.4 系统流程分析

3.4.1 用户注册流程图

3.4.2 用户登录流程图

3.4.3 业务流程图

第4章 系统设计

4.1 系统功能设计

4.1.1 前台功能模块

4.1.2 后台功能模块

4.2 数据库设计

4.2.1 概念模型

4.2.2 物理模型

第5章 系统实现

5.1 系统实现概述

5.2 系统功能模块的实现

5.2.1 新闻资讯模块

5.2.2 物品信息模块

5.2.3 物品租赁模块

5.2.4 物品信息管理员模块

5.2.5 资源管理模块

5.2.6 系统管理模块

5.2.7 系统用户管理模块

第6章 系统测试

6.1 测试目的

6.2 功能测试

6.3 性能测试

6.4 测试结果

第7章 总结与展望

参考文献

致  谢

第1章绪  论

1.1 项目背景与意义

1.1.1 研究背景

随着互联网技术的迅猛发展,校园内闲置物品交易需求不断上升,而传统的校园二手市场却面临信息不对称、交易安全性低、时间成本高等挑战。这些问题限制了资源的有效流通,并影响了校园环境的可持续发展。因此,本研究选题聚焦于设计并实现一个基于Node.js的校园闲置物品租售平台。该平台采用Node.js作为开发语言,并基于Express技术框架来处理后端逻辑,同时配合MySQL数据库进行数据存储和管理。通过提供一个便捷、安全、高效的在线交易环境,该平台旨在解决传统交易模式中的诸多问题,促进校园资源的循环利用,提高资源利用效率,减少资源浪费。该平台还致力于培养学生的环保意识和经济意识,为校园绿色发展贡献力量,并推动构建节约型和环境友好型校园文化,实现经济效益与环境效益的双赢,为校园的可持续发展注入新的活力。

1.1.2 研究意义

基于Node.js的校园闲置物品租售平台设计与实现的研究意义在于,该平台能够提供一个综合性的服务环境,满足用户、卖家和管理员三类角色的不同需求。采用Node.js作为开发语言,基于Express技术框架实现后端逻辑处理,配合MySQL数据库,该平台旨在简化校园内物品的交换与租赁流程,提高资源利用率,减少浪费。对于用户而言,平台提供了一个便捷的交易和租赁渠道,增强了校园内部资源的流动性;对于卖家来说,平台提供了一个展示和销售闲置物品的空间,增加了物品再利用的机会;而管理员则能够通过平台进行有效的监管和管理,确保交易的安全性和公平性。总体而言,该平台的研究与实现有助于推动校园经济的绿色发展,促进环保意识的提升,同时也为校园社区提供了一个创新的数字化管理工具,为实现校园资源的数字化、智能化管理开辟了新途径。

1.2 国内外研究现状

1.2.1 国内研究现状

国内校园闲置物品交易平台的研究现状显示,随着互联网技术的普及和大学生消费水平的提高,校园内闲置物品的数量逐渐增多,传统的交易方式已无法满足当前的需求。目前,国内已经拥有了闲鱼、转转等网上二手交易平台,但这些平台涉及群体范围广,并未充分利用大学校园这一庞大的消费市场。高校内尚未有权威平台能与外界抗衡,现有的交易平台并未专门针对校园市场进行优化,导致大学生在处理闲置物品时面临快递费用高、信息不对称等问题。因此,创建校内闲置物品交易平台具有巨大的市场潜力和需求。国家政策也支持互联网经济的发展,鼓励闲置物品共享交换,这为校园闲置物品交易市场提供了发展机遇。高校闲置物品交易市场宏观环境分析表明,国家“十三五”规划中指出将着力发展互联网经济,利用“互联网+”思维加快产业升级,而闲置物品交易市场正是基于此背景下发展的。高校学生素质较高,产生信用问题较少,对于二手平台信用危机有一定的价值参考意义。

综上所述,国内校园闲置物品交易平台的研究和实践正逐渐深入,旨在通过技术手段提升校园内部资源的循环利用率,减少资源浪费,推动环保和可持续发展。

1.2.2国外研究现状

国外在校园闲置物品交易平台的研究现状表明,这一领域正受到越来越多的关注。研究者们正在探讨在线交易平台对校园内二手物品交易的影响,以及学生对市场变化的响应。通过调查和访谈,研究发现互联网已经改变了二手物品供需结构,促进了在线平台、社交媒体和口碑推荐的使用。这些变化对校园生活和二手交易产生了深远影响,强调了在线交易平台对于二手物品交易的必要性。在系统架构方面,国外的校园二手物品交易平台采用了流行的B/S结构,并运用MVC三层开发模式,运行在互联网上。这种架构允许用户通过浏览器访问系统,发布和浏览二手交易信息,节省了传统C/S模式复杂的安装、配置和维护工作。国外的研究还关注于如何通过微信小程序等便捷工具,提高校园二手资源的回收效率,培养学生的环保消费观念。

总体来看,国外的研究强调了校园二手交易平台在促进资源循环利用、建立节约型校园以及推动环保实践方面的重要作用。研究不仅关注于技术实现和系统设计,还着重于平台对校园文化和学生行为模式的影响,以及如何通过这些平台支持可持续消费和环保理念的普及。

1.3 主要研究内容

在开发校园闲置物品租售平台的过程中,选择了Node.js作为后端编程语言,并采用了Express框架来简化复杂的业务逻辑和数据操作,这不仅提高了开发效率,也确保了系统的高性能。系统的数据存储和管理则交给了MySQL数据库,它强大的功能和易用性让数据库操作变得方便和快捷,从而有效提升了用户体验。平台主要实现了后台首页、系统用户管理、通知公告管理、资源管理、物品信息管理等功能,同时还提供了个人信息修改和密码修改等个性化服务,以满足不同用户的需求。这些功能的集成,使得校园闲置物品租售平台成为一个全面、高效的在线租售和管理平台。

第2章关键技术

 校园闲置物品租售平台采用Node.js作为开发语言,基于Express技术框架,实现后端逻辑处理,配合MySQL数据库进行数据存储和管理,确保系统数据的安全和高效访问;利用B/S架构,简化用户端部署和维护,实现高效数据交互;同时,前端部分使用Node.jsScript进行交互设计,提供一个用户友好、界面简洁的用户端交互界面。通过以上技术的结合,本校园闲置物品租售平台实现了高效、便捷的管理功能,满足了不同用户的需求,推动构建节约型和环境友好型校园文化。

2.1Node.JS开发语言

Node.js是一个开源的Node.jsScript运行环境,它能够在服务器端执行Node.jsScript代码。Node.js采用事件驱动和非阻塞I/O模型,使其在处理高并发时展现出优越的性能和吞吐量,特别适合构建网络应用。

2.2MySQL数据库

MySQL是一种开源的关系型数据库管理系统,广泛应用于Web开发。它使用结构化查询语言(SQL)来访问和管理数据。在项目中,MySQL主要用于存储各类系统信息和数据,并提供快速的信息数据检索和编辑功能,确保数据的一致性和完整性。

2.3express开发框架

Express是一个基于Node.js的快速、灵活且极简的Web框架,用于构建Web应用和API。它提供了一系列强大的特性,比如中间件支持、路由管理、请求处理等。通过Express,开发者能够快速构建出功能强大的Web应用并处理复杂的HTTP请求。

2.4B/S模式

B/S(Browser/Server)架构是一种现代的应用程序架构,将用户端的处理主要移至浏览器,从而简化客户端的部署和维护。在本系统中,用户通过浏览器访问服务管理平台,后端所有业务逻辑和数据管理均由服务器处理,形成高效的数据交互。

2.5Node.jsScript脚本语言

Node.jsScript是一种广泛使用的脚本语言,主要用于前端开发。它能够与HTML和CSS结合,实现动态网页效果和交互。在本项目中,Node.jsScript还用于与Express框架的后端API进行交互。

第3章需求分析

3.1 可行性分析

通过综合考虑经济、操作、技术等因素,可以对基于Express框架的校园闲置物品租售平台的可行性进行全面评估。这将有助于确定项目的成功概率,并为项目规划提供坚实的基础。

3.1.1 经济可行性分析

经济可行性在此仅代表平台的运维成本,开发成本不在此考虑。目前该模式下的相关系统的数量日益增多,信息管理系统的平民化、普及化使用户人数呈上升趋势,当用户人数庞大了,运维成本可以由广告费进行填补,包括开发成本。所以经济可行性没有问题。

3.1.2 操作可行性分析

此次项目设计参考了几个该模式下系统的开发案例,对他们的操作界面分析,将众多案例结合在一起,突出以人为本简化操作,所以具有基本计算机知识的人都会操作本项目。因此操作可行性也没有问题。

3.1.3 技术可行性分析

技术可行性指的是对于搭建框架的可行性,以及有更优秀的技术出现时系统的技术更新换代的纳新性如何,开发时间成本费用比如何。现有的开发技术和语言能够迎合所有系统的搭建。开发这个闲置物品租售平台的时候我采用了Node.js+Express框架+MySQL 用以运行整体程序。技术可行性也没有问题。

3.2 功能需求分析

通过对应的功能做了需求分析以后该校园闲置物品租售平台各角色主要包括的功能说明如下:

  1. 用户角色:
  • 普通用户:可以在线交流沟通,浏览公告和物品信息列表,搜索物品信息,下单购买支付、查看订单状态,评价等功能。查看物品租赁详情,并进行租借、评论、点赞等操作。
  • 卖家:具备对物品信息的发布、编辑、下架等,并进行订单审核、评价回复等操作。
  • 管理员:具备对用户、物品信息、评论、订单、评价、资讯等所有管理功能权限,同时可以处理异常情况,查看销售统计,管理系统配置,更新维护系统等。
  1. 基础功能:这个模块包括了系统的一些基本设置,如系统参数、日志管理、数据备份、数据恢复等。这些功能可以保证系统的正常运行和安全性。
  2. 物品信息管理:卖家对物品信息的发布、编辑、下架等操作,支持多种物品信息分类和标签。
  3. 交易流程:用户注册与登录功能,支持第三方登录和快速注册。下单评论及购买流程,包括下单数量选择、地址填写、提交订单、支付等功能。订单管理,包括订单状态跟踪、评价功能等。
  4. 用户体验:适配不同终端设备。用户通过选择,支持关键词搜索、筛选等。
  5. 身份验证功能:这个模块包括了用户的注册、登录、修改密码、找回密码等功能。这些功能可以保证用户的身份和权限的正确性和安全性。
  6. 安全与权限:用户权限管理,确保不同角色用户只能访问其具备权限的功能。数据安全保护,包括用户信息加密存储、支付信息安全等。

根据使用该系统的用户角色可以划分为普通用户、卖家用户和管理员,具体如下所示。

校园闲置物品租售平台普通用户角色用例图如下所示。

图3-1 普通用户角色用例图

校园闲置物品租售平台卖家用户角色用例图如下所示。

图3-2卖家角色用例图

校园闲置物品租售平台管理员角色用例图如下所示。

图3-3 管理员角色用例图

3.3 性能需求分析

用户操作响应时间:系统应保证用户在操作平台时的响应速度,例如浏览物品、下单等操作应该迅速响应。

系统稳定性:平台应具备一定的容错能力和稳定性,防止因为意外情况导致系统崩溃。

数据安全:用户信息、交易记录等敏感数据需要加密存储,确保数据安全性。

系统并发能力:平台应考虑到可能大量用户同时访问的情况,保证系统的并发处理能力。

日志记录:系统需要记录用户操作日志、异常日志等,便于排查问题和分析用户行为。

基于以上性能需求将确保校园闲置物品租售平台能够稳定、高效地运行,能够很好地满足用户和管理员的需求。

3.4 系统流程分析

3.4.1 用户注册流程图

注册的过程,第一部分是账号的注册,第二部分是信息完善。在业务开展过程中,管理员可对用户信息进行修改等管理操作,注册流程如图3-4用户注册流程图所示。

图3-4 用户注册流程图

3.4.2 用户登录流程图

登录时,用户填写用户名、密码、选择身份进行登录,在登录过程中后端会对发送过来的信息进行验证和判断,具体的登录流程如图3-5用户登录流程图所示。

图3-5 用户登录流程图

3.4.3 业务流程图

业务流程图既反映了内部业务间的相互联系,又反映了物品信息交易和信息流动情况。校园闲置物品租售平台须支撑整个机构不同层面的多种职能,而各功能模块间存在着多种关联信息,组成一个有机整体,并针对平台交易信息自身特点和面临的现实条件,对系统进行业务流程图设计。系统通过流程的顺畅和高效,实现了物品信息交易需求的满足和系统管理的便捷,提升了系统的运行效率和用户体验。校园闲置物品租售平台的业务流程如下图所示。

用户购买物品业务流程如下图所示。

图3-6 用户购买物品业务流程图

第4章系统设计

4.1 系统功能设计

4.1.1 前台功能模块

基于Node.js校园闲置物品租售平台程序采用前后端分离的设计,游客可以浏览系统前台信息,注册成为普通用户,登录后才可进行其他操作。普通用户登录后,可搜索和浏览新闻资讯、物品信息等信息,可以收藏、下单购买物品、并对订单进行支付、评价等操作。卖家用户对物品信息的发布、编辑、下架等,并进行订单审核、评价回复等操作。系统前台功能模块图如下图所示。

图4-1系统前台功能模块图

4.1.2 后台功能模块

后台功能主要为管理员模块,管理员是系统最高权限拥有者,可管理用户、订单、评价、公告、资讯等信息,并保证及时更新系统信息,维护系统正常运行。系统后台功能模块图如下图所示。

图4-2系统后台功能模块图

4.2 数据库设计

数据库的设计是系统的设计中比较重要的一部分内容,数据库设计是一切系统设计的基础,首先需要进行概念模型E-R图的设计,然后进行关系模型物理模型的建立。

4.2.1 概念模型

本文在系统分析阶段就抽取了一些实体,根据实体之间的关系,经过分析进行系统E-R图的设计。校园闲置物品租售平台总体E-R图如下图所示。

图4-7系统总体E-R图

4.2.2 物理模型

本系统采MySQL数据库管理系统对数据进行管理。下面是对各个表中的表中各个字段数据类型、大小等做简短描述。校园闲置物品租售平台所需要的部分数据结构表如下表所示。

表access_token (登陆访问时长)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

token_id

int

10

0

N

Y

临时访问牌ID

2

token

varchar

64

0

Y

N

临时访问牌

3

info

text

65535

0

Y

N

4

maxage

int

10

0

N

N

2

最大寿命:默认2小时

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

user_id

int

10

0

N

N

0

用户编号:

表article (文章:用于内容管理系统的文章)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

article_id

mediumint

8

0

N

Y

文章id:[0,8388607]

2

title

varchar

125

0

N

Y

标题:[0,125]用于文章和html的title标签中

3

type

varchar

64

0

N

N

0

文章分类:[0,1000]用来搜索指定类型的文章

4

hits

int

10

0

N

N

0

点击数:[0,1000000000]访问这篇文章的人次

5

praise_len

int

10

0

N

N

0

点赞数

6

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

8

source

varchar

255

0

Y

N

来源:[0,255]文章的出处

9

url

varchar

255

0

Y

N

来源地址:[0,255]用于跳转到发布该文章的网站

10

tag

varchar

255

0

Y

N

标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开

11

content

longtext

2147483647

0

Y

N

正文:文章的主体内容

12

img

varchar

255

0

Y

N

封面图

13

description

text

65535

0

Y

N

文章描述

表article_type (文章分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

smallint

5

0

N

Y

分类ID:[0,10000]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]决定分类显示的先后顺序

3

name

varchar

16

0

N

N

分类名称:[2,16]

4

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

5

description

varchar

255

0

Y

N

描述:[0,255]描述该分类的作用

6

icon

text

65535

0

Y

N

分类图标:

7

url

varchar

255

0

Y

N

外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

auth_id

int

10

0

N

Y

授权ID:

2

user_group

varchar

64

0

Y

N

用户组:

3

mod_name

varchar

64

0

Y

N

模块名:

4

table_name

varchar

64

0

Y

N

表名:

5

page_title

varchar

255

0

Y

N

页面标题:

6

path

varchar

255

0

Y

N

路由路径:

7

parent

varchar

64

0

Y

N

父级菜单

8

parent_sort

int

10

0

N

N

0

父级菜单排序

9

position

varchar

32

0

Y

N

位置:

10

mode

varchar

32

0

N

N

_blank

跳转方式:

11

add

tinyint

3

0

N

N

1

是否可增加:

12

del

tinyint

3

0

N

N

1

是否可删除:

13

set

tinyint

3

0

N

N

1

是否可修改:

14

get

tinyint

3

0

N

N

1

是否可查看:

15

field_add

text

65535

0

Y

N

添加字段:

16

field_set

text

65535

0

Y

N

修改字段:

17

field_get

text

65535

0

Y

N

查询字段:

18

table_nav_name

varchar

500

0

Y

N

跨表导航名称:

19

table_nav

varchar

500

0

Y

N

跨表导航:

20

option

text

65535

0

Y

N

配置:

21

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

22

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表code_token

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

code_token_id

int

10

0

N

Y

2

token

varchar

255

0

Y

N

3

code

varchar

255

0

Y

N

验证码

4

expire_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

失效时间

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表collect (收藏)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

collect_id

int

10

0

N

Y

收藏ID:

2

user_id

int

10

0

N

N

0

收藏人ID:

3

source_table

varchar

255

0

Y

N

来源表:

4

source_field

varchar

255

0

Y

N

来源字段:

5

source_id

int

10

0

N

N

0

来源ID:

6

title

varchar

255

0

Y

N

标题:

7

img

varchar

255

0

Y

N

封面:

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

comment_id

int

10

0

N

Y

评论ID:

2

user_id

int

10

0

N

N

0

评论人ID:

3

reply_to_id

int

10

0

N

N

0

回复评论ID:空为0

4

content

longtext

2147483647

0

Y

N

内容:

5

nickname

varchar

255

0

Y

N

昵称:

6

avatar

varchar

255

0

Y

N

头像地址:[0,255]

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

9

source_table

varchar

255

0

Y

N

来源表:

10

source_field

varchar

255

0

Y

N

来源字段:

11

source_id

int

10

0

N

N

0

来源ID:

表communication_records (交流记录)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

communication_records_id

int

10

0

N

Y

交流记录ID

2

seller_customers

int

10

0

Y

N

0

卖家用户

3

seller_name

varchar

64

0

Y

N

卖家姓名

4

item_name

varchar

64

0

Y

N

物品名称

5

item_price

double

9

2

Y

N

0.00

物品价格

6

buyer_user

int

10

0

Y

N

0

买家用户

7

user_name

varchar

64

0

Y

N

用户姓名

8

buyer_consultation

text

65535

0

Y

N

买家咨询

9

sellers_reply

text

65535

0

Y

N

卖家回复

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

12

source_table

varchar

255

0

Y

N

来源表

13

source_id

int

10

0

Y

N

来源ID

14

source_user_id

int

10

0

Y

N

来源用户

表credit (订单信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

credit_id

int

10

0

N

Y

订单信息ID

2

order_number

varchar

64

0

Y

N

订单编号

3

seller_customers

int

10

0

Y

N

0

卖家用户

4

seller_name

varchar

64

0

Y

N

卖家姓名

5

item_name

varchar

64

0

Y

N

物品名称

6

item_price

double

9

2

Y

N

0.00

物品价格

7

buyer_user

int

10

0

Y

N

0

买家用户

8

user_name

varchar

64

0

Y

N

用户姓名

9

purchase_quantity

double

9

2

Y

N

0.00

购买数量

10

total_purchase_price

varchar

64

0

Y

N

购买总价

11

purchase_remarks

text

65535

0

Y

N

购买备注

12

item_status

varchar

64

0

Y

N

物品状态

13

logistics_status

varchar

64

0

Y

N

物流状态

14

logistics_details

text

65535

0

Y

N

物流详情

15

pay_state

varchar

16

0

N

N

未支付

支付状态

16

pay_type

varchar

16

0

Y

N

支付类型: 微信、支付宝、网银

17

evaluation_record_limit_times

int

10

0

N

N

0

评价限制次数

18

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

19

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

20

source_table

varchar

255

0

Y

N

来源表

21

source_id

int

10

0

Y

N

来源ID

22

source_user_id

int

10

0

Y

N

来源用户

表credit_record (信用记录)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

credit_record_id

int

10

0

N

Y

信用记录ID

2

order_number

varchar

64

0

Y

N

订单编号

3

seller_customers

int

10

0

Y

N

0

卖家用户

4

seller_name

varchar

64

0

Y

N

卖家姓名

5

buyer_user

int

10

0

Y

N

0

买家用户

6

user_name

varchar

64

0

Y

N

用户姓名

7

buyer_rating

double

9

2

Y

N

0.00

买家评分

8

buyer_credit

varchar

64

0

Y

N

买家信用

9

seller_rating

double

9

2

Y

N

0.00

卖家评分

10

seller_credit

varchar

64

0

Y

N

卖家信用

11

details_description

text

65535

0

Y

N

详情描述

12

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

13

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

14

source_table

varchar

255

0

Y

N

来源表

15

source_id

int

10

0

Y

N

来源ID

16

source_user_id

int

10

0

Y

N

来源用户

表evaluation_record (评价记录)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

evaluation_record_id

int

10

0

N

Y

评价记录ID

2

order_number

varchar

64

0

Y

N

订单编号

3

seller_customers

int

10

0

Y

N

0

卖家用户

4

seller_name

varchar

64

0

Y

N

卖家姓名

5

item_name

varchar

64

0

Y

N

物品名称

6

item_price

double

9

2

Y

N

0.00

物品价格

7

buyer_user

int

10

0

Y

N

0

买家用户

8

user_name

varchar

64

0

Y

N

用户姓名

9

purchase_quantity

double

9

2

Y

N

0.00

购买数量

10

buyer_reviews

text

65535

0

Y

N

买家评价

11

review_reply

text

65535

0

Y

N

评价回复

12

credit_record_limit_times

int

10

0

N

N

1

信用录入限制次数

13

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

14

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

15

source_table

varchar

255

0

Y

N

来源表

16

source_id

int

10

0

Y

N

来源ID

17

source_user_id

int

10

0

Y

N

来源用户

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

hits_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

表item_classification (物品分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

item_classification_id

int

10

0

N

Y

物品分类ID

2

item_classification

varchar

64

0

Y

N

物品分类

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表item_information (物品信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

item_information_id

int

10

0

N

Y

物品信息ID

2

seller_customers

int

10

0

Y

N

0

卖家用户

3

seller_name

varchar

64

0

Y

N

卖家姓名

4

sellers_phone_number

varchar

64

0

Y

N

卖家电话

5

item_name

varchar

64

0

N

N

物品名称

6

item_classification

varchar

64

0

Y

N

物品分类

7

item_price

double

9

2

Y

N

0.00

物品价格

8

inventory_of_items

double

9

2

Y

N

0.00

物品库存

9

item_video

varchar

255

0

Y

N

物品视频

10

item_cover

varchar

255

0

Y

N

物品封面

11

item_description

longtext

2147483647

0

Y

N

物品描述

12

hits

int

10

0

N

N

0

点击数

13

praise_len

int

10

0

N

N

0

点赞数

14

recommend

int

10

0

N

N

0

智能推荐

15

communication_records_limit_times

int

10

0

N

N

0

沟通协商限制次数

16

credit_limit_times

int

10

0

N

N

0

物品下单限制次数

17

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

18

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notice_id

mediumint

8

0

N

Y

公告id:

2

title

varchar

125

0

N

N

标题:

3

content

longtext

2147483647

0

Y

N

正文:

4

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表ordinary_users (普通用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

ordinary_users_id

int

10

0

N

Y

普通用户ID

2

user_name

varchar

64

0

Y

N

用户姓名

3

user_gender

varchar

64

0

Y

N

用户性别

4

user_phone_number

varchar

16

0

Y

N

用户电话

5

examine_state

varchar

16

0

N

N

已通过

审核状态

6

user_id

int

10

0

N

N

0

用户ID

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

praise_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

status

bit

1

0

N

N

1

点赞状态:1为点赞,0已取消

表public_welfare_donation (公益捐赠)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

public_welfare_donation_id

int

10

0

N

Y

公益捐赠ID

2

donate_users

int

10

0

Y

N

0

捐赠用户

3

user_name

varchar

64

0

Y

N

用户姓名

4

user_phone_number

varchar

16

0

Y

N

用户电话

5

item_name

varchar

64

0

Y

N

物品名称

6

item_classification

varchar

64

0

Y

N

物品分类

7

donation_date

date

10

0

Y

N

捐赠日期

8

donation_remarks

text

65535

0

Y

N

捐赠备注

9

donation_status

varchar

64

0

Y

N

捐赠状态

10

status_description

text

65535

0

Y

N

状态描述

11

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

12

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表rental_information (租借信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

rental_information_id

int

10

0

N

Y

租借信息ID

2

seller_customers

int

10

0

Y

N

0

卖家用户

3

item_name

varchar

64

0

Y

N

物品名称

4

rental_price

double

9

2

Y

N

0.00

租赁价格

5

rental_users

int

10

0

Y

N

0

租借用户

6

user_name

varchar

64

0

Y

N

用户姓名

7

rental_days

double

9

2

Y

N

0.00

租借天数

8

total_rental_price

varchar

64

0

Y

N

租借总价

9

rental_remarks

text

65535

0

Y

N

租借备注

10

examine_state

varchar

16

0

N

N

未审核

审核状态

11

examine_reply

varchar

16

0

Y

N

审核回复

12

pay_state

varchar

16

0

N

N

未支付

支付状态

13

pay_type

varchar

16

0

Y

N

支付类型: 微信、支付宝、网银

14

return_information_limit_times

int

10

0

N

N

1

归还限制次数

15

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

16

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

17

source_table

varchar

255

0

Y

N

来源表

18

source_id

int

10

0

Y

N

来源ID

19

source_user_id

int

10

0

Y

N

来源用户

表rental_of_items (物品租赁)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

rental_of_items_id

int

10

0

N

Y

物品租赁ID

2

seller_customers

int

10

0

Y

N

0

卖家用户

3

seller_name

varchar

64

0

Y

N

卖家姓名

4

sellers_phone_number

varchar

64

0

Y

N

卖家电话

5

item_name

varchar

64

0

Y

N

物品名称

6

item_classification

varchar

64

0

Y

N

物品分类

7

rental_price

double

9

2

Y

N

0.00

租赁价格

8

item_pictures

varchar

255

0

Y

N

物品图片

9

lease_description

text

65535

0

Y

N

租赁描述

10

praise_len

int

10

0

N

N

0

点赞数

11

rental_information_limit_times

int

10

0

N

N

0

租借限制次数

12

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

13

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表return_information (归还信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

return_information_id

int

10

0

N

Y

归还信息ID

2

seller_customers

int

10

0

Y

N

0

卖家用户

3

item_name

varchar

64

0

Y

N

物品名称

4

rental_users

int

10

0

Y

N

0

租借用户

5

user_name

varchar

64

0

Y

N

用户姓名

6

rental_days

double

9

2

Y

N

0.00

租借天数

7

return_remarks

text

65535

0

Y

N

归还备注

8

return_status

varchar

64

0

Y

N

归还状态

9

status_description

text

65535

0

Y

N

状态描述

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

12

source_table

varchar

255

0

Y

N

来源表

13

source_id

int

10

0

Y

N

来源ID

14

source_user_id

int

10

0

Y

N

来源用户

表schedule (日程管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

schedule_id

smallint

5

0

N

Y

日程ID:[0,32767]

2

content

varchar

255

0

Y

N

日程内容

3

scheduled_time

datetime

19

0

Y

N

计划时间

4

user_id

int

10

0

N

N

用户id

5

create_time

datetime

19

0

Y

N

创建时间

6

update_time

datetime

19

0

Y

N

更新时间

表score (评分)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

score_id

int

10

0

N

Y

评分ID:

2

user_id

int

10

0

N

N

0

评分人:

3

nickname

varchar

64

0

Y

N

昵称:

4

score_num

double

5

2

N

N

0.00

评分:

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

source_table

varchar

255

0

Y

N

来源表:

8

source_field

varchar

255

0

Y

N

来源字段:

9

source_id

int

10

0

N

N

0

来源ID:

表seller_customers (卖家用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

seller_customers_id

int

10

0

N

Y

卖家用户ID

2

seller_name

varchar

64

0

Y

N

卖家姓名

3

sellers_gender

varchar

64

0

Y

N

卖家性别

4

sellers_phone_number

varchar

16

0

Y

N

卖家电话

5

examine_state

varchar

16

0

N

N

已通过

审核状态

6

user_id

int

10

0

N

N

0

用户ID

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

slides_id

int

10

0

N

Y

轮播图ID:

2

title

varchar

64

0

Y

N

标题:

3

content

varchar

255

0

Y

N

内容:

4

url

varchar

255

0

Y

N

链接:

5

img

varchar

255

0

Y

N

轮播图:

6

hits

int

10

0

N

N

0

点击量:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

upload_id

int

10

0

N

Y

上传ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

访问路径

4

file

varchar

255

0

Y

N

文件路径

5

display

varchar

255

0

Y

N

显示顺序

6

father_id

int

10

0

Y

N

0

父级ID

7

dir

varchar

255

0

Y

N

文件夹

8

type

varchar

32

0

Y

N

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

int

10

0

N

Y

用户ID:[0,8388607]用户获取其他与用户相关的数据

2

state

smallint

5

0

N

N

1

账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

0

Y

N

所在用户组:[0,32767]决定用户身份和权限

4

login_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

上次登录时间:

5

phone

varchar

11

0

Y

N

手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

6

phone_state

smallint

5

0

N

N

0

手机认证:[0,1](0未认证|1审核中|2已认证)

7

username

varchar

16

0

N

N

用户名:[0,16]用户登录时所用的账户名称

8

nickname

varchar

16

0

Y

N

昵称:[0,16]

9

password

varchar

64

0

N

N

密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

10

email

varchar

64

0

Y

N

邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

11

email_state

smallint

5

0

N

N

0

邮箱认证:[0,1](0未认证|1审核中|2已认证)

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

open_id

varchar

255

0

Y

N

针对获取用户信息字段

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_id

mediumint

8

0

N

Y

用户组ID:[0,8388607]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]

3

name

varchar

16

0

N

N

名称:[0,16]

4

description

varchar

255

0

Y

N

描述:[0,255]描述该用户组的特点或权限范围

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

register

smallint

5

0

Y

N

0

注册位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

第5章系统实现

5.1 系统实现概述

本文研究的校园闲置物品租售平台基于Node.js开发,旨在提供用户便捷的买卖交易体验。系统支持用户注册和登录,浏览物品信息,进行收藏、购买和交易管理。用户可以通过搜索和分类查找物品信息,进行收藏和评价。卖家发布物品信息、回复评价等。平台还包括管理员功能,用于管理用户、公告、资讯等信息。整体设计追求简洁高效,以提升用户体验和平台运行效率为目标。

本设计的前端系统每个页面都具备必要的交互设计,较好地呈现了校园闲置物品租售平台的基础功能。组件的构建上思路清晰,易于理解,扁平风格突出简洁,配色清新。游客注册成为普通用户即可登录系统前台实现各项操作。

前台登录界面布局如下图:

图5-1 前台登录界面

登录关键代码如下:

const md5 = require("md5");

var Controller = require("../core/controller.js");

class Login extends Controller {

constructor(config) {

super(

Object.assign({

tpl: "./login/",

service: "user",

},

config

)

);

}

}

Login.prototype.api = async function(ctx) {

var body = ctx.request.body;

var obj = await $.services["user"].get_obj({

username: body.username

},{like:false});

if (obj) {

var group = await $.services["user_group"].get_obj({

name:obj.user_group

})

if (group){

if (group.name!=="管理员"){

var sql = "select examine_state from "+ group.source_table +" WHERE user_id = " + obj.user_id;

var userExamine = await $.mysql.run(sql);

if (userExamine && userExamine.length > 0 && userExamine[0].examine_state!=="已通过"){

return {

error: {

code: 70000,

message: "该用户审核未通过"

},

};

}

}

if (obj.state!==1){

return {

error: {

code: 70000,

message: "用户非可用状态,不能登录"

},

};

}

var password = md5(body.password);

if (password === obj.password) {

ctx.session.user = obj;

var date = Date.parse(new Date());

var token = md5(obj.user_id + "_" + date);

await $.services["access_token"].add({

token,

info: JSON.stringify(obj),

user_id:obj.user_id

});

obj.token = token;

return {

result: {obj}

};

} else {

return {

error: {

code: 70000,

message: "密码错误"

},

};

}

}else {

return {

error: {

code: 70000,

message: "用户组不存在"

},

};

}

} else {

return {

error: {

code: 70000,

message: "账户不存在"

}

};

}

};

前台注册界面布局如下图:

图5-2 前台注册界面

注册关键代码如下:

Register.prototype.index = async function(ctx) {

var group_list = await $.services["user_group"].get_list({}, Object.assign({}, this.config));

return await ctx.render(this.config.tpl + "index.html", {

group_list

});

};

Register.prototype.api = async function(ctx) {

var user = $.services.user;

var body = ctx.request.body;

var username = body.username;

var obj = await user.get_obj({

username

});

if (obj) {

return {

error: {

code: 70000,

message: "账户名已存在",

},

};

} else {

var password = md5(body.password);

var nickname = body.nickname;

var user_group = body.user_group;

var email = body.email;

var email_state= body.hasOwnProperty('email_state') ? body.email_state : 0;

var phone = body.phone;

var phone_state= body.hasOwnProperty('phone_state') ? body.phone_state : 0;

var avatar = body.avatar;

var bl_reg = await user.add({

username,

password,

nickname,

user_group,

email,

email_state,

phone,

phone_state,

avatar

});

if (bl_reg) {

return {

result: "注册成功"

};

} else {

return {

error: {

code: 70000,

message: "注册失败",

},

};

}

}

};

前台首页模块是系统的主入口,为用户提供导航和重要信息展示。通过清晰的界面布局和内容展示,为用户提供良好的导航菜单、轮播图、通知公告和物品信息浏览体验,引导用户进行登录、注册及系统内相关操作。

前台首页界面布局如下图:

图5-3 前台首页界面

管理员登录系统后首先进入后台首页界面,提供管理员的日常操作入口和平台运行状态概览。后台首页界面布局如下图:

图5-4 管理员后台首页界面

5.2 系统功能模块的实现

5.2.1 新闻资讯模块

用户可以通过筛选分类或者关键字搜索等查询相关新闻资讯详情,亦可对资讯信息进行点赞、收藏和评论。界面布局如下图:

图5-5 新闻资讯界面

5.2.2 物品信息模块

物品信息模块是系统中主要的模块,主要用于用户在平台上买卖物品信息。普通用户可查看发布的所有物品信息详情,支持物品名称、物品分类、排序搜索,可进行点赞、收藏和评论,并可进行下单操作,填写订单信息提交下单信息。物品信息详情界面布局如下图:

5-6 物品信息详情界面

物品信息代码如下:

Service.prototype.get_list = async function(query, config) {

var sql = $.mysql.toGetSql(query, Object.assign({}, this.config, config || {}));

return await this.run(sql);

};

Service.prototype.get_list = async function(query, config) {

var sql = $.mysql.toGetSql(query, Object.assign({}, this.config, config || {}));

return await this.run(sql);

};

5.2.3物品租赁模块

  物品租赁模块是系统中主要的模块,普通用户可查看发布的所有物品租赁详情,支持物品名称、物品分类、排序搜索,可进行点赞、收藏和评论,并可进行租借操作,物品租赁详情界面布局如下图:

5-7 物品租赁界面

5.2.4 物品信息管理员模块

卖家用户可对所有物品信息进行管理和查看其信息详情,进行增改删查操作。物品信息管理添加界面布局如下图:

图5-8物品信息添加界面

卖家用户可以对所有物品租赁信息进行管理和查看其信息详情,进行增改删查操作。物品租赁管理添加界面布局如下图:

图5-9物品租赁添加界面

5.2.5 资源管理模块

管理员可对新闻资讯和资讯分类信息进行管理,新闻资讯添加管理界面布局如下图:

图5-10 资源管理界面

资源管理代码如下:

Controller.prototype.add = async function(ctx) {

var result = await this.service.add(ctx.request.body, this.config);

if (this.service.error) {

return {

error: this.service.error,

};

}

return {

result,

};

};

5.2.6 系统管理模块

管理员可对前台所有轮播图进行增删改查操作。系统管理界面布局如下图:

图5-11 系统管理界面

5.2.7 系统用户管理模块

管理员负责管理系统中的所有用户,包括管理员、普通用户和卖家用户的账户创建和账户管理。用户管理界面布局如下图:

图5-12 系统用户管理界面

第6章系统测试

6.1 测试目的

在对该系统进行完详细设计和编码之后,就要对校园闲置物品租售平台的程序进行测试,检测程序是否运行无误,反复进行测试和修改,使之最后成为完整的软件,满足用户的需求,实现预期的功能。系统测试的目的在于确保软件正常运作,并实现其应有的功能,促进行中出现的错误和逻辑问题。系统测试不但可以找见程序运行中的系统错误,还可以找见程序运行的需要改进的地方,并去协助改良程序运行使其获得最高幅度的完备。世界一流的安装测试员可以增加软件品质,将软件系统错误概率降至最少。

6.2 功能测试

本系统的主要功能就是普通用户登录后,可搜索和浏览物品信息,并可进行下单,管理员登录系统后台后可对物品信息进行管理,包括增改删查操作。测试设计如下所示:

  1. 登录模块功能测试

用户登录前首先需注册成为系统用户,使用账号和密码可进行登录。用户登录功能测试用例设计如下表所示:

表6-1 用户登录功功能测试用例

测试编号

测试目的

测试步骤

预期结果

实际结果

是否通过

TC001

验证有效登录

1. 输入正确的用户名和密码 <br> 2. 点击登录按钮

显示登录成功,跳转至用户首页

登录成功,跳转至用户首页

通过

TC002

验证空用户名登录

1. 不输入用户名,输入正确密码 <br> 2. 点击登录按钮

显示用户名不能为空提示信息

显示用户名不能为空提示信息

通过

TC003

验证空密码登录

1. 输入正确用户名,不输入密码 <br> 2. 点击登录按钮

显示密码不能为空提示信息

显示密码不能为空提示信息

通过

TC004

验证错误用户名登录

1. 输入错误的用户名和正确密码 <br> 2. 点击登录按钮

显示用户名或密码错误提示信息

显示用户名或密码错误提示信息

通过

TC005

验证错误密码登录

1. 输入正确用户名和错误密码 <br> 2. 点击登录按钮

显示用户名或密码错误提示信息

显示用户名或密码错误提示信息

通过

  1. 物品信息模块功能测试

物品信息模块测试包括物品信息展示功能测试、物品信息添加功能测试、物品信息搜索功能测试、物品信息下单功能测试、物品信息评论功能测试。物品信息模块测试用例如表6.2-6.4所示。

物品信息展示功能测试用例设计如下表所示:

表6-2 物品信息展示功能测试用例

测试编号

测试目的

测试步骤

预期结果

实际结果

是否通过

TC001

验证正常展示物品信息

1. 进入物品信息展示页面 <br> 2. 浏览展示的物品信息内容

能够正常显示物品信息内容

物品信息内容正常显示

通过

TC002

验证物品信息链接跳转

1. 进入物品信息展示页面 <br> 2. 点击物品信息链接

能够跳转至相应物品信息详情页面

成功跳转至物品信息详情页面

通过

TC003

验证搜索功能

1. 进入物品信息展示页面 <br> 2. 使用搜索功能搜索物品信息

显示符合搜索条件的物品信息列表

显示符合搜索条件的物品信息列表

通过

TC004

验证物品分类展示

1. 进入物品信息展示页面 <br> 2. 选择物品分类

显示该分类下的物品信息列表

成功显示该分类下的物品信息列表

通过

TC005

验证物品信息的评论功能

1. 进入物品信息详情展示页面 <br> 2. 查看物品信息并发表评论

评论成功显示在物品信息页面

评论成功显示在物品信息页面

通过

TC006

验证物品信息评论页面跳转

1. 进入物品信息详情展示页面 <br> 2. 点击物品信息评论按钮

能够跳转至相应物品信息评论页面

成功跳转至物品信息评论页面

通过

TC007

验证物品信息下单页面跳转

1. 进入物品信息详情展示页面 <br> 2. 点击物品信息下单按钮

能够跳转至相应物品信息下单页面

成功跳转至物品信息下单页面

通过

物品信息添加功能测试用例设计如下表所示:

表6-3 物品信息添加功能测试用例

测试编号

测试目的

测试步骤

预期结果

实际结果

是否通过

TC001

验证添加物品信息

1. 进入物品信息添加界面 <br> 2. 输入物品信息 <br> 3. 点击添加按钮

物品信息成功添加到系统页面中

物品信息成功添加到系统页面中

通过

TC002

验证物品信息物品分类选择

1. 进入物品信息添加界面 <br> 2. 选择物品分类 <br> 3. 输入物品信息 <br> 4. 提交物品信息

根据选择的物品信息物品分类成功添加物品信息

根据选择的物品信息类型成功添加物品信息

通过

TC003

验证物品信息内容输入

1. 进入物品信息添加界面 <br> 2. 输入正确物品信息内容和答案 <br> 3. 点击添加按钮

物品信息内容成功录入系统

物品信息内容成功录入系统

通过

TC004

验证物品信息图片上传

1. 进入物品信息添加界面 <br> 2. 上传物品信息相关图片 <br> 3. 点击添加按钮

图片成功上传并与物品信息关联

图片成功上传并与物品信息关联

通过

物品信息搜索功能测试用例设计如下表所示:

表6-4 物品信息搜索功能测试用例

测试编号

测试目的

测试步骤

预期结果

实际结果

是否通过

TC001

验证物品信息输入物品名称搜索

1. 进入物品信息搜索界面 <br> 2. 输入物品名称 <br> 3. 确认并搜索

根据选择的物品名称关键词显示相关物品信息

根据选择的物品名称关键词成功显示相关物品信息

通过

TC002

验证物品信息输入物品分类搜索

1. 进入物品信息搜索界面 <br> 2. 输入物品分类 <br> 3. 确认并搜索

根据选择的物品分类关键词显示相关物品信息

根据选择的物品分类关键词成功显示相关物品信息

通过

TC003

验证物品信息选择审核状态搜索

1. 进入物品信息搜索界面 <br> 2. 输入审核状态 <br> 3. 确认并搜索

根据选择的审核状态关键词显示相关物品信息

根据选择的审核状态关键词成功显示相关物品信息

通过

物品信息评论功能测试用例设计如下表所示:

表6-5 物品信息评论功能测试用例

测试编号

测试目的

测试步骤

预期结果

实际结果

是否通过

TC001

验证物品信息输入评论内容

1. 进入物品信息评论界面 <br> 2. 输入正确的买家内容信息 <br> 3. 点击提交按钮

成功将评论信息发送至系统页面中

物品信息评论成功

通过

TC002

验证物品信息未输入评论内容

1. 进入物品信息评论界面 <br> 2.不输入某一资讯内容信息 <br> 3. 点击提交按钮

提示请输入完整

提示请输入完整

通过

物品信息下单功能测试用例设计如下表所示:

表6-6 物品信息下单功能测试用例

测试编号

测试目的

测试步骤

预期结果

实际结果

是否通过

TC001

验证未输入订单数量,点击提交

1. 进入物品信息下单界面 <br> 2.未输入订单数量,点击提交 <br> 3. 点击提交按钮

提示请输入订单数量

提示请输入订单数量

通过

TC002

验证未输入收获地址,点击提交

1. 进入物品信息下单界面 <br> 2.未输入收获地址,点击提交 <br> 3. 点击提交按钮

提示请输入收获地址

提示请输入收获地址

通过

TC003

验证未输入订单备注,点击提交

1. 进入物品信息下单界面 <br> 2.未输入订单备注,点击提交 <br> 3. 点击提交按钮

提示请输入订单备注

提示请输入订单备注

通过

6.3 性能测试

  1. 兼容性测试

表6-7 兼容性测试用例

用例编号

测试类型

测试目标

操作过程

预期结果

兼容性_01

设备兼容性

测试系统在不同设备上的表现

在多种设备上访问系统并记录表现

系统在各种设备上都能正常加载和显示页面

兼容性_02

浏览器兼容性

测试系统在不同浏览器上的表现

在多种浏览器中访问系统并记录表现

系统在各种主流浏览器上都能正常加载和显示页面

兼容性_03

分辨率兼容性

测试系统在不同分辨率下的显示效果

在不同分辨率的设备上访问系统并记录表现

系统在各种分辨率下都能适应并正常显示内容

兼容性_04

操作系统兼容性

测试系统在不同操作系统上的运行情况

在不同操作系统上访问系统并记录表现

系统能够在常用操作系统上正常运行和显示

  1. 性能测试

表6-8 性能测试用例

用例编号

测试类型

测试目标

操作过程

预期结果

性能_01

负载测试

测试系统在正常负载下的性能

逐步增加用户数来模拟不同的负载情况

系统能够稳定处理并响应不同数量的用户请求

性能_02

压力测试

测试系统在极端负载下的性能

以超过系统承受极限的用户数来测试系统

系统能够在高负载情况下仍然保持正常运行

性能_03

并发测试

测试系统能同时处理多少并发用户请求

同时发送多个并发用户请求来测试系统性能

系统能够有效地处理多个并发请求

性能_04

数据量测试

测试系统在大数据量下的性能

向系统添加大量数据并测试系统响应时间

系统能够在大数据量情况下保持较快的响应时间

6.4 测试结果

全部测试用例都已通过,且不存在漏洞,实现了本论文开始时所作要求和期望。本系统运行稳定,使用流畅,可以满足客户需求。试运行后进行系统评估,可以认为该系统达到预定的目标要求,可以满足用户的需求,也满足了系统开发前所作目标。系统在经过大量重复测试后运行十分稳定,安全实用,功能模块已经达到预定目标所需。在规定的时间内实现系统的大部分功能,且满足要求,节省开发成本,有助于提高科学管理水平,符合本人经济情况。

简而言之,经过严格的测试,可以发现该系统的功能和性能非常出色,它的精度、可靠性、稳健性都达到了极高的水平,而且它还支持快速、精细的点击操作,使用者的使用感受更加良好。此外,它还支持各种主流浏览器,满足不同的使用要求。

第7章总结与展望

在基于Node.js的校园闲置物品租售平台设计与实现中,我们通过普通用户、卖家和管理员等角色的划分,实现了多层次的用户管理和权限控制。通过物品信息管理、订单管理等功能模块,提供了便捷高效的交易体验。同时,新闻资讯管理、交流记录管理、订单评价管理等功能的引入,进一步增强了平台的交互性和用户满意度,有效保障了交易的公平性和平台的稳定运行。资源管理和通知公告的实施,不仅丰富了平台的内容,也促进了用户之间的信息交流与互动。

在未来的发展中,可以进一步优化系统的响应速度和用户体验,加强对用户行为的分析与挖掘,以实现个性化推荐和精准营销。加强对安全性的防护和隐私保护,是平台未来发展的重要方向之一,保障用户信息的安全与私密性,维护良好的用户口碑和品牌形象。

通过不断优化和创新,基于Node.js的校园闲置物品租售平台将更好地满足用户的多样化需求,成为用户信赖和选择的首要平台之一。通过本次项目,我不仅深入理解了Express框架的应用和校园闲置物品租售平台的设计思路,也积累了丰富的实际开发经验。未来,我将进一步优化系统的稳定性和安全性,引入更多智能化和个性化的功能,以更好地满足用户需求和市场变化。

参考文献

[1]Guo M ,Chan K H ,Kong T X , et al.Incentivising-by-penalty: The optimal return strategy for a reusable transport item rental platform[J].Transportation Research Part D,2024,(13): 39-41.

[2]李卯杰,罗平娟,任诗念,等.基于微信小程的序体育用品租赁服务平台的设计与应用[J].电脑知识与技术,2024,20(11):114-116.

[3]陈宾宾,李雪松,李子扬,等.基于Node.js的草畜平衡数据中间件设计[J].地理空间信息,2024,22(03):83-86.

[4]倪鹏程,严利,陈红,等.基于Node.js的农业物联网应用平台设计[J].信息与电脑(理论版),2024,36(03):60-63.

[5]Zhang X ,Wei X ,Zhang T , et al.Power of Sentiment Expressions on Peer-to-Peer Rental Platforms: A Mixed-Method Approach[J].Journal of Travel Research,2024,63(2):428-446.

[6]崔臣,宋甲旭.基于SpringBoot的校园二手交易系统研究[J].无线互联科技,2023,20(18):31-34.

[7]刘曼璐.情感化理念下的校园闲置交易平台设计研究[D].北京建筑大学,2023,(25):43-45.

[8]何流.共享经济背景下闲置物品共享平台的服务设计研究[D].景德镇陶瓷大学,2023,(01):61-63..

[9]兰沅文,杨唐威,舒厅,等.基于共享经济下的物品租赁系统的设计与实现[J].电子技术与软件工程,2023,(02):39-42.

[10]陈靖,张晨曦,吴一帆.考虑消费行为的共享经济平台定价模式研究[J].管理评论,2022,34(09):181-194.

[11]程晗蕾,鲁静.区块链技术驱动融资租赁平台优化策略探究[J].财会月刊,2022,(20):154-160.

[12]辜萍萍,郑宇辉.校园二手图书租售管理平台设计与实现[J].数字技术与应用,2022,40(02):127-130.

[13]R.H. A G ,R. A B ,S. M I .How emotional attachment influences lender participation in consumer-to-consumer rental platforms[J].Journal of Business Research,2022,(13):1211-1217.

[14]Xiaoxia Z ,Xi Z ,Rob L , et al.Identifying local bias on peer-to-peer rental platforms[J].International Journal of Hospitality Management,2021,(10):55-58.

[15]卢晨浩,勾魏魏,江季斌,等.共享智能仓库租赁平台的设计与实现[J].软件,2021,42(07):22-24.

[16]武千禧,周丰婕.共享经济背景下二手闲置物品交易平台租赁模式研究[J].河北企业,2021,(07):33-35.

[17]章连标,郝飞燕,刘佩佩.基于区块链技术的融资租赁平台设计[J].经营与管理,2021,(06):15-19.

[18]曾龄庆.大学生闲置体育器材租赁交易平台运营的实践探索[J].天津科技,2021,48(02):51-54.

[19]赵威,张应青,张仁凯,等.基于微信小程序的校园服装租赁服务平台的设计与实现[J].电脑知识与技术,2020,16(21):8-9+12.

[20]A Novel Environmental Monitoring System for Real Time using Arduino and Node JS[J].International Journal of Recent Technology and Engineering,2020,8(5):5520-5525.

致  谢

在完成本论文的研究与写作过程中,我深切感受到了来自各方的帮助和支持。在此,我衷心地向所有给予我帮助的人表示最诚挚的感谢。

我要特别感谢我的导师,不仅在学术上给予我无私的指导,而且在生活上给予我关怀和支持。是您严谨的学术态度和勤奋的工作精神将永远激励我不断前进。

我要感谢所有教导过我的老师们,是你们的教学知识和深入的指导为我的研究工作提供了宝贵的知识和灵感。

我还要感谢我的家人,他们的理解和支持是我完成学业的坚强后盾。在我遇到困难和挑战时,他们总是给予我鼓励和力量。

我也要感谢我的朋友和同学们,你们的陪伴和帮助使我的研究生活更加丰富多彩。我们共同度过的时光将成为我一生中宝贵的回忆。

最后,我要感谢所有支持本项目,为本项目提供建设性意见的人员,没有他们的协助,本论文无法顺利完成,虽然这次项目结束了,我的大学生涯也即将结束,但是在这过程中所经历的都将是我宝贵的财富,所有收获与挫折都将鼓励我继续前进,未来可期。

请关注点赞+私信博主,免费领取项目源码

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值