基于JavaWeb的大学生家教平台的设计【毕业作品】

基于JavaWeb的大学生家教平台的设计【毕业作品】
基于JavaWeb的大学生家教平台的设计【毕业作品】

BI YE SHE JI

(20 届)

基于JavaWeb的大学生家教平台的设计

所在学院

专业班级计算机科学与技术

学生姓名学号

指导教师职称

完成日期年月

大学生做家教是一个学生自己获取生活补助,同时又是锻炼自己生活,社交技能的一种方式。但是一般在学校里面发传单招家教的公司其中欺骗现象很多,没有办法很好的获取学生的信任。本系统的目的就是消除大学生与学生家长之间的距离可以零零接触。家长可以选择老师,同时老师又可以选择家长。通过功能模块的优化组合实现不同的管理细节,使管理过程实现最大程度的自动化与信息化。

本系统主要功能分为另个角色家长和教师。具体功能包括,用户的注册修改信息。教师注册修改信息,教师管理自己的信息:授课时间,授课科目,授课年级。同时可以查看自己的订单并做确认订单,评价和评分等操作,查看和回复通知。家长注册修改信息,管理子女信息,提交订单,评价和评分等操作,查看和回复通知。最后是一个简单的论坛系统,具体功能:发帖查看帖子以及跟帖,让使用该平台的用户可以尽情讨论各种信息。

本文从大学生家教平台开发前景、需求分析、概要设计、详细设计、数据库设计和系统实现等方面详细阐述了基于JavaWeb的大学生家教平台的整个开发过程,也实现了预期的各项功能。

关键词:JavaWeb; 大学生家教; 校园

College students to do tutor is a student to get their own living allowance, but also exercise their own life, social skills, a way. But generally in the school which sent a single recruit tutor of the company which cheating a lot of things, there is no way to get a good student trust. The purpose of this system is to eliminate the distance between college students and parents of students can be zero contact. Parents can choose the teacher, while the teacher can choose parents. Through the optimization of functional modules to achieve different management details, so that the management process to achieve the greatest degree of automation and information technology.

The main function of this system is divided into another role parents and teachers. Specific features include the user's registration modification information. Teacher registration to modify the information, teachers manage their own information: teaching time, teaching subjects, teaching grade. At the same time you can view your own orders and confirm the order, evaluation and rating operations, view and reply to the notice. Parents register to modify information, manage child information, submit orders, evaluate and rate operations, view and reply notifications. Finally, a simple forum system, the specific function: post to see posts and thread, so that the use of the platform users can enjoy a variety of information.

This paper elaborates the whole development process of the university student tutor platform based on JavaWeb from the aspects of development foreground, demand analysis, outline design, detailed design, database design and system realization of college students, and also realized the expected functions.

Keywords: JavaWeb; college student tutor; campus

绪论

当今大学生是一个庞大规模的群体,同时家教市场也是一个巨大的需求市场。作为家长有两个选择一是送孩子去辅导班上辅导课,二是请家教而家教又包括在职教师,专业辅导教师,和在校大学生。辅导班面临学生众多,老师无法为学校量身定做教学计划因此很多时间被浪费,请在职教师,专业辅导教师虽然可以收到良好的教学效果但是会面临着费用高昂的尴尬,不是所有家庭都能承受的。因而请大学生做家教未尝不是一个合适的选择,没有高昂的收费,又能给孩子一个较好的教育。

群体基数巨大:多数家庭在子女教育方面呈现出强烈的意识与观念。而且,由于人口基数大,而家庭教育当前实际上又是每个家庭不可或缺的,因而目标性需求群体和潜在性开发群体(家庭)数量巨大,显然这是一个巨大的家庭教育消费群体。

期望决定需求:目前,家长在教育方面给予孩子的期望值越来越高,在投资方面,“为了孩子,我做什么都可以,受多少苦都值得”、“孩子的前途就是我们家的前途”这种汲汲的渴求心态,更使得教育行业有别于其它行业。尤其近年来随着人们生活水平、社会教育水平的提高、家长教育的攀比心理也在提高。

由于教育不同于现实的产品,教育水平的鉴别多数基于人们的感性认知,人们在投资教育过程中不少持有谨慎心理。尤其近年来,部分黑中介对市场的影响,一定程度上对家长的认识和需求起了负面的影响,信任度的建立成为教育行业一个重要的问题

本软件的目的是使学生兼职家教服务管理清晰化,透明化,便于操作,易于管理。通过功能模块的优化组合实现不同的管理细节,使管理过程实现最大程度的自动化与信息化,并能自动对人工操作环节进行复查,使大学生家教网络平台的出错率降至最低。主要从功能需求,数据需求,模块设计方面,对大学生家教网络平台进行分析与设计,从而达到进一步实现的目的,实现家长和大学生之前的双向选择,同时是大学生家教这个行业更加规范化,防止家长学生双向受骗,同时提供优质的家教服务。

1 课题背景和意义

1.1 课题研究内容

该课题研究内容是建设一个网络家教平台,主要目的:是为了提供一个教学平台,让在校大学生可以选择一份好的家教兼职,同时家长又能为自己的孩子物色一个良好的教师来指导子女的学习。因此该平台包括两个用户角色家长和教师,为了方便登录操作还有一个用户的角色,主要功能包括:用户登录注册修改信息,订单的生成流程控制,用户信息的管理操作,论坛模块的发帖跟帖等。

在技术方面希望通过maven+mybatis+SpringMVC+JSP+mysql数据库构建一个javaWeb网站。其中mysql数据库提供数据支持,JSP页面和CSS和JavaScript 提供页面展示和页面必要的跳转验证等,mybatis提供一个良好的持久层框架,SpringMVC提供一种基于Java的实现了Web MVC设计模式轻量级Web框架。

1.2 大学生家教平台国内发展情况

随着这几年互联网的快速发展,国内外出现很多家教网站如:三好家教,

学大教育网,轻轻家教,常青藤家教,阳光家教网等,诸如此类家教网站数不

胜数。其中晓得乐网上家教是国内最早(2002年9月开始)关注研发提供网上

家教的网站,现在已经发展到线上网络教学线下开设辅导中心,原因是家长更

多愿意通过熟人或亲戚介绍寻找老师,当无法寻找到合适的老师时才会试着联

系网络平台的老师。

现在家教网站的模式多是以线上线下结合的方式,但主要以线下方式为

主,网站只是一个辅助运营宣传的工具。选择这种方式会有以下缺点:固定成

本高。办公室硬件成本、人力资源成本、宣传成本都是成本消耗的地方。作为

广大高校在校学生由于工作时间有限且不固定,因此线下的方式不是很好。如

果采用线上模式情况将恰恰相反,家长不必为了寻找教师花费更多时间,在校

学生也不必为了寻找家教工作浪费时间和精力。

1.3 家教行业国内外发展状况

中国国内人口众多,家庭户数量众多大约有5亿户。同时由于计划生育的原

因现在家庭子女多为一个,因此父母望子成龙,望女成凤的期望也就越来越大。再加之现在的教育改革虽然说是为孩子减轻负担,但是考试制度的存在导致了学生的负担明减暗增,学生凭自己的能力往往无法完成自己的学习任务,这些原因造成家教市场异常活跃。家长往往为了自己孩子的学习更愿意请一对一家教,但在职老师往往无法满足市场需求。在这种情况下高校在校学生,就成了一个比较不错的选择。高校学生接受过高等教育,受到家长的普遍认可。与此同时高校在校学生很多希望通过兼职减轻家庭负担或者改善在校生活,家教工作报酬相对于其他兼职报酬可观,工作做起来又比较轻松所以在高校学生中很受欢迎。

2 相关技术

2.1 开发工具

1)开发环境:Windows 10、JDK1.8.0_101、apache-tomcat-8.0.33

2)开发软件:intellij idea 2017.1、MySql5.5、HBuilder、NavicatforMySQL 3)主要jar包版本: Spring 4.2.5、mybatis 3.2.5、Maven3.3.9

2.2 SpringMVC简介

1)Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的通过注解的方式。

2)SpringMVC运行原理图如下:

(1)客户端发出Request请求,由DispatcherServlet接收所有请求,然后转发给相应的组件进行处理。

(2)HandlerMapping是将请求地址映射到相应的Controller中进行处理的组件。

(3)Controller处理由DispatcherServlet转发来的请求,然后将数据传输给ModelAndView封装视图。

(4)(5)(6)ModelAndView将封装好的View传送到客户端。

2.2 Mybatis简介

MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的XML 或注解,将接口和Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

每个基于MyBatis 的应用都是以一个SqlSessionFactory 的实例为中心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而SqlSessionFactoryBuilder 则可以从XML 配置文件或一个预先定制的Configuration 的实例构建出 SqlSessionFactory 的实例。

2.3 JSP页面简介

JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。它实现了HTML页面和Java语言的结合,将HTML易于编写、美观。纯文字内容,要进行编修及阅读并不困难,任何可以运行浏览器的计算机都可以阅读并显示HTML,透过制定的标签,提供了多媒体表现的环境与Java的Java是面向网络的语言。通过它提供的类库可以处理TCP/ IP协议,用户可以通过URL地址在网络上很方便地访问其他对象相结合。JSP 内置对象包括:request,response,session,application,out,page,con fig,exception,pageContext。JSP在利用JAVA使之在Windows和Linux平台都有很好的支持。同时JSP可以使用很多标签库来方便页面的编写,其中标签库如下:核心标签,格式化标签,SQL 标签,XML 标签,JSTL 函数

2.4 Apache Maven

Apache Maven,是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。

Maven也可被用于构建和管理各种项目,例如C#,Ruby,Scala和其他语言编写的项目。Maven曾是Jakarta项目的子项目,现为由Apache软件基金会主持的独立Apache项目。在本项目中主要负责管理jar包。

2.5 kindeditor-4.1.7

这是一个优秀的富文本编辑器,使用该编辑器可以将输入框中的文字(各种字体大小等等)以及表情图片等。直接保存为HTML格式的文本,这样如果下次再显示的时候就可以保存原样输出,格式大小不会发生改变适合本系统留言和论坛功能的实现。

2.6 BootStrap

Bootstrap 是最受欢迎的 HTML、CSS 和 JS 框架,用于开发响应式布局、移动设备优先的 WEB 项目。Bootstrap 是完全开源的。它的代码托管、开发、维护都依赖 GitHub 平台。Bootstrap可以为开发者提供一个良好的页面编写插件,在该平台也可以填写相关选项生成对应的CSS,Less文件,方便开发者快速开发项目。

3 系统设计

3.1 系统功能模块设计

3.1.1 教师功能设计

教师是本系统的主要使用者之一,其主要目的就是将自己推广出去寻找家教工作因此设计教师功能如下:

1)教师注册:教师填写关键信息,如所在高校,学院,班级,姓名,照片等完成注册。

2)教师用户信息修改:教师根据自身实际情况修改相对应的信息。

3)教师教学管理:教师对于自己授课时间,授课年级,授课科目进行管理。如:增加,删除。

4)教师订单管理:

a)确认接受订单:教师浏览查看自己所有订单,如果觉得订单

价格合理,教学时间

b)教学评价:教师在完成上门教学任务之后需要及时为家长和

学生做出评价和评分。

3.1.2 家长功能设计

家长是本系统的主要使用者之一,他们的目的就是为孩子找到一个合适的老师因此设计功能如下:

1)家长注册:家长填写关键信息,如家庭地址,姓名身份证号,等完成注册。

2)家长用户信息修改:家长根据自身实际情况修改相应的信息。

3)家长子女管理:家长可以添加或者删除子女信息,这样就可以为每一位子女量身选择一个优秀的老师。

4)家长订单管理:

a)1订单提交:家长浏览教师列表,点击查看教师详情。如果

觉得该老师适合自己的子女可以填写订单相关信息提交订

单。

b)2授课确认:及时监督教师是否及时授课并在网站上做出确

认操作。

c)3教学评价:在教师完成上门授课后对该老师的授课情况,

授课态度等做出评价和评分。

5)教师按条件搜索:家长根据子女实际情况,可以选择教师所教授年级,科目,性别信息,对此进行按条件搜索。

3.1.3论坛功能

论坛模块的功能主要是为了家长和家长之间,家长和教师之间,教师和教师之间合理的沟通。和百度贴吧类似,所有人都可以在里面自由发言。将以往只能通过亲戚朋友介绍教师的方式线上化。其中主要包括以下功能:

1)发帖浏览帖子目录:在这里可以看见被人发的帖子的题目和时间,可以根据自己感兴趣的内容选择浏览。同时在这里也可以填写标题和内容发帖。

2)跟帖浏览帖子详细:在这里可以看到所有人对于该话题的评论,同时也可以填写内容更贴,发表自己的看法。

3.1.4留言功能

留言功能主要是为家长设计的,主要目的是为了方便家长联系教师和教师沟通。其主要功能如下:

1)家长留言和回复:家长可以选择自己感兴趣或者有疑问的老师给他留言,同时如果教师看见家长的留言并且回复的情况下,可以及时回复教师的回答。

2)教师回复:教师看见家长给自己的留言可以回复家长的疑问。

3.2 系统界面设计

系统界面主要由主要的两个使用用户决定的,包括家长,教师。留言板块和论坛板块是家长和老师一同使用的所以界面相同没有重复设计。为了方便管理家长和教师两个角色,设置了用户角色。其主要界面如下所示:

3.2.1 用户界面

家长和教师同为用户,所以用户的几个主要属性包括用户名,密码,邮箱。功能主要在论坛,留言,和登录等时使用,其主要界面如下所示:1)用户登录界面:页面中部是一个表单其中有用户名输入框,密码框,验证码输入框和一个提交按钮,点击提价按钮完成提交。

2)用户注册界面:页面中部是一个表单其中有用户名输入框,密码框,再

次输入密码框,邮箱输入框,和一个提交按钮。

3)找回用户名密码界面:页面中部表单中有邮箱输入框和提交按钮。

3.2.2 教师界面

教师的功能主要是管理教师信息,和家长完成订单操作,其主要页面如下所示:

1)教师注册页面:页面中部是一个表单,其中有一系列输入框如姓名,所在学校院系班级,性别,出生日期,个人推荐等,其中有一个图片上传框,教师可以选择自己的头像上传预览。

2)教师教学安排界面:有三张列表分别显示教师授课时间,教师授课年级,教师授课科目。在三张表各自的左上方都存在一个添加按钮,点击会生成一个模态框,在模态框中是一个表单,填写必要的信息就完成了自己信息的添加。

3)教师信息修改界面:该页面和教师注册页面相差不大。

4)教师订单管理界面:页面中间是一个表格,教师,家长,子女,年级,科目,订单进程,操作作为表头。其中操作选项是根据数据库所保存的订单进程进行显示的。包括有,订单确认,评价授课组成。评价授课为模态框按钮,点击弹出评价框和评分框。

3.2.3 家长界面

家长的功能主要功能在本系统上寻找合适的教师,以及管理自己的订单,其主要页面如下所示:

1)家长注册页面:页面中部是一个表单,其中有一系列输入框如姓名,家庭地址,性别,出生日期,身份证号码等,以及一个提交按钮。

2)家长子女管理界面:页面由一个表格组成,表格头部存在一个添加按钮,点击生成一个模态框,可以添加子女信息,点击提交保存子女信息。

3)家长信息修改页面:该页面和家长注册页面相差不大。

4)家长订单生成页面:该页面有家教的一些详细信息,包括家教的个人信息,家教的授课信息(授课科目,授课年级,授课时间)。家长如果觉得中意就点击最下面的订单生成按钮,会弹出模态框选择订单的一些信息生成订单。

5)教师显示页面:该页面将所有教师信息分页显示出来。列表上部是条件搜索框。列表是一些列教师用户头像页面,鼠标移动上去可以显示教师姓名,和一个跳转链接(查看家教详细信息)点击可以查看家教的详细信息,还有一个模态框生成按钮(留言)点击给以给自己相中的家教留言。

3.2.4 论坛界面

论坛主要功能是让各用户发表自己的言论,有主题帖和跟帖之分。其主要页面如下所示:

1)论坛主贴界面:中间由一个列表构成,列表显示发帖人,发帖时间,发帖的主题。下部是一个发帖区间包括一个主题输入框,和一个textare标签,以及一个发帖按钮,textare标签使用富文本编辑器实现,这样可以有更丰富的文本编辑内容(加粗,表情包都可以发送)。

2)论坛详细界面:上部显示发帖人,发帖时间,发帖主题,发帖内容,紧接着是跟帖列表。列表显示跟帖人,更贴时间,和更贴内容。

3.2.5 留言界面

留言只有一个界面,中间由一个列表构成,列表由留言人,留言时间,和留言内容,以及回复按钮组成。点击回复按钮会生成一个模态框,输入回复内容点击回复即可。

3.3系统数据库设计

为满足系统功能实现,设计了十一张表其表结构如下所示:

?用户表是为了方便用户登录和注册的统一,在登录时通过对角色属性的判断

选择跳转页面。其中User_ID为主键且自动递增序号,用户邮箱为找回密码提供支持。

如表3.1所示:

表3.1用户表(T_Users)

?家教表用来保存家教信息的,其中Tutor_ID为主键且自动递增序号,外键为

User_ID将教师与用户关联起来。Tutor_photo(longblob)保存教师头像,在没有文件服务器的情况下将图片以二进制的方式保存比保存在服务器目录

下可移植性会好一点。

如表3.2所示:

?任教科目表用来保存每一位教师的教学科目信息,主键为Project_ID且自动

递增序号,外键为Tutor_ID将每一位教师与科目对应起来。

如表3.3所示:

表3.3任教科目表(T_project)

?任教时间表用来保存教师具体上课时间,也就是大学生自己的课余时间,主

键为Lession_ID且自动递增序号,外键为Tutor_ID将教师与教师授课时间关联起来。

如表3.4所示:

?任课年级表保存教师的任课年级,主键为Tutor_grade_ID且自动递增序号,

外键为Turor_ID将教师与任课年级关联起来。

如表3.5所示:

?家长表保存家长信息,主键为Parent_ID且自动递增序号,外键为User_ID将

家长与用户关联起来。

如表3.6所示:

?子女表保存子女信息,主键为Student_ID且自动递增序号,外键为Parent_ID

将子女与家长联系起来。

如表3.7所示:

订单表保存订单信息,主键为Qrder_ID且自动递增序号,外键为Tutor_ID,Parent_ID,Student_ID,将订单与订单的发起人家长,订单实施者教师和子女信息关联起来。字段订单状态(Order_state)需要说明一下:其值可以取1-5,分别代表的意义如下:1,家长提交订单。2家教确认订单。3家长确认家教准时授课。4家教或者家长已经评价评分。5订单完成。

如表3.8所示:

?发帖表保存发帖信息,主键(Fornm_ID)且自动递增序号,外键是

(Users_ID)将帖子与发帖用户关联起来。

如表3.9所示:

表3.9发帖表(T_forum_title)

?跟帖表保存跟帖内容,主键为Forum_content_ID且自动递增序号,外键

为User_ID和Forum_ID将跟帖发帖人,主题帖关联起来。

如表3.9所示:

表3.9跟帖表(T_forum_title)

?留言表保存留言相关内容,主键为Message_ID且自动递增序号,外键为

Message_toUsers和Message_fromUsers。将留言与留言发起人和留言接收人关联起来。

如表3.9所示:

表3.9留言表(T_message)

4 系统功能实现

本系统有两种角色分别为教师角色,和家长角色,使用不同角色登录会跳转到不同的页面上,所以流程有所不同具体如图4.1和图4.2所示:

4.1 系统流程图

4.2 用户注册,登录,找回密码功能实现

1)功能描述

?用户登录

用户登录事实上就是,从页面获取用户名,密码与数据库中的数据进行

比较若存在记录则登录成功反之则失败。

?用户注册

用户页面填写用户名,密码,邮箱。后台获取这些数据通过UsersService

接口的insert方法,将数据插入数据库完成注册。

?找回密码

找回密码是通过向用户的邮箱发送一条邮件完成的,其中发送邮件是利

用JavaMailSenderImpl接口的几个主要方法完成的。在发送邮件之前也

必须要验证邮箱是否为已注册用户邮箱,密码为随机生成的六位数字。

2)主要代码实现

?用户登录

HttpSession session = req.getSession();

Users users1 = usersService.Login(users);

if (users1 != null) { //用户登录成功

session.setAttribute("user_name", users1.getUserName());

session.setAttribute("user_ID", users1.getUserId());

session.setAttribute("Users",users1);

return "redirect:ShowTutorList.do";

} else { //用户登录错误

session.setAttribute("errorinfo","用户名或密码错误");

return "Login";

}

?用户注册

usersService.insert(users);

?找回密码

String password = String.valueOf((int)((Math.random()*9+1)*100000));//生成六位随机密码usersService.updateByPrimaryKeySelective(users); //更新随机密码

//发送邮件

MimeMessageHelper helper = new MimeMessageHelper(mailMessage, true, "utf-8"); helper.setFrom(from);// 设置发件人

helper.setTo(to);// 设置收件人

helper.setSubject("密码重置");// 设置主题

helper.setText("重置的密码为:"+information.get("Email_password"));// 邮件体mailSender.send(mailMessage);// 发送邮件

3)效果截图

登录界面如图4.3所示

图4.3 用户登录

找回密码邮箱接收界面如图4.4所示

图4.4 邮箱界面

4.3 教师列表展现和搜索功能实现

1)功能描述

教师列表搜索和展现后台所对应的以相同的代码,展现所有教师列表就是没有条件的搜索,搜索符合搜索条件的教师就是在执行select语句是根据前台的数据有无动态的拼接SQL语句。其中几个主要技术要点为:

?分页的由com.github.pagehelper.PageHelper这个Jar包实现。配置mysql

配置文件将Controller中的参数和SQL语句进行连接。

?按条件搜索由Mybatis配置SQL语句的.XML文件中的IF语句完成sql

拼接完成。

?页面显示由JSTL中的foreach标签实现,后台将LIST放入model对象

中,前台通过foreach标签获取LIST中对应的对象并显示出来。

2)主要代码实现

PageHelper.startPage((pagenumber!=null)?Integer.valueOf(pagenumber):1,3); //设置起始页面和页面条数

Map map=new HashMap();

//设置搜索条件

if (Student_Grade!=null&&Student_Grade.equals("")){Student_Grade=null;}

if (Student_Project!=null&&Student_Project.equals("")){Student_Project=null;}

if (Student_Sex!=null&&Student_Sex.equals("")){Student_Sex=null;}

map.put("Student_Grade",Student_Grade);

map.put("Student_Project",Student_Project);

map.put("Student_Sex",Student_Sex);

HttpSession session=httpServletRequest.getSession();

Users user=(Users) session.getAttribute("Users");

//搜索符合条件的教师

List Tutor_List=tutor_mainlyService.selectBySelectList((HashMap) map);

//获取PageInfo对象

PageInfo page = new PageInfo(Tutor_List);

相关主题
相关文档
最新文档