对作业管理系统的总结和期望
小组成员:李海龙、胡志宸
总结和感想
上个学期学习了《软件工程》这门课,让我对软件工程有了一个大致的了解,在学习的过程中我们第一次比较完整的以一个小组的形式开发了一个小系统——作业管理系统。在开发过程中我们也遇到了一些难题,比如要用到的框架和技术以我们当时的技术而言很难做到,于是边学习边开发,让我们小组从0开始逐渐掌握了一些基本框架和技术,此次的开发过程也让我对于一个开发过程有了一个大致了解,也让我明白了小组中每一个人都有其存在的意义,因为每个人有其负责该项目的地方。此外,团队中有一个统筹大局的人很重要,他要负责项目的进展以及团队成员之间的分工。以上就是我对开发“作业管理系统”的总结和感想,下面我将所用到的框架及技术进行分享。
一、作业管理系统所用到的框架
-
B/S架构 ;
-
Spring MVC框架** ;
Spring MVC 是一种基于Spring实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,使用了MVC的架构模式思想,将Web层进行指责解耦,并管理应用所需的生命周期,为简化日常开发,提供了很大便利。
Spring MVC提供了总开关Dispatcher Servlet;请求处理映射器(Handler Mapping)和处理适配器(Handler Adapter),视图解析器(View Resolver)进行视图管理;动作处理器Controller接口(包含Model And View,以及处理请求响应对象请求和响应),配置灵活,支持文件上传,数据简单转化等强大功能。 -
mybatis框架 ;
MyBatis是一个优秀的持久层框架,它对jdbc操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。
Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。 -
layui框架 ;
layui,是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与组织形式,门槛极低,拿来即用。其外在极简,却又不失饱满的内在,体积轻盈,组件丰盈,从核心代码到 API 的每一处细节都经过精心雕琢,非常适合界面的快速开发。layui 首个版本发布于2016年秋,它区别于那些基于 MVVM 底层的 UI 框架,却并非逆道而行,而是信奉返璞归真之道。准确地说,它更多是为服务端程序员量身定做,开发者无需涉足各种前端工具的复杂配置,只需面对浏览器本身,使得开发十分便捷。
layui更多是面向于后端开发者,所以在组织形式上毅然采用了几年前的以浏览器为宿主的类 AMD 模块管理方式,却又并非受限于 CommonJS 的那些条条框框,它拥有自己的模式,更加轻量和简单。layui 定义为“经典模块化”,并非是刻意强调“模块”理念本身,而是有意避开当下 JS 社区的主流方案,试图以尽可能简单的方式去诠释高效!它的所谓经典,是在于对返璞归真的执念,它以当前浏览器普通认可的方式去组织模块! layui 认为这种轻量的组织方式,仍然可以填补 WebPack 以外的许多场景。所以它坚持采用经典模块化,也正是能让人避开工具的复杂配置,重新回归到原生态的 HTML/CSS/JavaScript本身!
二、开发环境搭建
开发环境采用IDEA,JDK1.8,mysql,Tomcat 8服务器
5. IDEA[^1] ;
6. JDK1.8 ;
7. mysql ;
8. Tomcat 8服务器 ;
9. idea搭建Tomcat 8
推荐:https://blog.csdn.net/qq_39220990/article/details
三、系统总体的布局E-R图
四、系统部分页面展示
1、登陆功能实现
设计登录页面。在设计页面时,为了更好体现作业管理系统的特点,在页面布局上,采用“居中”结构,上部分用于显示作业管理系统的标题,下部分则用于呈现登录文本框、学生注册入口按钮。登录页面的效果如图所示:
@RequestMapping("/login") //插入数据
public String login(String username, String password, String type, HttpSession session, Model model) {
List<Admininfo> admininfoList = admininfoMapper.selectByMap(null);
Admininfo admin = new Admininfo();
boolean is = false;
for (Admininfo admininfo : admininfoList) {
if (admininfo.getAdminname().equals(username) && admininfo.getAdminpwd().equals(password)) {
admin = admininfo;
is = true;
break;
}
}
if (is) {
if (!admin.getIslock().equals("可用")) {
model.addAttribute("msg", "用户已经被禁用");
return "admin/login";
}
session.setAttribute("loginUser", admin);
session.setAttribute("loginType", "学生");
return "redirect:tomain";
} else {
model.addAttribute("msg", "账号或者密码错误");
return "admin/login";
}
}
2、教师评阅作业功能
教师可以对学生的作业进行评阅,如图:
public String toAdd(HttpServletRequest request) {
List<Workinfo> list = workinfoMapper.selectByMap(new HashMap<String, Object>());
request.getSession().setAttribute("workList",list);
return "homework/homeworkAdd";
} @RequestMapping("/detail") //编辑数据
public String detail(int id, Model model) {
Homework homework = homeworkMapper.selectById(id);
model.addAttribute("homework", homework);
return "homework/homeworkDetail";
}
因为这是一个系统剩下的内容不在一一展示。
期望
因为当时在做该项目时大家的技术有限,有些地方我也没弄清楚,有些功能因为技术受限无法实现,我对自己的期望是在接下来的时间中继续学习新的技术。此外,当时的我们是以开发者和设计者的角度去开发该系统,如今我们将要一项目管理者的角度去开发系统,相信我们将会有不一样的开发体验。
软件项目管理的相关知识点
相关地址:https://blog.csdn.net/qq_43285863/article/details
如需要相关源码及文件可以私信我:qq878545762