物品租赁系统的设计_第1页
物品租赁系统的设计_第2页
物品租赁系统的设计_第3页
物品租赁系统的设计_第4页
物品租赁系统的设计_第5页
已阅读5页,还剩47页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业论文题目:物品租赁系统的设计与实现前言问题提出背景随着国家经济和互联网飞速发展,国民生活水平还在不断提高,人们的生活也更加多姿多彩了。大家已经习惯通过网络来解决生活中的问题,网络已经无时无刻存在在大家的日常生活中,随着5G时代的到来,和5G基站的建设,未来会更加离不开网络这个环境。这个时候,针对对于租赁行业,运用计算机技术,开发一款用于物品租赁的系统,是适应现代化网络建设的必然要求,有助于提高出租方和承租方的效率,减少中间环境,降低费用,节省时间。因为现在租赁市场不统一、中介费用颇高、种类固定单一,这些问题一直困扰着广大的出租方和承租方,解决这样的问题刻不容缓。对于承租方来说,租东西是一个比较复杂的事情,比较耗费时间和精力,每次要租东西都要下很多APP,对比各个APP的价格,然后这些APP还需要收取高额的中间费用。因此,开发一款可用的物品租赁系统,可用为出租方和承租方提供方便,降低他们的时间成本和金钱成本。系统开发意义本开发项目旨在为大家在进行租赁行为的时候提供方便,进行租赁信息资源整合,不同平台有着不同的管理后台,不同平台之间信息不同步,不同的行业也存在因为租赁物品种类的不同,提供租赁的租赁平台不一样,就是相同行业中,也存在出租物品重点一样的租赁平台,这些平台之间的数据也不同步。在这些出租方发布出租信息和承租方浏览物品出租信息时,进行租赁的行为时,为了总是需要下载或者登陆注册多个平台,成为多个平台的用户,才能进行搜索浏览这一步骤。大大降低出租和承租方两方的效率,为了提高各方的工作效率,大部分的复杂的租赁信息,都是采用传统的方法进行租赁信息管理;对于承租方,大量的出租信息也没有一个比较好的、更有效的展现途径和渠道。本项目对于上述的问题,对于目前的物品租赁管理web平台系统的的研究,根据用户的需求,基于python的一个最近流行的框架Django和开源的mysql数据库,设计并实现一个相对来说比较完善的物品租赁管理web系统,物品租赁信息管理web系统的工作室是非常细致、琐碎的,物品租赁信息管理、用户信息管理、物品基本信息都是不能出错的,如果管理员手动管理,不可避免会导致出错,并花费用户的大量时间精力。本系统的开发就是为了解决各租赁信息平台管理中的信息不统一的问题,令出租方和承租方的租赁成功率提高。项目研究现状目前,中国租赁行业发展随着社会经济和互联网的发对租赁行业的管理水平依旧是低下的,效率不高、限于传统的方式,租赁信息彼此独立,很难给大众及时提供准确的信息,妨碍了市场有效的发展。随着中国人民生活水平的快速发展,物品出租行业的发展和人们的租借需求推动物品出租行业信息管理的全面爆发,虽然有许多大大小小的中介网站,但是在信息管理方面还是不够成熟统一和完善,效率低下,中介费高,出租方和承租方还会花费很多人力成本和时间成本。但是出租方通过网络的力量,在固定统一的租赁web平台发布信息,而承租方同样也通过上网,在固定统一的租赁web平台浏览搜索分类想要的出租信息,然后通过物品基础信息,得到出租房的联系方式,双方直接沟通对接,这样既节省成本,双方能及时沟通,减少广告成本,减少中介赚差价,又能快速解决问题。项目可行性分析根据现有的技术条件,及技术水平和能力,该系统是基于B/S(浏览器/服务器)结构的统一租赁信息管理web平台。采用面向对象编程语言python开发,数据库使用免费开源的mysql,web开发框架则使用python语言中最流行的框架Django。B/S架构通常需要在前端对用户的输入进行严格检验,同时在数据库中进行交互的时候,也要严格防止因用户输入问题而引发的错误异常。开发技术与工具简介PyCharm202forProfessional使用PyCharm2020.1专业版进行本系统的快速开发,PyCharm还会提示开发人员要遵循代码规范,如缩进、注释。PyCharm是一种PythonIDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。首先,PyCharm拥有一般IDE具备的功能,比如,调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。另外,PyCharm还提供了一些很好的功能用于Django开发,同时支持GoogleAppEngine,更酷的是,PyCharm支持IronPython。Django3.0Django是一个高级PythonWeb框架,它由经验丰富的开发人员构建,可以解决大部分Web开发的麻烦,三个特点:快速开发,高安全性和极具可扩展性。快速开发,Django目的是帮助开发人员在最快的时间内将程序功能实现。高安全性,Django强调安全性,并且它还让开发避开许多常见的安全性错误,例如安全概览,在Django中披露的安全问题,点击劫持保护,跨站请求伪造CSRF保护,登录加密,安全中间件。可扩展性,网上通常一些最繁忙的网站都利用Django的功能来快速灵活地进行扩展。Django提供了一个抽象的模型("models")层,为了构建和操纵你的Web应用的数据。Django具有“视图(views.py)”的概念,视图专门负责处理用户的请求并返回响应。模板层提供了一个对设计者友好的语法用于渲染向用户呈现的信息。Django提供了一个丰富的框架来帮助创建表单和处理表单数据。部署,Django可以运行在Apache,Nginx上,也可以运行在支持WSGI,FastCGI的服务器上。客户端发出请求服务端响应,进行处理,返回给客户端处理后的数据,具体数据交互如图2-1所示。图2-1django客户端服务器端数据交互图Fig2-1Djangoclient-serverdatainteractiondiagram工作机制,django使用manage.py文件和runserver命令来启动服务器,在一般情况下启动时,服务器就会载入和manage.py文件同一目录下的setting.py文件的各种配置,这个setting.py文件包括项目的全部配置信息,如UrlConf,mysqlconf等等,其中最重要的配置就是ROOT_URLCONF,这个配置会告诉大家django有哪些python模块应该作为本站的urlconf,默认是urls.py文件中的urlconf。当用户访问地址栏的url地址时,Django服务器会根据urlconf中的ROOT_URLCONF的设置来载入url配置。然后服务器会自动按照顺序匹配,按照URLConf里的提前配置好的配置项URLPatterns进行匹配。如果匹配成功就会调用相关的views函数,跳转到对应的template模板。最后这个被调用的views函数就会返回一个对象,比如HttpResponse对象。具体工作流程图如图2-2所示。图2-2django架构流程图Figure2-2.DiagramofthedjangoarchitecturePython3.8Python最大的优点就是简单清晰,python代表简单主义,指导思路是,对于某个特定的问题,只要有一种最好的方法来解决就可以了,python和别的大部分编程语言的一个最大的区别就是完全由每一行的开头的缩进来界定一个模块的界限,通过缩进让python代码显得更加的清晰和美观。Python的面向对象,和传统的面向对象语言(如C++和JAVA)不同。在python中,一切都是对象,模块、类、函数、变量、类的实例都是python对象。虽然python支持面向对象和面向对象编程,但是python不强制使用类的概念,他允许使用面向对象的思想来开发python代码。Python还拥有丰富的标准库来提供支持,可以通过导入某个模块包,来使用这个模块包的函数。除了基本数据结构以外,比如列表、字典、元组、字符串操作等等,还提供许多在写代码的过程中会经常使用的操作,例如正则表达式(re)、配置文件的创建和读取(os)。良好的扩展性,python和c/c++语言具有很强的交互性,可以在python调用c的模块,也可以在c调用python,对于一些对性能有高要求的模块,还可以使用c编写python模块。Python的优势:简单、学习成本低,容易阅读和维护具有伪代码的本质,使得在开发python应用程序的过程中,集中注意力去解决问题,而不是被各种各样的代码格式困扰。使用python开发的时候,不需要考虑内存管理这些底层问题。高可移植性,python已经被移植到各大平台,linux、windows等等。丰富的标准库,可以处理各种各样的工作,单元测试、线程、数据库、网页浏览器。Python劣势:运行速度,和许多语言相比,python的运行速度比较慢,有运行速度要求的话,可以使用c++语言重写关键代码。Python的开源是优点也是缺点,python语言的源代码不能加密,使用python开发的软件内部代码得不到保密。MySQL5.7MySQL是一种传统的关系型数据库工具,mysql的架构很开放,所以让选择使用mysql的用户可以任意搭配其他工具使用。而且伴随着mysql的各项技术逐渐的成熟,它的开源社区开发和维护的人也越来越多,支持的功能也越来越丰富,性能也在慢慢的变得更优异,对不同平台的支持数量也在增加。目前,mysql就因为它的功能稳定、性能优异、开发源代码、没有版权限制、使用成本低、历史悠久、用户活跃、遇到问题可以求助、安装包小且安装方便,便于个人或团队维护,在遵守GRL协议的情况下,可以免费使用,还可以根据自己的条件进行适当的二次开发,所以非常受到世界各地程序员的喜欢。Mysql使用的是C/S架构,所以使用的时候,会有两个程序同时运行。一个是mysql的主服务器进程,是指mysqld,运行在数据库服务器上,专门负责在服务器上用来监听和处理来自客户端发送的服务请求,然后根据这些请求的类型去对数据库内容进行操作,最后返回有关的信息如查询操作的数据库数据回传给客户端。另一个当然就是mysql的客户端进程,这个进程专门负责连接数据库服务器,并且会通过发出各种类型命令(请求)来通知服务器用户想要进行的操作。Mysql核心组成主要分为三部分:第一部分应该就是大部分基于网络的客户端/服务器端都有的部分,例mysql连接、授权认证登录、安全等。第二部分是mysql的核心服务功能,包括查询解析、分析和优化及缓存还有所有的内置函数,跨存储引擎功能:存储过程、触发器、视图。存储引擎属于最后一部分,它负责mysql中对数据的存放和提取,是mysql中最重要也是最最核心的部分,同样也是mysql和其他数据库能够区分开来的一个重要特性。在mysql数据库中,数据是通过数据库表的形式出现的。每一行记录的是各种记录的名称。每一列记录是的名称所对应的真实数据。许许多多的行和列就组成了一张数据库表。许多数据库表就构成了一个数据库。GitGit是一个免费的开源分布式版本控制工具,目的是快速高效地处理从小型到大型项目的所有内容。开发人员可以通过git这个工具上传到github、gitlab、gitee等免费的代码保管库中。Git优点:适合多人,多版本,分布式开发,强调每个开发的单独性。对于公共服务器压力和数据库的压力不大。速度非常快,开发灵活性强。多个开发者之间可以快速简单的解决之间的代码冲突。Git缺点:资料少、学习成本高、学习周期长、代码保密性查,一旦出现操作失误的情况,就会公开所以代码,从而造成代码泄露。系统需求分析用户需求分析本系统的用户主要是三部分。第一部分,急切希望能够物品能够出租出去,得到有效的处理的人们。第二部分,急切需要某一些物品,但是全款买下,没有那么多钱,所以选择租这种经济实惠、性价比高的方式的人群。最后一部分,短时间需要使用某一物品,但是过了这段时间,就完全没有必要性使用这类物品,也不想要买这个物品的人群。本系统的目标是成为国民统一的租赁信息发布浏览平台,具有强大的公信力。造福一方百姓。本物品租赁系统的设计与实现的关键点是高效率一键发布出租信息;用户和用户之前能够及时有效的沟通;出租方和承租方的租赁交易快速成功;出租方和承租方之前没有第三方的介入,减少中介费用。三种角色:出租方、承租方、系统管理员。出租方通过填写简单的物品信息,就能发布并且被想要此物品的人所看到。出租方和承租方能够得到对方的联系方式或者能够及时的聊天沟通,从而快速的进入到下一个环节租赁交易的产生。出租方通过租这种经济实惠的方式,能够快速的得到他所需要的物品,中间也不会产生高额的中介费用。第三种,比如长期从事某表演行业或者建筑行业,需要租赁表演服装或者建筑工具。功能需求为了完成满足用户需求,为用户提供高效的处理。完成物品租赁信息管理系统,提升大家工作效率,合理调度出租方手中的待出租物品的资源,本物品租赁信息管理系统应该具有下面的功能用户登录注册,完善基础信息填写部分。为用户提供丰富的出租物品信息,方便用户查找数据,物品分类。根据用户选择的物品便签分类。用户能够通过填写简单的信息进行快捷发布出租物品的信息。选择物品分类的种类,添加描述和标题,填入用户想要达到的金额,勾选特征标签,填写用户基础信息,进行实名认证。点击发布,就能够快捷进行出租物品发布用户也同样能够通过搜索框,搜索关键字词,发送请求,系统将会替用户在数据库中查询现有出租物品的描述进行匹配,匹配成功,则响应请求,并且浏览器会帮助系统渲染整个页面,返回查询到的出租品牌,用户根据返回查询物品,点击进入详情页面,用户就可以看见出租物品的详细信息服务详情和商品简介,还有出租方的联系方式。点击聊天,就可以直接和用户(出租方)进行沟通为了用户进行的交易活动的安全得到保障,出租方发布信息的时候需要进行相关实名认证的功能,发布的信息中不能出现敏感的文字,在用户(承租方)想要进行租赁行为的时候,也必须提供身份证上有关信息,进行实名认证,等待实名认证通过,这个时候系统会自动调用有关实名认证接口,实名认证通过后,用户(承租方)才能进行下一步租赁行为。生成租赁合同。租赁合同。系统自动生成租赁合同,用户需要通过交付押金等方式来进行抵押,以防承租方不付租金的情况。在进行租赁活动时,用户之间如果不通过本系统进行交易,换用线下直接租赁的行为,这之间有可能产生的任何问题造成的损失由出租方和承租方双方共同承担,本系统不付任何法律责任,也不会赔偿任何损失。当用户成功建立租赁合同之后,出租方通过物流等方式,将有关信息填入本系统流程中,逐步推进,承租方将通过支付租金和押金等功能,系统调用支付接口,先提前将资金汇入本系统公共账号,暂时进行保管,每月或每年定时自动打入出租方账号。性能需求分析对于一个软件,其对系统性能的要求就是对于做出的操作有比较快的反应。打开网络的时延根据网络情况而定,应该尽可能满足用户需求。通过对市面上多种系统的分析,用户对于可靠性的需求如下。如果用户不进行登录操作,则不能对系统进行访问;用户登录后,可以对自己的数据进行访问和操作,包括增加商品,修改商品信息,处理订单以及对自己个人信息的修改;要成功使用用户功能,必须在登录时输入正确的用户名和密码,用户名和密码不匹配者不可以使用上述功能。通过对市面的二手交易网站、租房网站、租车网站的用户使用的安全需求进行分析,得出一对一交流是物品租赁网站系统的最重要的一步,出租方和承租方的事先交流,有利于减少租赁过程中因为与某一方预期不符导致的交易发生纠葛、租赁双方对售后难达成统一意志的问题。还有另一个方面,本系统会采用严格的权限控制,用户信息存储在mysql中,实名信息不泄露。用户只能看到自己的实名信息。审核人员通过管理员账号登录,也看不到普通用户的实名信息。开发本系统资源使用需求:通过现有技术分析,依据本系统采用B/S架构和数据库等技术,本物品租赁系统至少需要一台配置了centos7的Linux系统,配置至少一个CPU,2G运行内存,20G磁盘空间,1Mbps公网带宽,一个主IPv4公网IP。MySQL服务器端运行环境要求最少一个CPU,2G运行内存,50G磁盘空间,1Mbps公网带宽,一个主IPv4公网IP。数据流图数据流图(DataFlowDiagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。在结构化开发方法中,数据流图是需求分析阶段产生的结果。数据流图或数据流程图(DataFlowDiagram),缩写为DFD。数据流图是描述系统中数据流程的一种图形工具,它标志了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换逻辑输出所需的加工处理。值得注意的是,数据流图不是传统的流程图或框图,数据流也不是控制流。数据流图是从数据的角度来描述一个系统,而框图是从对数据进行加工的工作人员的角度来描述系统。DFD显示系统将输入和输出什么样的信息,数据如何通过系统前进以及数据将被存储在何处。它不显示关于进程计时的信息,也不显示关于进程将按顺序还是并行运行的信息,而不像传统的关注控制流的结构化流程图,或者UML活动工作流程图,它将控制流和数据流作为一个统一的模型。数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。图3-1数据流图Fig3-1Dataflowdiagram数据流程图包括:指明数据存在的数据符号,这些数据符号也可指明该数据所使用的媒体;指明对数据执行的处理的处理符号,这些符号也可指明该处理所用到的机器功能;指明几个处理和(或)数据媒体之间的数据流的流线符号;便于读、写数据流程图的特殊符号。在处理符号的前后都应是数据符号。数据流程图以数据符号开始和结束,数据流图有两种典型结构,一是变换型结构,它所描述的工作可表示为输入、主处理和输出,呈线性状态。另一种是事务型结构,这种数据流图呈束状,即一束数据流平行流入或流出,可能同时有几个事务要求处理。本系统根据需求分析,依照以上的理论知识,确定了数据流图,如图3-1所示。E-R图E-R图也称实体-联系图(EntityRelationshipDiagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。它是描述现实世界关系概念模型的有效方法。本系统实体有用户、物品、实名认证、操作、找回密码、用户日志、租赁记录、标签、分类。每个实体都设计了若干属性。图3-2用户实体联系图Fig3-2Userentitycontactdiagram用户实体的属性是由账号id、用户名、密码、头像、头像缩略图、手机号、qq号、注册时间、邮箱、是否可以登录、是否活跃用户组成,用户实体和属性之间的关系如图3-2所示。实名实体的实体的属性是账号id、真实姓名、身份证号码这些属性,实名实体和属性之间的关系如图3-3所示。图3-3实名实体联系图Fig3-3userreal-nameentitycontactdiagram用户日志实体的属性由账号id、操作时间、统计类型id、操作id组成。用户日志实体和属性之间的联系如图3-4所示。图3-4用户日志实体联系图Fig3-4Userlogentitycontactdiagram操作实体的属性是操作id、操作名称。操作实体和属性的关系如图3-5所示。图3-5操作实体联系图Fig3-5Useractionentitycontactdiagram密码找回实体的属性由账号id、重置时间、验证码、重置状态、邮箱。密码找回实体和属性之间的关系如图3-6所示。图3-6找回密码实体联系图Fig3-6userretrievepasswordentitycontactdiagram出租物品实体的属性有物品标签、标识id、发布时间、物品标题、所属用户、物品详情、物品发布审核状态、数量、物品描述、押金、租金、所属分类。出租物品实体和属性之间的关系如图3-7所示。图3-7物品实体联系图Fig3-7objectentitycontactdiagram租赁记录实体的属性由记录id、物品id、生成时间、导出位置、结束时间、账号id。实体和属性的关系如图3-8所示。图3-8租赁记录实体联系图Fig3-8leaserecordentitycontactdiagram分类实体的属性有分类id、分类名称、物品id。分类实体和属性之间的关系如图3-9所示。图3-9分类实体联系图Fig3-9Classificationentityconnectiondiagram图3-10标签实体联系图Fig3-10Labelentitycontactdiagram标签实体的属性有标签id、标签id、物品id。分类实体和属性之间的关系如图3-10所示。通过对上面的系统实体和属性进行分析总结,得出系统的总体E-R结构图,如图3-11所示。图-311系统整体E-R图Fig3-11overalle-rdiagramofthesystem数据字典通过对用户实体和用户属性的分析,根据得到用户的数据,进行用户数据字典构造,如表3-1表3-1用户数据字典Table3-1userdictionaries名称描述定义用户使用本系统的人用户=账号id+昵称+密码+联系手机用户id注册用户的标识符11{数字}11头像注册用户的头像4{图像}20用户昵称注册时取得别名2{汉字}8密码被隐藏的机密信息8{数字|字母}20联系手机账号绑定的手机号码11{数字}11QQ号联系方式1{数字}14邮箱密码找回的联系方式8{数字|字母}20是否登录登录有没有进行限制1{0|1}1是否活跃用户账号的活跃度1{0|1}1通过对用户实名认证实体和其属性的分析,根据得到实名认证的数据,进行用户实名认证数据字典构造,如表3-2表3-2实名认证数据字典Table3-2realnameauthenticationdictionary名称描述定义真实姓名身份证的实名2{汉字}8标识id注册后的标识符4{数字}8身份证号码真实的身份证号码18{数字}18密码用户登录密码8{数字|字母}20通过对用户密码找回实体和其属性的分析,根据得到找回密码的数据,进行用户找回密码数据字典构造,如表3-3表3-3找回密码数据字典Table3-3.Retrievepassworddictionary名称描述定义重置时间用户最近一次找回密码的时间12{数字}12标识ID注册后的标识符4{数字}8重置状态密码的发送状态4{字母}8验证码找回密码的验证码4{字母}8通过对物品分类实体和其属性的分析,根据得到分类的数据,进行分类数据字典构造,如表3-4表3-4分类数据字典Table3-4Classificationdictionaries名称描述定义分类物品的所属类别分类=分类名称+分类id分类名称订单中的商品1{汉字}6分类ID下单的编号19{数字}20通过对物品实体和其属性的分析,根据得到物品的数据,进行物品数据字典构造,如表3-5表3-5物品数据字典Table3-5Itemdatadictionary名称描述定义物品用户出租的物品物品=标识ID+物品名+物品租金+物品押金+物品描述+物品数量+所属用户+发布时间+审核状态标识ID发布后的标识符4{数字}8物品名物品的名字2{汉字}12物品租金物品现在的租金金额{数字}物品描述对物品的注解和说明0{汉字|数字|字母}200物品数量物品的存货量{数字}用户id归属的用户id{数字}物品押金物品现在的押金金额{数字}发布时间用户发布出租的时间12{数字}12审核状态出租信息的审核状态3{汉字}3物品数量物品的存货量{数字}用户id归属的用户id{数字}物品押金物品现在的押金金额{数字}发布时间用户发布出租的时间12{数字}12审核状态出租信息的审核状态3{汉字}3通过对租赁记录实体和其属性的分析,根据得到租赁记录的数据,进行物品租赁记录交易数据字典构造,如表3-6表3-6租赁交易数据字典Table3-6Leasetransactiondictionary名称描述定义租赁交易统计的分类租赁交易=出租方ID+承租方ID+交易ID+生成时间+结束时间+导出位置出租方ID出租用户标识符4{数字}8承租方ID承租用户标识符4{数字}8交易ID交易时生成的标识符4{数字}8生成时间交易生成时间12{数字}12结束时间交易结束时间12{数字}12导出位置交易记录导出位置{字母|字符}系统总体设计系统概述前端拆分模板实现拼接,这样不需要修改每一个前端页面,只需要修改base页面就可以实现每一个页面统一部分的修改。通过api+ajax,实现页面的局部的动态加载。不需要刷新整个页面。使用redis数据库存放seesion状态,利用django自带的加密函数make_password实现密码加密。使用装饰器和权限管理限制用户可以访问的资源的权限,可以避免普通用户恶意修改信息,生成钓鱼网站使用查找、筛选、分页和ckeditor富文本编辑器等功能,将数据库内容进行分类、筛选功能作查询并使用Django自带的分页显示。系统功能设计本系统的大致功能如下:注册。通过填写用户名,密码,手机号码和短信验证码等基本信息,进行注册操作,成为本系统注册用户。注册成功自动跳转首页。登录。通过填写注册的用户名,密码,图形验证码等信息,进行登录操作。编辑个人信息。注册用户可以通过个人中心,查看或者编辑更改个人基础信息。一键出租。出租方用户可以通过添加发布想要出租的物品。用户可以搜索关键字,搜索用户所需要的物品。出租方用户可以在个人中心,对自己所发布的出租信息进行增删改等操作。用户可以收藏你浏览到感兴趣的物品,并且被收藏的物品可以在个人中心查询到。找回密码。用户可以通过登录界面的忘记密码功能重置密码,填写相关信息,可以重置密码。(前提是该用户完善了自己的邮箱信息)避免恶意注册。注册时需要填写手机号和接受到验证码。注册用户可以直接看到动态加载的出租信息,也可以选择类别和标签查询想要的出租信息。管理员账号。为了维护干净的网络环境,普通用户发布的出租信息需要审核通过,才能被所有用户所浏览。出租用户可以通过个人中心查看发布的出租信息审核状态。用户需要实名认证之后才能选择需要的物品进行交易。用户中心。用户可以上传头像(使用缩略图避免图片文件过大)、修高个人信息、更改密码、查看个人租赁信息和状态。本站用户之间可以通过qq号或者电话号码互相联系,支付宝账号交易。系统管理员成为中间人,提供保障,交易成功,自动生成租赁记录和合同。审核人员通过登录管理员账户,在用户中心,对普通用户的发布申请进行检查,检查通过后通过该申请。收藏功能。可以根据出租信息被收藏的次数,从大到小自动生产每天的最热榜单。诚信度。可根据用户上一次进行的租赁情况,进行打分。该分数可以作为该用户的诚信度,仅供参考。用户发布出租信息时,可以使用富文本编辑器,编辑出租物品的详细描述信息,使得给出租信息更吸引用户浏览,增加用户出租信息的可信度。系统体系结构根据以上的用户需求和功能需求分析,主要设计了三个模块:用户信息管理、发布物品信息管理、租赁记录管理。用户信息管理主要有登录、注册、密码找回的功能。发布物品信息管理主要由用户实名认证、出租方用户发布出租物品信息、出租方修改发布信息、管理员审核发布信息、用户收藏心仪物品等功能组成。租赁记录管理有导出出租记录、出租方和承租方进行聊天交流等功能。详细的系统体系结构如图4-1。图4-1系统体系结构图Fig.4-1Systemarchitecturediagram数据库表根据以上整个物品租赁系统的E-R图,根据实体和属性,设计了9张数据库表,如表4-1所示。表4-1系统中所以数据库表列表Table4-1listofalldatabasetablesinthesystem数据库表名称中文说明用途备注User用户表存储用户信息—Authentication用户实名认证表存储实名认证用户信息—FindPasswd找回密码密码找回表—Category分类表物品分类—Tag标签表物品标签—Goods物品表物品收藏表保存物品基础信息—Collection租赁记录表存储物品租赁信息—Userlog用户日志表保存用户日志—Operate操作表保存用户操作信息—对于本系统的所有用户信息的存储和管理,设计了用户数据库表,如表4-2。表4-2用户表Table4-2usertable属性名类型为空为主键为外键备注idvarchar(20)否是—账号IDusernamevarchar(150)否——用户昵称Avator_sorvarchar(150)否——头像Avator_smvarchar(150)否——头像缩略图passwordvarchar(30)否——密码Mobilevarchar(11)否——手机号First_nameLast_namevarchar(8)varchar(2)是是————名姓QQEmailDate_joinedvarchar(11)varchar(11)DateTime是是否——————QQ号邮箱注册时间Is_staffIs_activeBooleanBoolean否否————是否可以登录是否活跃用户对于本系统的所有用户实名认证信息的存储和管理,设计了用户实名认证数据库表,如表4-3。表4-3用户实名认证表Table4-3userreal-nameauthenticationtable属性名类型为空为主键为外键备注idvarchar(20)否是—账号IDRealnamevarchar(8)是——真实姓名Id_cardvarchar(14)否——身份证号码passwordvarchar(30)否——密码iphonevarchar(11)是—是联系手机对于本系统的所有用户找回密码的信息进行数据库存储和管理,设计了用户找回密码数据库表,如表4-4。表4-4找回密码表Table4-4retrievepasswordtable属性名类型为空为主键为外键备注idint否是是标识IDCreate_pwdvarchar(50)否——重置时间Status_pwdvarchar(16)否——重置状态Verifyvarchar(12)否——验证码对于本系统的所有发布物品信息的分类进行存储和管理,设计了物品分类数据库表,如表4-5。表4-5分类表Table4-5classificationtable属性名类型为空为主键为外键备注Category_idint否是—分类IDCategory_nameChar(10)否——分类名称对于本系统的所有发布物品信息的标签进行存储和管理,设计了物品标签数据库表,如表4-6。表4-6标签表Table4-6labeltable属性名类型为空为主键为外键备注Tag_idint否是是标签IDTag_nameChar(10)否——标签名对于本系统的所有发布物品信息进行存储和管理,系统设计了物品数据库表,如表4-7。表4-7物品表Table4-7itemstable属性名类型为空为主键为外键备注idint否是是标识IDTitlevarchar(10)否——物品标题User_idint否—是所属用户Category_idTag_idIntint否否—是是所属分类物品标签ContentRichTextUploading是——物品详情statusBoolean否——物品审核状态RentDecimal否——租金DepositDecimal是——押金DescPub_timetxtdatetime是否——物品描述物品发布时间numberint否——商品数量对于本系统的所有发布物品信息的收藏信息进行存储和管理,设计了物品收藏数据库表,如表4-8表4-8物品收藏表Table4-8itemscollectiontable属性名类型为空为主键为外键备注Collect_idint否是—标识IDStatusboolean否—收藏状态Goodsint否—是物品idCreate_timedatetime否—收藏/取消时间Useridint否—是用户id对于本系统的所有发布物品租赁信息进行存储和管理,设计了物品租金记录数据库表,如表4-9。表4-9租赁记录表Table4-9leaserecords属性名类型为空为主键为外键备注User_id1int否—是出租方IDUser_id2int否—是承租方IDOrder_idint否是—合同idOrder_creatime_timedatatime否——生成时间Order_end_timedatatime否——结束时间addressvarchar(50)否——excel表导出位置statisticsint否—是统计类型ID对于本系统的所有用户日志信息进行存储和管理,设计了用户日志数据库表,如表4-10。表4-10用户日志表Table4-10userlogtable属性名类型为空为主键为外键备注usernamevarchar(20)否是是用户IDAction_timedatatime否——操作时间addressvarchar(50)否——excel表导出位置statisticsint否—是统计类型IDActionvarchar(10)否—是操作名称对于本系统的所有用户操作信息进行存储和管理,系统设计了操作数据库表,如表4-11。表4-11操作表Table4-11operationtable属性名类型为空为主键为外键备注Operate_Idint否是是操作IDactionvarchar(10)否是操作名称用户模块用户通过注册成为本web系统用户,注册成功自动跳转首页。首页做了权限控制,检查用户是否登录,没有登录会自动跳转登录界面。通过填写注册的用户名,密码,图形验证码等信息,进行登录操作。注册用户可以通过个人中心,查看或者编辑更改个人基础信息。出租方用户可以在个人中心,对自己所发布的出租信息进行增删改等操作。出租用户可以通过个人中心查看发布的出租信息审核状态。用户可以上传头像(使用缩略图避免图片文件过大)、修高个人信息、更改密码、查看个人租赁信息和状态。用户通过填写账号、账户密码、图型验证码等信息,前台会检查输入是否合法,并给出提醒。输入合法,前台提交post请求给后台,后台检查该账号是否存在于本物品租赁系统的数据库中,如果不存在,前台提醒账户不存在,并自动跳转到注册页面。简单的前台流程如图4-1所示。图4-1登录流程图Fig4-1Loginflowchart用户通过在前台填写用户名、密码、确认密码、手机号等信息,前台检查输入是否合法,并给出提醒,输入合法,前台提交post请求给后台,后台检查该手机号是否存在于本物品租赁系统的数据库中,如果存在,前台提醒手机号存在,已经被注册。不存在,后台触发发送6位数字短信验证码接口。用户把手机接收得到的验证码填入验证码框,后台检查通过,前台提示用户注册成功。自动跳转主页。具体流程如图4-2所示图4-2注册流程图Fig4-2Registrationflowchart出租模块出租方用户可以通过添加发布想要出租的物品。用户可以搜索关键字,搜索用户所需要的物品。用户可以收藏你浏览到感兴趣的物品,并且被收藏的物品可以在个人中心查询到。设置管理员角色。避免普通用户恶意发布信息,普通用户发布的出租信息需要审核通过,才能被所有用户所浏览。审核人员通过登录管理员账户,在用户中心,对普通用户的发布申请进行检查,检查通过后通过该申请。出租方前台通过输入物品标题、物品分类、物品标签、物品图片详情等信息,提交发布申请,等待管理员审核。审核不合格,重新修改物品信息在提交审核。审核通过,该发布信息就会出现在首页,提供给大家浏览。详细流程图见图4-3。图4-3发布出租信息流程图Fig4-3releaserentalinformationflowchart租赁交易模块实现用户需要实名认证之后才能选择需要的物品进行交易。本站用户之间可以通过qq号或者电话号码互相联系,支付宝账号交易。系统成为中间人,提供保障,交易成功,自动生成租赁记录和合同。用户通过浏览首页,或搜索栏搜索关键字进行查询。点击物品详情页面,进入交易,交易前,双方必须先通过实名认证才能进行安全的交易。前台输入真实姓名和身份证号码,认证成功,交易继续。选择租赁方式,达成交易合同。具体流程见图4-4。图4-4租赁流程图Fig.4-4leasingflowchart

系统实现登录模块根据本系统的需求分析以及功能设计和数据库表设计,介绍一下我设计的部分界面:主界面、登录界面、注册界面、个人信息界面。首先介绍的是本系统的登录页面。用户输入已注册的用户名和密码,填写对应的图形验证码,点击登录。还有用户注册和忘记密码按钮。界面设计如图5-1所示图5-2登录界面Fig5-2Designdiagramofthelogininterface现在介绍的是本系统的注册页面。用户输入已注册的用户名和密码、二次确认密码、手机号,填写对应的短信验证码,点击登录。还有用户登录按钮。界面设计如图5-3所示。注册模块图5-3注册界面Figure5-3registrationpagedesign个人信息模块现在介绍的是本系统的个人信息页面。左上角是系统名称,右上角是搜索框、头像和用户名,点击用户名,可以跳转到个人信息界面,左部分时功能键,有部分是显示对应的信息或功能。界面设计如图5-4所示。图5-4个人信息界面Figure5-4Personalinformationinterfacedesigndrawing主界面模块现在介绍的是本系统的首页。左上角是系统名称,右上角是搜索框、头像和用户名,点击用户名,可以跳转到个人信息界面,主页主要是浏览出租方的出租信息和用户广场,右部分时用户的交易信息,交易信息下面是热门排行,主要是根据所有用户的收藏数来排序的。界面设计如图5-5所示。图5-5主界面Figure5-5Maininterfacedesigndrawing系统测试软件测试是保证软件质量和提高软件产品可靠性的主要手段之一,在软件生存周期中占有重要地位。持续集成系统在项目的编码阶段进行了大量的静态测试,及时发现了很多问题,通过不断的修改和测试,使系统趋于完善,系统还进行了功能测试,检查软件的功能是否与需求一致。测试术语Unittesting(单元测试),指一段代码的基本测试,其实际大小是未定的,通常是一个函数或子程序,一般由开发者执行。Integrationtesting(集成测试)被测试系统的所有组件都集成在一起,找出被测试系统组件之间关系和接口中的错误。该测试一般在单元测试之后进行。

Acceptancetesting(验收测试),系统开发生命周期方法论的一个阶段,这时相关的用户和/或独立测试人员根据测试计划和结果对系统进行测试和接收。它让系统用户决定是否接收系统。它是一项确定产品是否能够满足合同或用户所规定需求的测试。这是管理性和防御性控制。Blackboxtesting(黑盒测试),指测试人员不关心程序具体如何实现的一种测试方法。根据软件的规格对软件进行各种输入和观察软件的各种输出结果来发现软件的缺陷的测试,这类测试不考虑软件内部的运作原理,因此软件对用户来说就像一个黑盒子。AutomatedTesting(自动化测试),使用自动化测试工具来进行测试,这类测试一般不需要人干预,通常在GUI、性能等测试中用得较多。Bug(错误),有时称作defect(缺陷)或error(错误),软件程序中存在的编程错误,可能会带来不必要的副作用,软件的功能和特性与设计规格说明书或用户需求不一致的方面。软件缺陷表现特征为:软件未达到产品说明书标明的功能;软件出现产品说明书指明不会出现的错误;软件功能超出产品说明书指明的范围;虽然产品说明书未指出但是软件应达到的目标;软件测试人员或用户认为软件难以理解,不易使用,运行速度缓慢等问题。Bugreport(错误报告),也称为“Bugrecord(错误记录)”,记录发现的软件错误信息的文档,通常包括错误描述、复现步骤、抓取的错误图像和注释等。测试步骤首先,根据需求分析和原型图,确认软件的需求第二步,编写所以功能点的测试用例,进一步理清项目思路、以及项目的具体功能细节,培养自己的测试思维,使得在测试的时候能够对需求更新清晰,测试用例编写完成之后,需要提交对应的项目日志。第三步,功能测试,走通主流程,出现bug及时修改。关注每个端口的每个功能的实现,直到没有阻碍和bug,所以功能点都按预期实现。第四步,系统测试和兼容性测试,每个端口,每个页面的交互和跳转都能正常实现。Web系统需要兼容市面上的主流浏览器,如谷歌浏览器。第五步,编写测试报告,项目测试过程结束后,需要马上提交编写的测试报告,把测试报告的情况和过程还有处理结果编写成规范的文档,还需要对上面的步骤中存在的问题和bug进行分析总结。测试技术黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。黑盒测试的优点:适用于功能测试、可用性测试及可接受性测试;对照说明书测试程序功能;可测试长的、复杂的程序的工作逻辑,易被理解。白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,即清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。优点:迫使测试人员去仔细思考软件的实现;可以检测代码中的每条分支和路径;揭示隐藏在代码中的错误;对代码的测试比较彻底。让软件最优化。白盒测试技术(WhiteBoxTesting):深入到代码一级的测试,使用这种技术发现问题最早,效果也是最好的。该技术主要的特征是测试对象进入了代码内部,根据开发人员对代码和对程序的熟悉程度,对有需要的部分进行在软件编码阶段,开发人员根据自己对代码的理解和接触所进行的软件测试叫做白盒测试。这一阶段测试以软件开发人员为主,在JAVA平台使用Xunit系列工具进行测试,Xunit测试工具是类一级的测试工具对每一个类和该类的方法进行测试。黑盒测试技术(BlackBoxTesting):黑盒测试的内容主要有以下几个方面,但是主要还是功能部分。主要是覆盖全部的功能,可以结合兼容,性能测试等方面进行,根据软件需求,设计文档,模拟客户场景随系统进行实际的测试,这种测试技术是使用最多的测试技术涵盖了测试的方方面面,可以考虑正确性、可用性、边界条件、性能、压力测试、错误恢复、安全性测试、兼容性。功能测试用例由于本次测试是系统测试。测试的依据主要是需求文档。主要测试基本页面的连接和登录注册的访问、主页的访问。基本页面的连接访问主要是网站所有的页面能够正常访问,具体测试结果如表6-1所示。表6-1基本页面的正确链接验证Table6-1Correctlinkvalidationforthebasepage测试用例编号测试项目标题测试内容测试结果1所有基本页面的正确链接验证网站首页所有链接有效;验证网站首页的图片都能正确装入;验证网站中各个页面都能显示正常信息每个链接都链接正确。登录页面主要登录的功能,具体测试项和测试结果如表6-2所示。表6-2登录页面Table7-2loginpage测试用例编号测试项目标题测试内容测试结果2登录页面的测试验证网站登录页面是否有效;验证登录情况。用户登录时,在登录页中输入用户名和密码,系统自动识别登录用户的身份及权限。登录页面有效;登录页面登录成功后分配权限正常。用户注册验证主要是注册页面的功能测试,具体测试项和测试结果如表6-3所示。表6-3用户注册页面Table6-3userregistrationpage测试用例编号测试项目标题测试内容测试结果3注册页面的测试验证网站用户注册界面是否对输入的数据进行后台验证;是否对用户的输入有约束;输入错误,是否给出相应提示。注册页面有效注册页面成功验证并匹配出无效和错误用户及密码并给出相应的提示浏览页面主要是用户浏览的分类,标签,出租物品信息详情页面等能不能正常跳转和显示,具体如表6-4所示。表6-4浏览页面Table6-4Browsethepage测试用例编号测试项目标题测试内容测试结果4浏览页面的测试验证网站浏览页面是否有效;验证是否能按分类浏览出租物品信息;点击搜索栏填入数据能否正常查询浏览页面有效;可以按照分类和标签浏览出租物品信息;可以通过搜索栏搜索数据。发布信息页面的验证主要是对发布信息流程的验证和审核的发送验证,具体的测试内容和测试结果如表6-5所示。表6-5发布信息页面Table6-5Publishinformationpage测试用例编号测试项目标题测试内容测试结果5用户发布出租信息的测试验证网站发布页面是否有效;用户是否能够成功发布进入等待审核;提交审核未通过,能否修改。发布页面有效;能够发布出租信息进入等待审核状态;能够修改出租信息。修改个人信息页面主要是对是否能成功修改数据库中的最终数据做测试,具体测试内容和测试结果如表6-6所示。表6-6修改个人信息页面Table6-6Modifythepersonalinformationpage测试用例编号测试项目标题测试内容测试结果6用户修改个人信息页面的测试验证展示个人信息页面是否有效;用户是否能够成功修改个人信息;用户是否能成功修改自己的头像个人信息页面有效;能够成功修改用户自己的信息;能够成功修改自己的头像。管理员审核发布信息页面测试主要是管理员订单页面是否正常,具体测试内容和测试结果如表6-7所示。表6-7管理员审核发布信息页面Tabl7-7Theadministratorreviewsthereleaseinformationpage测试用例编号测试项目标题测试内容测试结果7管理员审核发布信息页面的测试验证管理员审核发布信息页面是否有效;是否能够对信息进行审核。审核发布信息页面有效能够成功审核发布的出租信息忘记密码页面测试主要是测试邮箱能否正常发送符号要求的邮件,具体测试内容和测试结果如表6-8所示。表6-8忘记密码页面Table6-8Forgetpasswordpage测试用例编号测试项目标题测试内容测试结果8忘记密码的测试验证忘记密码页面是否有效;用户是否能够成功重置密码忘记密码页面有效用户能够成功重置密码结论论文工作伴随物品网上出租的快速发展,为了提高用户的效率,开发一款多种类的物品租赁系统时候非常有必要的。本系统采用B/S架构,前后台的数据交互、显示以及连接数据库,进行数据库查询等操作都基于pyt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论