版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、大学生软件众包平台的设计与开发1 引言选题背景随着Internet的飞速发展,人与人之间的距离被无限拉近,除了时间上的距离,空间上不再存在距离,为人们提供诸多便利。众包(Crowdsourcing)1一词最早出现在美国连线杂志上,记者杰夫霍维将其定义为:“一个公司或机构把过去由员工执行的工作任务,自由自愿的形式外包给非特定的大众网络的做法。”众包就是把特定的工作任务,通过网络公示给受众,并向按需要完成组织任务并支付约定报酬的大众承包模式2。众包也是利用共享网络外包给公众个人3。众包是一种极具代表性的群智感知模式,是一种新型的解决问题的方式。 众包以用户为基础,以自由参与的方式分发任务4。相应的
2、以软件众包存在的众包形式,使得软件供需双方不受时间,地点,工作方式的限制,为开发者提供一个公平、自由的竞争环境。开发者将自己知道的知识、技能、经验、智慧借由众包平台转化为相应的经济利益,企业则利用众包平台上千万开发者的知识、智慧、能力、经验获取低成本的高质量的服务。伴随着众包模式的实践开来,一部分众包网站如雨后春笋般出现,大多的众包网站都是采用需求竞标模式和雇佣服务模式。虽然平台众多,但都是基于需求而实现的,即由企业方发布需求、等待报名、服务方接受需求、企业方挑选成稿、交易成功或失败、交易评价。本项目将联合实习实训企业构建大学生软件众包平台,吸引合作实习企业在平台上发布项目,积极推进辅修专业同
3、学参与项目众包,为计算机辅修专业培养复合创新型人才探索新的途径。研究意义大学生软件众包平台为大学生提供了一个发挥个人能力的平台,同时也能为自己的大学生活获取一定的薪金。在个人的成长中,经验永远是通过实践获得的,没有实践,凭空的想象是不能提高自己的能力,为此如果有一个平台来提供这种服务,既可以为企业招募一些人才同时也为企业获取一些利益,相对而言大学生获得的是经验和能力的提高。本网站是一款应用型的网站,它面向的是大众(主要是大学生)和企业之间的交流,基于软件的设计与开发,为双方提供一个发挥的平台,为双方提供便利的条件。论文结构本文主要对大学生软件众包平台的设计与开发的过程,做出一个概述,主要分为以
4、下几个部分:第一章引言,主要介绍该平台的选题和研究背景。第二章需求分析,主要对该平台需求做相应的分析。第三章系统设计,在平台功能的基础上做出详细的设计。对平台的数据库概念做出逻辑结构设计。第四章系统模块功能实现,描述程序的结构实现和功能模块的实现。第五章系统测试,针对现有的功能对单个模块进行白盒测试。第六章总结,主要对本文做出总结,并分析其中的不足。小结本章主要介绍了大学生软件众包平台的应用背景和研究意义,并阐述了本文的研究内容和论文的结构。2 需求分析系统功能需求分析作为一个大学生软件众包平台,该平台主要为用户与用户之间的交流,提供一个公平友好的平台,提供一个公正的平台,同时也为用户提供一个
5、机会,提高自己能力的机会。该平台的用户类型分为用户和管理员。用户同时兼具两种角色,既是发布项目需求的发布者,又是接受项目的接受者,在发布或接包之前需要进行实名认证,认证之后可以享有正常的权利。用户可以对个人基本信息的管理、对个人技能的添加、对项目案例的管理等操作功能。该网站的管理员具有对用户的管理,如:用户的实名的认证操作;用户发布项目的上架操作;对网站中一些分类管理,如:应用类型、项目类型、开发语言、开发技能、产品中间件、可担任岗位等分类的管理。这个平台基于现有的众包模式,需求竞标模式和雇佣服务模式,为用户提供更好的便利条件,致力于为用户提供更好的服务。可行性分析项目开发最忌讳的就是推倒重来
6、,不仅浪费资源还严重浪费时间,所以在开发时进行可行性分析是十分重要的。这既可以保证资源的合理使用又可以避免不必要的失败。大学生软件众包平台可以使大学生在大学生生涯中得到一些社会上的经验,为将来的职业生涯提供一个好的演练。同时也能为企业提供一个发现人才的渠道。目标和方案的可行性随着计算机网络的迅速发展,原有的企业模式受到现有的众包模式的影响,不仅仅局限于公司内部的交流,而众包模式的出现打破了这一局势,为企业带来非常大的成本和时间的节省。大学生软件众包平台的出现,对大学生而言,一个认识自己能力和锻炼自己的机会,是充分了解社会企业的需求,为社会的和谐发展提供自己的一份努力。该平台的致力于为企业和大学
7、生之间提供一个沟通和交换的介质,保证双方信息的安全性,通过对一些规则的制定来保证双方的权益。在该平台上经过审核上架之后的内容符合现在社会的安定、和谐的要求,屏蔽一些不和谐的言论,旨在打造一个和谐友好的平台。技术可行性该平台基于Java6语言和JSP7技术,使用SSM8框架进行开发,关系型数据库采用MySQL9,非关系型数据库采用Redis10做缓存,使用FastDFS11分布式文件系统做文件上传下载的处理,并用Nginx12代理这一服务。MySQL数据库对于一个小型项目来讲是完全可以保证项目的完美运行的,而且操作简单,速度也很快,可以和SSM框架中Mybatis13很好的结合起来,使用更加灵活
8、,易操作。这几者的结合可以实现这个平台的设计。社会可行性随着IT消费化趋势的不断演进,企业IT和消费IT的界限越来越模糊,区分也越来越难,对于更重视体验的个人消费者,也对企业IT系统的灵活操作、多元化性能等提出了更高的要求14。但是在供给上,传统的IT服务企业却要面临着质量竞争、重复开发、产业生产效率低下等困境。传统的服务模式已无法适应当前日新月异的市场需求,无法做出快速、精准的反应。因此,借助互联网,通过众包模式整合社会资源,建立由IT从业者、IT企业及各个行业用户组成的IT服务生态系统,完成服务交易、获得可信交付,已是大势所趋。所以,该平台的研发具备一定社会可行性。经济可行性大学生软件众包
9、平台改变传统软件的外包模式,它的出现必定为企业、个人提供良好的便利,即可节约企业的成本,用户又可以获取一部分利益。不仅可以集思广益,还能节约时间,现如今社会成功的一个关键元素就是速度。在这个平台上,能用极少的钱和少量的时间,发现和解决技术问题。所以该平台的开发和实践还是具有很好的经济可行性的。系统主要的功能系统按照服务用户类型分为两个模块,分别为前台子系统和后台子系统。每个模块的功能各不相同。一、前台子系统的主要功能如下:1)用户注册与登陆:用户在发布或者接受项目之前,必须经过登录。2)项目大厅:按类别分页显示所有的众包项目。3)工作台:发包方发布软件需求(软件类型分为:整包或者悬赏)。4)个
10、人中心:修改个人信息。5)交易详情:用户查询、管理交易记录(包括充值,消费,转账,收入)。6)项目记录:用户查询发布或者接受的项目详细信息。二、后台子系统的功能如下:1)项目管理:对用户发布的项目进行审核,管理员可以查看项目的详细信息,审核之后上架。2)用户管理:管理员登录之后,对用户的实名信息进行审核,审核之后修改用户的状态,已认证。3)分类管理:平台中各种分类进行管理,主要是添加和删除。4)交易详情:查看项目交易详细信息。系统用例图本系统的用户有两种,分别平台用户和管理员。用户可以实现登陆、注册、发布项目、接受项目、个人信息管理、技能信息、项目案例、发布项目管理等功能。管理员可以实现登录、
11、项目管理、分类管理、用户管理、交易详情等功能。用户用例图平台的用户用例图如图2-1所示。图2-1 用户用例图Fig. 2-1 User use case diagram管理员用例图平台的管理员员用例图如图2-2所示。图2-2 管理员员用例图Fig. 2-2 Administrator use case diagram小结本章主要对该平台的需求进行分析。3 系统设计系统的设计思想大学生软件众包平台按照用户类型分为两种:平台用户和管理员。用户在本平台上操作之前,需进行注册,然后登陆。登陆之后可以在平台上进行各种操作,但是在进行发布或者接受项目时需已实名认证才可以操作,具体的实名认证,是由平台管理员
12、进行认证。用户在登陆之后可以在个人中心一项中完善自己的各种信息,在项目大厅可以查看已上架的项目的信息,在控制台中操作自己的项目或者完善自己所接受的项目。至于管理员具有管理用户的认证,对项目的上架操作和分类管理等功能。系统的总体结构设计该系统按照用户类型分为两大模块:1.用户模块:交易记录、项目大厅、工作台、个人中心。2.管理员模块:分类管理,项目管理,用户管理和交易管理。大学生软件众包平台的总体结构图如图3-1所示。图3-1 系统总体设计图Fig. 3-1 System overall design chart系统各模块间的具体说明根据图3-1所示的系统结构设计图,对单个模块进行说明:1)用户
13、基本信息具体功能:用户可以根据自己的实际信息编辑自己的基本信息,上传个人头像,设置年龄、QQ、邮箱、手机号等信息,并提交到数据库中,达到完善个人信心的功能。2) 用户技能信息具体功能:在该平台上项目的分类,应用的分类,使用语言的分类等信息都可以在用户技能信息中进行个人设置,这里设置的内容,之后将在现使用的信息的界面显示用户的技能信息。3) 用户项目案例具体功能:用户可以编辑自己添加的项目案例的各种信息:项目名、应用技术、语言、中间件、网址、截图等信息。用户的项目案例可以有多个,完全由用户自己所管理。这部分的信息也是在显示用户的项目案例模块的信息。4) 用户实名认证具体功能:用户上传自己的姓名、
14、身份证号、身份证正反面图片等信息,提交到数据库,由管理员进行认证,认证之后,不会再有用户认证的提示。5) 项目大厅具体功能:分页展示上架的项目信息,显示项目的项目名、类型、基本要求、金额、报名人数等信息。6) 我的项目 具体功能:显示用户的已发布或待发布的项目信息,已发布的项目按照分类,显示项目的进程。用户在这个模块可以管理自己的发布的项目,选择接包人,完成项目以完成交易,对接包人进行评价。7) 我的任务具体功能:显示用户竞标或者报名的项目,可以上交一些附件信息,对某一项目的发包人进行评价。8) 发布需求具体功能:用户可以发布自己需求,编辑自己的项目信息:项目名、悬赏或项目、预算或赏金、周期、
15、具体要求、附件等信息,提交之后通过接口上传数据库以达到发布项目。9) 交易记录具体功能:用户查看自己的余额,进行充值、提现等操作。可以查看自己的交易记录:充值记录、提现记录、支出记录、收入记录。 10) 管理员分类管理具体功能:管理员在此界面中可以进行对各种分类的操作,添加时输入点击添加即可,删除的点击删除即可。 11) 管理员项目管理 具体功能:管理员可以查看项目的基本信息,项目上架等操作12) 管理员项目管理具体功能:管理员可以查看用户的基本信息、认证信息,可以点击认证实现对用户的实名认证,即修改数据库中用户状态。数据库设计数据库需求数据库需求就是要充分了解这个平台,平台中的用户需要用到的
16、数据有哪些,这些数据在数据库中如何存放才能使系统中的各项功能都能完整地实现,数据能够在数据库中能够完成插入、更新、删除等基本操作。本系统采用关系型数据库MySQL来记录该系统中的数据的流动,针对该系统的功能特点,以下是该系统的信息需求:用户按照类型可分为管理员,用户。用户根据自己软件的需要发布项目或悬赏。用户可以编辑自己基本信息。用户可以添加自己的技能。用户可以添加自己的项目案例。用户可以查看自己的交易记录。用户可以管理自己的已发布或者已接手的项目。管理员可以管理各种分类信息。数据库E-R图本系统根据数据库需求进行分析,可以规划出来的实体类有用户、管理员、任务、项目、项目案例、用户技能、用户信
17、息、应用分类、交易记录等,实体之间的关系用E-R图表示如图3-2所示。图3-2 系统总体结构E-R图Fig. 3-2 System overall structure E-R diagram 数据库中的表数据库中的存放重要数据的表及其简要描述如下:用户信息表:表名为tb_user,主要存放用户的登录信息。表结构见表3-1所示。表3-1用户信息表Tab.3-1 User information table字段名类型长度是否为空约束idbigint20否主键usernamevarchar20否检查passwordvarchar30否检查createddatetime是updateddatetime
18、是moneydouble检查imagevarchar100否默认为空phonevarchar11是 唯一statusint11否默认为0用户基本信息表:表名为tb_user_info,主要存放用户的基本信息。表结构见表3-2所示。表3-2用户基本信息表Tab.3-2 UserInfo information table字段名类型长度是否为空约束idbigint20否主键sexvarchar2是默认为1addressvarchar30是yearsdouble是introducevarchar200是qqvarchar11是wechatvarchar30否emailvarchar30是检查crea
19、teddatetime是updateddatetime是namevarchar50是idNumbervarchar18是检查长度是否为18image1text是image2text是管理员表:表名为tb_admin,主要存放管理员的登录信息。表结构见表3-3所示。表3-3管理员信息表Tab.3-3 Administrator information table字段名类型长度是否为空约束idint11否主键passwordvarchar20否检查usernamevarchar30否唯一createdtimestamp是updateddatetime是项目案例表:表名为tb_cases,主要存放项
20、目案例的基本信息。表结构见表3-4所示。表3-4项目案例表Tab.3-4 Project case table字段名类型长度是否为空约束idbigint20否主键uidbigint20否外键namevarchar30是检查长度cyclevarchar30是roletext是skilltinytext是introducevarchar800是createddatetime是updateddatetime是pictext是交易记录表:表名tb_record,主要存放用户交易记录信息,表结构见表3-5所示。表3-5交易记录表Tab. 3-5 Trading record table字段名类型长度是否
21、为空约束idbigint20否主键uidbigint20否外键recordint11否moneydouble否检查默认createddatetime否updateddatetime否应用类型表:表名为tb_kind,主要存放应用类型的基本信息。表结构见表3-6所示。表3-6应用类型表Tab.3-6 App Types table字段名类型长度是否为空约束idbigint20否主键namevarchar30否唯一createddatetime是updateddatetime是产品中间信息表:表名为tb_product主要存放产品中间件的信息。表结构见表3-7所示。表3-7产品中间件信息表Tab.
22、3-7 Product middleware information table字段名类型长度是否为空约束idbigint20是主键namevarchar30是唯一createddatetime否updateddatetime是技能信息表:表名tb_skill_info,主要存放用户的技能信息,表结构见表3-8所示。表3-8技能信息表Tab. 3-8 Techinfo table字段名类型长度是否为空约束idbigint20否主键uidbigint20否外键app_kindtinytext是pro_kindtinytext是languagestinytext是developtinytext是p
23、roducttinytext是competemttinytext是createddatetime是updateddatetime是项目表:表名tb_project,主要存放用户发布的项目信息,表结构见表3-9所示。表3-9项目表Tab. 3-9 Project table字段名类型长度是否为空约束idbigint20否主键namevarchar30否uidbigint20否外键requirestext否kindint11否外键enclosuretext否stationtext是skilltext否cyclevarcha20否budgetdouble是检查contactvarchar30否ema
24、ilvarchar20否检查phonevarchar11否检查statusint11否默认rewaddouble是检查classifyint11否createddatetime否updateddatetime否开发类型表:表名为tb_devolopkind,主要存放开发类型的基本信息。表结构见表3-10所示。表3-10开发类型表Tab.3-10 Development type table字段名类型长度是否为空约束idbigint20否主键namevarchar30否唯一createddatetime是updateddatetime是项目类型表:表名为tb_prokind主要存放项目类型分类的
25、信息。表结构见表3-11所示。表3-11项目类型表Tab.3-11 Project Types table字段名类型长度是否为空约束idbigint20否主键namevarchar30否唯一createddatetime是updateddatetime是开发语言表:表名为tb_skill,主要存放开发语言分类的信息,表结构见表3-12所示。表3-12开发语言表Tab. 3-12 Development language table字段名类型长度是否为空约束idbigint20否主键namevarchar30否唯一createddatetime是updateddatetime是任务表:表名tb_
26、task,主要存放上架项目的接受任务的信息,表结构见表3-13所示。表3-13任务表Tab. 3-13 Task table字段名类型长度是否为空约束idbigint20否自增uidbigint20否主键pidbigint20否主键tidbigint20否外键accessorytext是statusint11否检查fgradeint11是检查jgradeint11是检查jappraisetext是fappraisetext是createddatetime是updateddatetime是岗位表:表名 tb_station,主要存放岗位的基本信息,表结构见表3-14所示。表3-14岗位表Tab.
27、 3-14 Station table字段名类型长度是否为空约束idbigint20否主键namevarchar30否唯一createddatetime是updateddatetime是小结本章主要介绍大学生软件众包平台的系统设计和数据库设计过程。4系统模块功能实现程序开发结构该平台的程序设计基于SSM框架来实现,使用MVC的思想理念设计系统结构,其中pojo包下类对应数据库中的表,在类中使用Table注解标记表名即可对应数据库中的表;mapper包下的类是由Mybatis框架向pojo做出的数据操作,代表着数据的增、删、改操作即数据库操作层;service包下的类对应mapper层,代表着服
28、务层;controller包下的类接受请求路径并反馈即控制层,是整个程序的请求转发、操作的核心。程序开发结构1如图4-1所示。图 4-1 程序结构1界面Fig.4-1 Program structure 1 interfaceresources下存放的是关于SSM框架的配置文件,包括spring、springMVC、Mybatis、FastDFS、Redis、jdbc等配置文件。webapp存放的是前端所需要的bootstrap和layui的css和js文件,其中jsp文件夹下的admin和user分别对应管理员、用户的jsp界面。程序开发结构2如图4-2所示。图 4-2 程序结构2界面Fig
29、.4-2 Program structure 2 interface登陆、注册功能实现该平台的网页界面是由JSP技术来实现的,使用的前端bootstrap和layui框架,来做界面。在本平台上操作是,需注册之后,登录即可。用户分为平台用户和管理员。管理员不需要注册,输入固定的账号和密码,即可登录。平台用户注册实现用户在平台上使用,无账号需要注册,注册时,需要使用手机号注册,在注册界面的手机号输入一栏中,输入手机号,会触发该标签的onblur()事件,会发出一个ajax15请求,携带手机号到后台,之后检测手机号是否已注册过,返回状态码,根据状态码的不同,界面会有相应的提示。注册界面的每一个输入框
30、都有相应的onblur事件来保证输入的内容是合适的。输入无误之后注册,会有提交注册的监听事件,发送一个路径为/user/regd的post请求,请求携带注册的一些数据,服务器由RequsetMapping的路径来接受该请求,同时对前台输入的密码进行MD5加密,由后台保存数据到用户登录表和用户基本信息表。返回注册的状态码,由前台界面进行显示处理。注册界面如图4-3所示。图 4-3 用户注册界面Fig.4-3 Register interface平台用户登录实现用户在拥有账号密码之后,可以在登录界面进行登录。用户输入自己注册的手机号来作为账号进行登录。输入的账号之后,会触发该标签的onblur()
31、事件,会发出一个ajax请求,携带手机号到后台,之后检测手机号是否已注册过,返回状态码,根据状态码的不同,界面会有相应的提示。输入无误之后登录,前台监听事件触发之后向后台发送为/user/login的POST请求,请求携带账号密码等信息,首先后台先有前台获取的账号即手机号来向数据库查询的用户,如果用户密码与前台传入的经MD5加密之后的密码一致,返回状态码,成功为200,失败为其他。跳转页面由前台发送请求进行跳转。登录界面如图4-4所示。图 4-4 用户登录界面Fig.4-4 Login interface管理员登录实现管理员的登录界面比较简单,直接输入账号密码登录即可,如果账号密码不正确,则不
32、能跳转到后台管理界面。验证的方式与用户的验证基本一致。管理员登录界面如图4-5所示。图 4-5 管理员登录界面Fig.4-5 Administrator login interface用户模块功能的实现在用户页面上主要包括用户发布需求、工作台、个人中心、项目大厅和资金账号无大主要功能。用户页面设计如图4-6所示。图 4-6 用户界面Fig.4-6 User interface用户发布需求模块在用户主界面上,发布需求中的整包或悬赏,前台就会发送一个跳转界面的GET请求,服务器会返回一个ModelAndView,由前台解析进行显示。查看“整包”,就会返回相应的整包界面require-project
33、.jsp,在这个界面中填入相应的内容,提交达到发布需求的目的。但是在提交时,layui框架的表单会校验,各个输入框的值是否符合既定要求,在符合要求之后,发送一个“/user/addProject”的POST请求,同时携带表单的数据到后端,后端调用UserController中的addProjectd方法,该方法会接收从前端传来的表单数据,直接映射为Project实体类,之后对传入的数据进行简单的处理,调用projectService的save方法,保存到数据库中,返回保存的状态码,之后由前台进行显示。查看“悬赏”的操作和“整包”处理基本一致。在该页面中存在着文件上传,这里使用的是layui的文
34、件上传的框架代码,上传之后,发起一个POST请求,在FileController中调用uploadfile方法,该方法获取文件将文件通过FastDFSClientUtils的upload方法上传到配置fastDFS的服务器上,返回该文件在服务器上的路径。同时该方法对上传的文件的文件名、路径和状态码进行封装,返回FileUploadResult实体类的JSON数据。前台得到JSON数据之后,进行字符串拼接,使用js对表单中隐藏的附件的标签进行赋值,保证上传到数据库的附件信息是一串字符串。在进行显示的时候只需要对着字符串截取形成文件的list集合即可。用户页面用户发布需求页面设计如图4-7所示。图
35、 4-7 用户发布需求界面Fig.4-7 User release requirements interface用户工作台-发布模块在该模块中,用户可以查看自己发布的项目,分为整包、悬赏和未上架的项目。查看“整包”,发起请求,携带从session中取出的用户的id和默认的参数项目分类1,返回ModelAndView,跳转到table1.jsp。调用ProjectService的getProject方法,设置参数用户的id和项目分类,返回一个存放项目信息的list集合,集合中的每一项都是一条项目信息。在table1界面中可以选择查看竞标中、实施中、已完成项目的信息。在“竞标中”的模块中,用户可以
36、看到自己发布项目,用户的报名情况,用户可以点击用户头像查看用户的信息,来确定中标的人选,只要 “标中”即可修改这条信息的状态为进行中,修改。在“实施中”模块中,可以查看自己接包人上传的文件,如果感觉没问题,点击“完成”即可实现项目完成,转账,但是如果用户余额不足提示“余额不足”,不会继续进行操作。在“已完成”模块中,用户看到的是已完成的项目的评价,用户可以为接包人进行评价。用户工作台-发布-整包界面如图4-8所示。图 4-8 用户工作台-发布-整包界面Fig.4-8 User workbench publishing-project interface查看“悬赏”,发起请求,携带从sessio
37、n中取出的用户的id和默认的参数项目分类1,返回ModelAndView,跳转到table2.jsp。调用ProjectService的getProject方法,设置参数用户的id和项目分类,返回一个存放项目信息的list集合,集合中的每一项都是一条项目信息。在table2界面中,可以选择查看进行中、已完成项目的信息。在“进行中”的模块中,用户可以看到自己发布悬赏项目,用户的情况,可以查看自己接包人上传的文件,如果感觉问题,点击“完成”即可实现项目完成,同时也完成转账。在“已完成”模块中,用户看到是已完成的项目的评价,用户可以为接包人进行评价。用户工作台-发布-悬赏界面如图4-9所示。图 4-
38、9 用户工作台-发布-悬赏界面Fig.4-9 User workbench publishing-reward interface查看“待发布”,发起请求,携带从session中取出的用户的id,返回ModelAndView,携带用户未上架的项目,跳转到table3.jsp,并在该界面上显示。用户工作台-发布-悬赏界面如图4-10所示。图 4-10 用户工作台-待发布界面Fig.4-10 User workbench - to be published interface用户工作台-接受模块在该模块中,用户可以查看自己所接手的项目,分为整包和悬赏部分的操作。点击“整包”,发起请求,携带从ses
39、sion中取出的用户的id和默认的参数项目分类1,向服务器请求数据,返回ModelAndView,跳转到table4.jsp。调用ProjectService的getProject方法,设置参数用户的id和项目分类,返回一个存放项目信息的list集合,集合中的每一项都是一条项目信息。在table4界面中 可以选择查看竞标中、实施中、已完成项目的信息。在“竞标中”的模块中,用户可以看到自己报名的项目,显示用户的报名状态。在“实施中”模块中,用户上传接手项目的附件。在“已完成”模块中,用户看到的是自己对发包人的评价,用户可以对发包人进行评价。用户工作台-接受-整包界面如图4-11所示。图 4-11
40、 用户工作台-接受-整包界面Fig.4-11 User workbench - acceptance - package interface点击“悬赏”,发起请求,携带从session中取出用户的id和默认的参数项目分类1,向服务器请求数据,返回ModelAndView,跳转到table3.jsp。调用ProjectService的getProject方法,设置参数用户的id和项目分类,返回一个存放项目信息的list集合,集合中的每一项都是一条项目信息。在table3界面中 可以选择查看已报名、已得赏、未得赏项目的信息。在“已报名”的模块中,用户可以看到自己报名的项目,可以上传附件,让发包人看
41、到。在“已得赏”模块中,用户可以对发包人和项目进行评价。在“未得赏”模块中,用户看到的是自己为中标的项目信息。用户工作台-接受-悬赏界面如图4-12所示。图 4-12 用户工作台-接受-悬赏界面Fig.4-12 User workbench - acceptance reward interface项目大厅模块在该模块中,用户可以看到现有的已上架的项目的各种信息。项目大厅页面设计如图4-13所示。图 4-13 项目大厅界面Fig.4-13 Project hall interface用户可以点击项目,进入到项目详情接界面。项目详情界面如图4-14所示。图 4-14 项目详情界面Fig.4-14
42、 Project details interface用户资金账户模块在该模块中,用户可以查看自己的余额和交易记录。资金账户界面如图4-13所示。点击“资金账户”之后,发起请求到服务器,会返回根据用户id查询到的各种交易记录和用来显示的界面account.jsp。在该界面不同区域下显示不同的交易记录。用户 “充值”时,会出现输入框,输入一定的金额提交即可完成充值。“提现”时,也会出现输入框,但是如果用户的余额不足,会提示“余额不足”。资金账户界面如图4-15所示。图 4-15 资金账户界面Fig.4-15 Capital account interface用户个人中心模块在这个模块中用户可以修改
43、个人基本信息、添加技能信息、添加项目案例、身份认证等4个功能的实现。在基本信息中,显示用户头像、昵称、性别等信息,可以点击“编辑”跳转到修改个人信息的界面editUserInfo.jsp,提交表单信息,发送请求到服务器,服务器收到之后对信息进行封装,调用UserService和UserInfoService的updateSelective方法对数据库进行修改。服务器向请求端发送JSON数据,前台对JSON数据进行解析,做出相应的处理。用户基本信息界面如图4-16所示。图 4-16 用户基本信息界面Fig.4-16 User profile interface在技能信息界面中,显示用户的技能信息
44、,这个数据是在点击“技能信息”之后,返回页面和携带根据用户id查询到的技能信息。点击“编辑”,发起请求,返回ModelAndView,同时还有各种分类的JSON数据,通过layui的多选下拉框进行显示,同时对这个多选进行限制。用户技能信息界面如图4-17所示。图 4-17 用户技能信息界面Fig.4-17 User skill information interface在用户项目案例界面中,通过表格的形式显示用户添加的项目案例信息。根据前端请求中用户的id,服务器到数据库查询用户的项目案例。返回前端的是项目案例界面和存放用户项目案例的List集合。用户技能信息界面如图4-18所示。图 4-18
45、 用户项目案例界面Fig.4-18 User project cases interface在用户实名认证的界面,如果用户已实名认证,不会再显示实名认证,会显示“已认证”的提示。用户认证需要提交真实姓名、身份证号、身份证图片等信息。提交到服务器,由服务器进行存储到数据库,等待平台管理员进行认证。用户认证界面如图4-19所示。图 4-19 用户认证界面Fig.4-19 Authentication interface管理员模块功能的实现在管理员页面上主要有用户管理、项目管理、分类管理管理三大主要功能。管理员界面的设计如图4-20所示。图 4-20管理员界面Fig.4-20 Admin inter
46、face用户管理模块在该页面上,管理员可以分页显示未认证用户的实名信息。这里显示的未认证的用户信息通过userService的selectAllUser方法得到,在editUserStatus.jsp中显示。点击“认证”,会询问管理员是否确定,之后向后台发起一个GET请求,携带用户的id到服务器,之后服务器会调用userService的checkUser方法修改数据库中用户登录信息表中的status值,前端返回状态码,由前端进行解析。认证成功后,JS自动刷新界面。管理员用户认证页面设计如图4-21所示。图 4-21 管理员用户认证界面Fig.4-21 Administrator user au
47、thentication interface项目管理模块在该页面上,管理员可以分页查看未上架的项目信息。这里显示的项目,可以通过“项目上架”向服务器发送请求,返回ModelAndView,其中的项目信息是通过projectService的queryUserByStatus方法得到的,在editProject.jsp中显示项目的详细信息。点击“上架”,会询问管理员是否确定,之后向后台发起一个GET请求,携带项目的id到服务器,之后服务器会调用projectService的changeStatus方法修改数据库中项目表中的status值,前端返回状态码,由前端进行解析。上架成功后,JS自动刷新界面
48、。管理员项目认证页面设计如图4-22所示。图 4-22 项目上架界面Fig.4-22 Project putaway interface分类管理在分类管理中,分为几个小模块,应用类型管理、项目类型管理、开发语言管理、开发技能管理、开发产品中间件管理、开发岗位管理等模块。各个模块的功能基本一致,这里就阐述应用类型管理的实现。点击“应用类型管理”,发起请求,服务器会向调用kindService的aueryAll方法,得到一个关于Kind的List集合,向前端返回JSON数据和editAPPKind.jsp。在本页面中,可以在输入框输入信息,添加即可,首先发起携带输入框信息通过kindService
49、的queryOne查询,如果返回为空,则再调用kindService的save方法,保存到数据库中,向前端返回状态码。在分页展示的应用类型表格中,可以看到每一条数据的id、分类名、创建时间和更新时间。在操作一栏中,可以对单挑数据进行删除操作,点击“删除”,提示是否删除,确认后,携带该条数据的id到服务器,用kindService 的delectById方法删除该条数据,向页面返回状态码。成功后,由JS刷新界面管理员分类管理页面设计如图4-23所示。图 4-23 分类管理界面Fig.4-23 Categories interface小结本章主要对大学生软件众包平台的系统模块的实现做一个简要的分析
50、介绍,描述各个模块的具体实现过程。5系统测试本章只是对系统主要功能进行测试,包括登录注册模块、发布需求、工作台-发布、工作台-接受,项目大厅,资金账户,个人中心等。登录注册模块的测试注册模块的测试打开注册界面,输入手机号、昵称、密码、确认密码,点击“注册”进行测试:手机号为空或格式不正确,系统会提示手机号格式不正确;昵称为空,系统会提示昵称不能为空;密码为空,系统会提示密码不为空;重复密码为空或与密码不同,系统提示密码不为空或两次密码输入不一致;注册成功,跳转到登录界面。登录模块的测试进入登录界面,输入用户手机号和密码,点击“登录”进行测试:用户号为空或格式不对,系统提示手机格式不正确,若用户名不存在,系统提示不存在此账号;密码为空,系统提示密码为空;若密码与该用户对应的密码不一致,系统会提示用户名不存在或密码不正确;若用户名和密码正确,则可以跳转到用户界面。发布需求模块的测试进入发布需求中的整包界面,输入各项信息,点击“立即提交”进行测试:悬赏名称、应用类型、需求描述、岗位需求、技能需求、预算、周期、姓名、邮箱、手机号等信息为空时,系统提示必填项不能为空;邮箱、手机号格式不正确,系统提示格式不正确;各项符合规则,提交,系统提示“success”。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025护理学院学生工作计划样文
- 幼儿中班教师工作计划范文模板
- 吴建旭“互联网+”大学生创新创业大赛项目计划书
- 2025白酒销售月工作计划范文
- 切实加强行风建设努力做好计划生育工作的讲话
- 城管科科长述职报告总结计划
- 2025关于小学班主任工作计划
- 《机械制图与CAD含习题集》课件-第5章3
- 合伙种植沃柑合同模板
- 铁路客运合同案例简短
- 100内加减法混合题库二年级100道及答案
- 外科护理疑难病例
- TTI-Z世代2024职场期望调研报告
- 2024年中小学学生防范电信网络诈骗知识竞赛题库及答案
- 职业生涯规划与职场能力提升智慧树知到答案2024年同济大学
- 11ZJ111《变形缝建筑构造》
- 2020年广西职业院校技能大赛高职组《 模具数字化设计与制造工艺 》赛项赛题(样题)
- 短视频技术与应用智慧树知到期末考试答案章节答案2024年济南大学
- LTC与铁三角从线索到回款-读书笔记
- 哈尔滨2024年黑龙江哈尔滨铁道职业技术学院招聘教师10人笔试历年典型考题及考点附答案解析
- 卫生院三定方案
评论
0/150
提交评论