目 录
1 绪论 1
1.1 选题背景 1
1.2 国内外研究现状 1
1.3 生产需求状况 2
1.4 开发目的和意义 2
1.5 大数据可视化研究 3
1.5.1 可视化系统 3
1.5.2 Hadoop生态圈技术 3
2 系统分析 5
2.1 系统可行性分析 5
2.1.1 技术可行性分析 5
2.1.2 经济可行性 5
2.1.3 软硬件可行性 5
2.1.4 系统设计方案分析 6
2.2 系统需求分析 6
2.2.1 系统工作流程分析 6
2.2.2 系统功能分析 7
2.2.3 系统功能表 9
2.2.4 系统数据流图 11
2.3 性能分析 15
3 系统设计 16
3.1 系统概要设计概述 16
3.2 系统体系结构设计 16
3.3 系统数据库设计 16
3.3.1 数据库表分析 16
3.3.2 数据库E-R图 17
3.3.3 数据库表结构与设计 17
3.4 系统用户功能设计 21
4 系统实现 22
4.1 系统实现的环境配置 22
4.1.1 运行环境 22
4.1.2 开发环境 23
4.2 系统主流程 23
4.3 注册登录模块实现 24
4.4 个人信息管理模块实现 26
4.5 发布家教兼职信息模块 29
4.6 家教兼职信息库模块 29
4.7 教员信息库模块 32
4.8 交流分享模块 33
4.9 管理员管理和数据分析模块 35
5 系统测试 38
5.1 测试概述 38
5.2 软件测试 38
5.2.1 测试要点 38
5.2.2 测试内容 38
5.3 测试用例 38
结 论 43
致 谢 44
参考文献 45
原创性声明 47
3 系统设计
3.1 系统概要设计概述
系统可以实现网上家教信息管理,教员和学员注册后,将自己的相关信息发布到网上,注册成功后学员将订单发布到服务器,教员预约订单后与学员签订试教协议,试教后学员对教员进行评分,这样实现教员和学员互相选择,并对过程进行管理,最终实现求教和执教的这个过程。本系统分为客户端子系统和管理端子系统。
客户端子系统包括,学员和教员的注册,学员和教员的信息搜索,并可以查看详细信息,把学员和教员信息加入会员收藏夹,修改会员信息,查看我的收藏,我的预约,发布订单,处理订单,实现评论和打分,以及进入家教社区进行信息讨论和发布。
管理端子系统包括,管理员登陆,学员和教员状态信息修改和删除,教员信息认证的管理和查看对学员的成绩和阶段数据统计分析图。
3.2 系统体系结构设计
客户层主要是指用户登录的Web浏览器;中间层负责平台的业务逻辑处理和表示逻辑生成;服务层提供底层的信息数据库服务器[13]。
(1)客户层:用于与家教信息系统的用户进行交互以及显示根据特定业务规则进行计算后的结果。系统将完全采用基于WEB的(B/S架构)客户端,即用户可以直接通过浏览器来访问和使用系统。
(2)中间层:这相当于三层标准架构中的Web应用服务层,支持诸如响应客户请求以及查询等功能。并且由中间层进行逻辑处理,再处理的结果反馈给客户或者发送到数据库中。
(3)服务层:主要是数据库系统,这里的数据库系统主要是采用MySQL数据库系统。
<!DOCTYPE html>
<html>
<head >
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>芯梦家教网</title>
<link rel="stylesheet" type="text/css" href="/TutorWebsite/static/css/common.css">
<link rel="stylesheet" type="text/css" href="/TutorWebsite/static/css/home.css">
</head>
<body>
<div class=header>
<div class="logo">
<img src="/TutorWebsite/static/images/logo.png" alt="图标" title="图标">
<div class="city"></div>
</div>
<div class="nav">
<div class="nav-content">
<ul >
<li>
<a href="/TutorWebsite/pages/HomePage.html" class="active">首页</a>
</li>
<li>
<a href="/TutorWebsite/pages/TutorInfo.html" >教员信息</a>
</li>
<li>
<a href="/TutorWebsite/pages/RecruitInfo.html" >招聘信息</a>
</li>
<li>
<a href="/TutorWebsite/pages/ShareInfo.html" >交流分享</a>
</li>
</ul>
</div>
<div class="nav-search">
<select id="search-type">
<option>教员</option>
<option>家长</option>
</select>
<input type="text" id="search-content" placeholder="请输入搜索内容">
<input type="button" id="search-btn" value="搜">
</div>
<div class="nav-block">
<div id="block"></div>
</div>
</div>
</div>
<div class="content">
<div class="part1">
<div class="left">
<p>家教速查</p>
<div class="search-box">
<select id="subject-choice" class="searth-option">
<option value="">全部</option>
<option value="学前教育">学前教育</option>
<option value="小学">小学</option>
<option value="初中">初中</option>
<option value="高中">高中</option>
<option value="外语家教">外语家教</option>
<option value="特长家教">特长家教</option>
</select>
<select id="indentity" class="searth-option">
<option value="">全部</option>
<option value="大学生家教">大学生家教</option>
<option value="教育机构教师">教育机构教师</option>
<option value="在职教师">在职教师</option>
<option value="专职家教">专职家教</option>
<option value="辅导机构">辅导机构</option>
</select>
<select id="sex-choice" class="searth-option">
<option value="">全部</option>
<option value="男">男</option>
<option value="女">女</option>
</select>
<input type="button" class="search-btn1" value="快速搜索" onclick="HomePage.SearchFast();">
</div>
<img src="/TutorWebsite/static/images/shouye.png" >
</div>
<div class="right">
<div class="login-not">
<div class="login">
<p>用户登陆</p>
<input type="text" placeholder="手机号" id="userName">
<input type="text" placeholder="密码" id="password">
<input type="button" name="" value="登陆" class="login-btn" onclick="HomePage.login()">
</div>
<P class="to-regsister">
<a href="/TutorWebsite/pages/register.html">点击这里注册</a>
</P>
</div>
<div class="logined" style="display: none;">
<p>
<img src="/TutorWebsite/static/images/head_man.svg" alt="头像">
<span>张先生</span>
</p>
<p class="current-task">进行中的家教:<em>0</em></p>
<p class="over-task">已完成的家教:<em>0</em></p>
<p class="recruitor-block"><input type="button" value="发布家教招聘" class="to-publish" id="to-publishpage"></p>
<p><input type="button" value="进入个人中心" id="to-centerpage"></p>
<p><input type="button" value="进入管理中心" id="to-centermanage"></p>
<p style="text-align:right;margin-top:32px;"><a href ="javascript:void(0);" id = "login_out" >退出</a></p>
</div>
</div>
</div>
<div class="part2">
<div class="left">
<p>家教招聘<a href="/TutorWebsite/pages/RecruitInfo.html">/ 查看更多</a></p>
<ul class="recruit">
<script id="showUrgencyRecruitInfo" type="text/x-jsrender" >
{{for #data}}
<li>
<p class="recruit-person">{{:username}}急需家教</p>
<p class="recruit-subject">
{{if classType == "1"}}
学前教育
{{else classType == "2"}}
小学家教
{{else classType == "3"}}
初中家教
{{else classType == "4"}}
高中家教
{{else classType == "5"}}
外语家教
{{else classType == "6"}}
特长家教
{{/if}}
</p>
{{if pay == 0 }}
<div class="recruit-pay" style="background-color: #F87F45;">
<em style="margin-top:10px;font-size:20px;">面谈</em>
</div>
{{else pay < 100 }}
<div class="recruit-pay" style="background-color: #FFB630;">
<em>{{:pay}}</em>
<span>元/小时</span>
</div>
{{else}}
<div class="recruit-pay" style="background-color: #70BDEE;">
<em>{{:pay}}</em>
<span>元/小时</span>
</div>
{{/if}}
<p class="recruit-address">
<img src="/TutorWebsite/static/images/location.png" alt="">
<span>
{{if location.length>8}}
{{:location.substring(0,8)}}...
{{else}}
{{:location}}
{{/if}}
</span>
</p>
<a href="/TutorWebsite/pages/RecruitDetaillInfo.html?recruitId={{:recruitId}}">查看详情>></a>
</li>
{{/for}}
</script>
</ul>
</div>
<div class="right">
<p>优质家教<a href="/TutorWebsite/pages/TutorInfo.html">/ 查看更多</a></p>
<ul class="tutor">
<script id="showTutorInfo" type="text/x-jsrender" >
{{for #data}}
<li>
<div class="tutor-pic-info">
{{if teachexperience == 0}}
<img src="/TutorWebsite/static/images/head_pic9.jpg" alt="家教头像" class="tutor-pic">
{{else teachexperience > 0 && teachexperience < 10}}
<img src="/TutorWebsite/static/images/head_pic9.jpg" alt="家教头像" class="tutor-pic">
<img src="/TutorWebsite/static/css/number.png" alt="教龄" title="教龄" class="number-{{:teachexperience}}">
{{else}}
{{/if}}
</div>
<div class="tutor-info">
<p>
<span>{{:realname}}</span>
</p>
<p><em>{{:identity}}</em> / 数学</p>
<p style="line-height: 20px;">
{{if introduction.length>20}}
{{:introduction.substring(0,20)}}...
{{else}}
{{:introduction}}
{{/if}}
</p>
<a href="/TutorWebsite/pages/TutorDetail.html?userId={{:userId}}">查看详情>></a>
</div>
</li>
{{/for}}
</script>
</ul>
</div>
</div>
<div class="part3">
<p>最新资讯</p>
<div class="part3-content">
<div class="left">
<p>家教招聘</p>
<ul class="update-recruit">
<script id="showLatestRecruitInfo" type="text/x-jsrender" >
{{for #data}}
<li>
<img src="/TutorWebsite/static/images/number{{:num}}.svg" alt="">
<a href="/TutorWebsite/pages/RecruitDetaillInfo.html?recruitId={{:recruitId}}">.{{:username}}发布了招聘信息</a>
<span>{{:publishTime}}</span>
</li>
{{/for}}
</script>
</ul>
</div>
<div class="center"></div>
<div class="right">
<p>交流分享</p>
<ul class="update-share">
<li>
<div class="share-people">
<img src="/TutorWebsite/static/images/head_pic10.jpg" alt="">
<p>王先生</p>
</div>
<div class="share-content">
<div>
<img src="/TutorWebsite/static/images/comment.svg" alt="">(20)
<img src="/TutorWebsite/static/images/support.svg" alt="">(18)
</div>
<p>暑假期间,为两位同学进行了为期一个月的辅导,系统复习了英语语法。语法贯...</p>
</div>
</li>
<li>
<div class="share-people">
<img src="/TutorWebsite/static/images/head_pic3.jpg" alt="">
<p>王先生</p>
</div>
<div class="share-content">
<div>
<img src="/TutorWebsite/static/images/comment.svg" alt="">(20)
<img src="/TutorWebsite/static/images/support.svg" alt="">(18)
</div>
<p>暑假期间,为两位同学进行了为期一个月的辅导,系统复习了英语语法。语法贯...</p>
</div>
</li>
<li>
<div class="share-people">
<img src="/TutorWebsite/static/images/head_pic6.jpg" alt="">
<p>王先生</p>
</div>
<div class="share-content">
<div>
<img src="/TutorWebsite/static/images/comment.svg" alt="">(20)
<img src="/TutorWebsite/static/images/support.svg" alt="">(18)
</div>
<p>暑假期间,为两位同学进行了为期一个月的辅导,系统复习了英语语法。语法贯...</p>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="footer-content"></div>
</div>
</body>
<script type="text/javascript" src="/TutorWebsite/static/js/jquery-2.2.4.min.js"></script>
<script type="text/javascript" src="/TutorWebsite/static/js/jsviews.min.js"></script>
<script type="text/javascript" src="/TutorWebsite/static/js/common.js"></script>
<script type="text/javascript" src="/TutorWebsite/static/js/homePage.js"></script>
<script type="text/javascript">
$(function(){
var userId = "";
var name = "";
var userType = "";
if(CheckLogined()){
userId = sessionStorage["userId"];
name = sessionStorage["userName"];
userType = sessionStorage["userType"];
$(".login-not").hide();
$(".logined>p>span").text(name);
$(".logined").show();
if(userType == "2"){
$(".recruitor-block").hide();
$("#to-centermanage").hide();
}else if(userType == "0"){
$(".recruitor-block").hide();
$("#to-centerpage").hide();
$(".current-task").hide();
$(".over-task").hide();
}else{
$("#to-centermanage").hide();
}
$("#to-publishpage").click(function(){
window.location.href="/TutorWebsite/pages/PublishRecruitInfo.html?userId="+userId;
});
$("#to-centermanage").click(function(){
window.location.href="/TutorWebsite/pages/ManagerCenter.html?userId="+userId;
});
$("#to-centerpage").click(function(){
window.location.href="/TutorWebsite/pages/UserCenter.html?userId="+userId;
});
$("#login_out").click(function(){
sessionStorage.clear();
window.location.href = "/TutorWebsite/pages/HomePage.html";
});
}
HomePage.GetUrgencyRecruitInfo();
HomePage.GetTutorInfo();
HomePage.GetRecruitInfo();
});
</script>
</html>