# laboratory_system
我和一位全栈大佬的本科毕业设计-学院的实验课选课及实验室管理系统<br/>
**前端作者(其实全栈大佬)**:codingSSnail(1076841285@qq.com) <br/>
**后端作者**:jump-boy(hi_jumpboy@163.com)
## 项目简介
该项目设计是物电学院实验室选课系统的Web前后端设计,实现同学根据个人时间安排自主选课的功能,同时教师可以根据选课情况,进行
管理,如某个时间段的实验课选课学生人数过少可以另外更改开课时间或者做其他修改,这样为教师和学生都带来很大的便利,同时系统
还需要实现平台化打分,如为每个学生打总成绩时,平台会为教师提供参考成绩以及平时课堂情况,代替以往的手写填表式打分。另外平
台更加的自动化,如随堂打分,系统会自动的根据时间去进行判断,筛选出当前实验课信息以及学生信息。平台在为教师和学生带来便利
的同时,还为管理员提供了更大的权限,查看课程信息,成绩,学生选课情况等,使得管理员在第一时间可以清楚学院的课程管理情况,
同时系统还增加了实验室管理的功能,管理员在拥有更高权限的同时,可以起到更好的管理作用,为学院管理做出贡献。而课题设计正是
为实现这些功能以解决问题,同时保证系统可靠运行而进行的。<br/>
系统设计上采用了分层架构的思想,前后端之间的通信采用了 Http+JSON 的形式进行数据的交互。前端部分主要以 HTML 和 AngularJS
为核心进行开发,系统通过前端来控制页面间的路由。后端通过 Java 语言的代码编写,原生 Servlet 进行开发。 整个项目搭建在阿里
云上,服务器主机使用 ECS ,Tomcat 做服务器,数据库使用 RDS MySQL 。
* 项目还是挂在阿里云上,项目链接给各位观爷奉上(PS:因为项目的首页静态资源比较大,而贫穷又限制了我,云主机的带宽只有1M,
所以观爷们首次访问首页会比较慢,请耐心等待。。后续会考虑优化,进行静态文件压缩,或者依赖的一些静态包使用 CDN 加速)<br/>
[点击访问项目网站](http://humh.cn/laboratory_system) <br/>
账号:*123456* 密码:*123456* 请选择 *学生* 进行登录<br/>
*注意:该项目样式暂时只兼容适配火狐浏览器,其他浏览器可能存在显示问题*
* 项目部署<br/>
将项目war包clone到本地后,直接放入tomcat的webapp目录下,然后startup tomcat,最后通过localhost:8080/laboratory_system即可
访问,要想直接不加项目名访问,可配置虚拟映射,参考下文,另外,注意根据自己的情况,请修改scripts目录下的services.js文件中的配置:修改位置如下:<br/>
```$xslt
app.factory('netConnector', ['$http',function($http) {
var server = "http://127.0.0.1:8090";
var service = {};
service.get = function(api, params) {
return $http({
method: 'GET',
url: server + api,
params: params
});
};
```
修改var server值为自己的应用地址。
同时需要配置c3p0-config.xml中的数据库信息,修改为自己的数据库信息:<br/>
```$xslt
<property name="jdbcUrl">jdbc:mysql://localhost:3306/laboratory_system</property>
<property name="user">root</property>
<property name="password">root</property>
```
**项目设计以及实现上的几个点** :<br/>
1、后端功能的开发:利用 Session、 ServletContext、 Listener 以及 Filter 等特性来实现同一时刻的单客户端登录限制;通过定时
任务 Quartz 和多线程调用阿里云短信接口来完成定时短信提醒功能;通过 CROS 解决跨域请求问题;<br/>
2、基础服务组件工具类的设计:设计 C3P0Util 来完成数据库连接池的功能,通过注册 JSON 转换器来完成时间转换处理,设计
MD5Util 来完成用户密码的加密,设计 ThreadLocal 工具类通过同一线程获取同一连接的思路来保证事务操作的安全;<br/>
3、简易算法的设计:通过实现简单算法,来完成系统的自动化计算功能,如年级、当前上课周次的计算等;<br/>
4、数据库的设计与开发:分析数据结构来完成相应表的设计,同时设计触发器来完成相应功能的实现,如关联数据的清除;<br/>
5、我和前端大佬在接口的协作上是通过 RAP2 来制定接口文档。<br/>
![RAP2接口文档展示](https://github.com/Jump-Boy/laboratory_system/blob/master/illustration/RAP2接口文档展示.png)
## 项目展示
![超管权限界面](https://github.com/Jump-Boy/laboratory_system/blob/master/illustration/超管权限界面.png) <br/>
![开学时间展示](https://github.com/Jump-Boy/laboratory_system/blob/master/illustration/开学时间展示.png) <br/>
![角色管理展示](https://github.com/Jump-Boy/laboratory_system/blob/master/illustration/角色管理展示.png) <br/>
![添加课程展示](https://github.com/Jump-Boy/laboratory_system/blob/master/illustration/添加课程展示.png) <br/>
![课程管理展示](https://github.com/Jump-Boy/laboratory_system/blob/master/illustration/课程管理展示.png) <br/>
## 项目详述
### 总体架构设计
本文所研究的系统在设计开发上采用了前后端分离的设计模式,前端部分主要以 HTML 和 AngularJS 为核心进行开发,而后端部分主要以
Java 进行功能开发和 MySQl 做数据库管理。前后端数据交互则采用 Http 协议+ JSON,前后端在开发的同时通过共同维护的接口文档作为参
照规范,接口文档中定义了后端接口和前后端JSON数据格式。系统的总体架构图如下图所示:<br/>
![总体架构图](https://github.com/Jump-Boy/laboratory_system/blob/master/illustration/系统总体架构图.png)
* 后端架构设计<br/>
该课题研究的是系统后端设计,设计语言主要采用 Java 为主,使用 JDK 1.6,API 遵循 Java EE 规范,项目部署在阿里云上,服务器
使用 Tomcat 7.0,数据库使用 RDS MySQL ,负载均衡使用 Nginx+Tomcat 集群来应对高并发,前后端数据交互采用 Http协议+JSON。
为了保证功能逻辑清晰,代码的质量和可重用性,使用了 MVC(Model View Controller)的设计架构模式,M:Model 模型,JavaBean
实体类。V:JSON 数据和 View 视图渲染。C:Controller 控制器,这里指 Servlet 和接口 url。在代码组织结构上使用了分层思想,即
表现层(Web层)、业务层和数据访问层。这样分层可以达到强内聚和弱耦合,架构如下图所示:<br/>
![后端架构设计图](https://github.com/Jump-Boy/laboratory_system/blob/master/illustration/后端架构设计图.png)
* 模块设计<br/>
在进行系统的功能设计时,需要清楚系统的每个功能内容,需要进行模块化分析,将功能分成多个互相独立的模块。在设计过程中,避免
模块之间的冗余,提取出公共的部分进行了设计,包含一些工具类库文件的设计,如数据源连接池、线程池、 MD5 加密以及时间格式转换
器等。最后项目通过 Http 头字段进行控制,解决了资源跨域问题。以下为各模块设计:<br/>
1、登录模块<br/>
用户输入学号和密码,选择登录的角色类型(管理员,教师或学生),点击登录按钮,系统根据输入内容进行校验并进行友好提示。登录
界面中包含重置按钮,用于输入框内容的快速清空。<br/>
技术特点:服务器与数据库进行数据交互,完成信息校验。<br/>
2、主页模块<br/>
用户登录系统后,将显示主页内容。主页用于展示出近期的所有公告,显示公告的标题,用户可以点击查看具体某个公告的详情内容,并
且提供了附件下载,可以下载公告中含有的文件。<br/>
技术特点:服�
没有合适的资源?快使用搜索试试~ 我知道了~
本科毕业设计-Java Web学院的实验课选课及实验室管理系统.zip
共526个文件
js:268个
java:78个
css:54个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 158 浏览量
2024-11-27
09:18:45
上传
评论
收藏 59.75MB ZIP 举报
温馨提示
本科毕业设计-Java Web学院的实验课选课及实验室管理系统 项目简介 该项目设计是物电学院实验室选课系统的Web前后端设计,实现同学根据个人时间安排自主选课的功能,同时教师可以根据选课 情况,进行 管理,如某个时间段的实验课选课学生人数过少可以另外更改开课时间或者做其他修改,这样为教师和学生都带来很 大的便利,同时系统 还需要实现平台化打分,如为每个学生打总成绩时,平台会为教师提供参考成绩以及平时课堂情况,代替以 往的手写填表式打分。另外平 台更加的自动化,如随堂打分,系统会自动的根据时间去进行判断,筛选出当前实验课信息以及学 生信息。平台在为教师和学生带来便利 的同时,还为管理员提供了更大的权限,查看课程信息,成绩,学生选课情况等,使得管 理员在第一时间可以清楚学院的课程管理情况, 同时系统还增加了实验室管理的功能,管理员在拥有更高权限的同时,可以起到 更好的管理作用,为学院管理做出贡献。而课题设计正是 为实现这些功能以解决问题,同时保证系统可靠运行而进行的。 系统设计上采用了分层架构的思想,前后端之间的通信采用了 Http+JSON 的形式进行数据的交互。前端部分主要以 HT
资源推荐
资源详情
资源评论
收起资源包目录
本科毕业设计-Java Web学院的实验课选课及实验室管理系统.zip (526个子文件)
COPYING 11KB
summernote-bs3.css 143KB
bootstrap.min.css 118KB
style.css 94KB
animate.css 65KB
font-awesome.css 37KB
bootstrap-social.css 33KB
ambiance.css 25KB
style.min.css 25KB
sweetalert.css 18KB
colorpicker.css 17KB
chartist.min.css 14KB
jasny-bootstrap.min.css 14KB
dropzone.css 11KB
bootstrap-chosen.css 11KB
fullcalendar.css 11KB
toastr.min.css 11KB
summernote.css 10KB
ng-grid.css 10KB
myCss.css 8KB
ladda-themeless.min.css 8KB
codemirror.css 7KB
angular-datapicker.css 7KB
blueimp-gallery.min.css 7KB
daterangepicker-bs3.css 7KB
awesome-bootstrap-checkbox.css 7KB
datatables.min.css 6KB
jquery.steps.css 6KB
footable.core.css 5KB
spinners.css 5KB
select.min.css 4KB
clockpicker.css 4KB
ng-tags-input-custom.min.css 3KB
ion.rangeSlider.css 3KB
slick-theme.css 3KB
jquery.nouislider.css 3KB
main.css 3KB
bootstrap-markdown.min.css 3KB
c3.min.css 2KB
bootstrap-tour.min.css 2KB
ion.rangeSlider.skinFlat.css 2KB
normalize.css 2KB
bootstrap-duallistbox.min.css 2KB
slick.css 2KB
style.css 2KB
angular-notify.min.css 1KB
custom.css 1KB
fixedColumns.bootstrap.min.css 1KB
angular-ui-tree.min.css 1KB
basic.css 961B
jquery.bootstrap-touchspin.min.css 899B
basics.css 696B
switchery.css 610B
ng-img-crop.css 195B
jquery-jvectormap-2.0.2.css 0B
ajax-loader.gif 4KB
loading.gif 4KB
throbber.gif 2KB
.gitattributes 173B
subjectManage.html 15KB
roleManager.html 8KB
home.html 6KB
personInfo.html 5KB
readScore.html 4KB
resetPassword.html 3KB
login.html 3KB
index.html 3KB
scoreManage.html 3KB
navigators.html 3KB
selectSubject.html 2KB
markScore.html 2KB
readClassSheet.html 1KB
index.html 458B
favicon.ico 12KB
compiler.jar 5.68MB
mysql-connector-java-8.0.19.jar 2.25MB
jsf-impl.jar 1.78MB
catalina.jar 1.61MB
quartz-2.2.3.jar 645KB
c3p0-0.9.1.1.jar 594KB
jsf-api.jar 593KB
commons-collections-3.2.1.jar 562KB
log4j-1.2.16.jar 470KB
jstl-impl.jar 379KB
commons-lang-2.6.jar 278KB
servlet-api.jar 277KB
commons-beanutils-1.8.3.jar 227KB
junit.jar 215KB
json-lib-2.4-jdk15.jar 155KB
aliyun-java-sdk-core-3.3.1.jar 105KB
ezmorph-1.0.6.jar 84KB
commons-logging-1.1.1.jar 59KB
commons-dbutils-1.4.jar 48KB
javax.servlet.jsp.jstl.jar 44KB
quartz-jobs-2.2.3.jar 33KB
slf4j-api-1.7.7.jar 29KB
org.hamcrest.core_1.1.0.v20090501071000.jar 27KB
aliyun-java-sdk-dysmsapi-1.0.0.jar 21KB
slf4j-log4j12-1.7.7.jar 9KB
TeaServiceImpl.java 22KB
共 526 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
人工智能教学实践
- 粉丝: 591
- 资源: 430
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 5 薪酬结构统计分析表(依据基本信息自动生成).xlsx
- 4 员工工资表-部门薪酬分析.xlsx
- 8 公司工程部人事薪酬分析.xlsx
- 13 公司人力资源薪酬工资统计表.xlsx
- 7 薪酬市场数据统计分析.xlsx
- 9 公司员工薪酬统计分析表.xlsx
- 10 财务分析员工薪酬统计表.xlsx
- 12 财务报表员工薪酬结算.xlsx
- 11 财务报表员工薪酬分析.xlsx
- 15 薪资情况分析表.xlsx
- 14 薪资筹划财务分析表.xlsx
- 18 财务汇报部门历年薪酬统计图表.xlsx
- 16 月度工资支出数据汇总图表.xlsx
- 17财务报告年度工资统计图表1.xlsx
- 20 工资表-部分统计-图表展示.xlsx
- 21 公司部门工资情况汇报图表模板.xlsx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功