第一章 需求建模
1.1项目功能介绍
勤工助学管理系统是一款专为高校设计的系统,旨在帮助学生更好地管理勤工助学活动。以下是该系统的详细功能介绍:
-
教师身份:
1. 岗位发布与管理:系统允许教师勤工助学岗位,详细描述岗位需求、工作内容、待遇等信息。管理员可以对已发布的岗位进行管理,如修改、删除等。
2. 岗位信息查询:教师可以在系统中查询岗位详细信息,如岗位的发布时间、工作内容、待遇等。系统还会以柱状图,折线图等方式展示岗位的统计信息。
3. 学生申请的审核与展示:教师可以在系统中查询学生申请岗位的详细信息,教师可以对对学生的申请进行审核。
4. 学生评分:教师可以对已完成工作的学生进行打分,评级。
5. 导出数据功能:教师可以将系统中的岗位信息列表导出成excel表格。
-
学生身份:
1. 岗位信息查询:学生可以在系统中查询岗位详细信息,如岗位的发布时间、工作内容、待遇等。系统还会以柱状图,折线图等方式展示岗位的统计信息。
2. 学生申请:学生可以在系统中搜索并申请感兴趣的岗位。系统会自动将学生的申请发送给教师。
3. 导出数据功能:学生可以将系统中的岗位信息列表导出成excel表格。
4. 学生申请展示:学生可以在系统中查询自己申请岗位的详细信息,当前的审批状态等等。
本次我实现的内容如下:
学生 | 教师 | |||||
前端 | 实名认证页面 | 申请列表页面 | 申请详情页面 | 学生评分页面 | 实名认证页面 | 申请列表页面 |
申请详情页面 | ||||||
后端 | 学生实名认证 | 登陆令牌开发 | 岗位申请开发 | 岗位信息管理 | 教师实名认证 | 登陆令牌实现 |
撤销岗位申请 | 学生评分功能 | 岗位申请审批 | ||||
绘图 | 统计查询用例图 | 统计查询顺序图 | 统计查询活动图 | 学生评分用例图 | 学生评分顺序图 | 学生评分活动图 |
统计查询用例图 | 学生评分用例图 |
1.2用例图
学生查询岗位信息的前提是完成登录,导出岗位统计信息是查询岗位统计信息的扩展功能。
图1-1 学生岗位统计功能用例图
教师查询岗位信息的前提是完成登录,导出岗位统计信息是查询岗位统计信息的扩展功能。
教师管理岗位统计信息的前提是管理岗位信息,管理岗位信息的前提是登录。
图1-2 教师岗位统计功能用例图
教师学生评分的前提是完成登录,导出学生评分是学生评分的扩展功能,导出学生评分是递交企业的前提
图1-3 学生评分功能用例图
1.3用例规约
1. 学生评分功能用例规约
用例名称:学生评分功能
前置条件:
1. 教师已登录系统。
2. 存在可评分的学生。
后置条件:
1. 评分结果已保存至数据库。
基本流:
1. 教师选择一个完成工作的学生,进入评分页面。
2. 教师输入评分值(1-5分)。
3. 系统验证输入的评分值是否在有效范围内。
4. 系统将评分值保存至数据库,并提示“评分成功”。
备选流:
1. 无效评分值:当输入的评分值不在1-5分范围内时,系统提示“评分值应在1-5分之间”。
2. 重复评分:若学生对同一个岗位进行了重复评分,系统提示“您已对该岗位进行过评分,不能重复评分”。
2. 查询岗位统计功能用例规约
用例名称:查询岗位统计功能
前置条件:
1. 学生已登录系统。
2. 系统中有岗位数据。
后置条件:
1. 统计结果已展示给学生。
基本流:
1. 学生选择“查询岗位统计”功能,进入统计页面。
2. 系统根据数据库中的岗位记录,计算每个岗位部门的人数,申请人数等信息。
3. 系统将统计结果显示给学生。
4. 学生查看完统计结果后,可以返回主页面或进行其他操作。
备选流:
1. 若系统中不存在岗位记录,系统提示“暂无统计数据”。
第二章 分析建模
2.1系统顺序图
1. 学生评分
图2-1 学生评分功能顺序图
2.2活动图
1. 学生查询统计信息
图2-2 学生查询统计活动图
2. 教师查询统计信息
图2-3 教师查询统计活动图
3. 学生评分功能
图2-4 学生评分功能活动图
第三章 设计建模
3.1技术选择
在开发勤工助学管理系统时,我们选择了以下技术栈:
后端:
l Java Spring:作为核心框架,Spring提供了依赖注入、事务管理等功能,使得开发更为高效。
l Spring MVC:用于构建Web应用程序的模型-视图-控制器(MVC)架构,使得前端和后端的逻辑分离。
l MyBatis Plus:一个强大的持久层框架,简化了数据库操作,提供了CRUD等常用功能的封装。
数据库:
l MySQL:开源、流行的关系型数据库,提供稳定、高效的数据存储服务。
前端:
l Vue.js:用于构建用户界面的渐进式JavaScript框架。
l Element UI:基于Vue的UI组件库,提供了丰富的界面元素和功能。
版本控制与协同开发:
l GitHub:作为版本控制系统,方便团队成员协同开发、管理和跟踪代码变更。
3.2架构设计
l 表现层(Presentation Layer):这是用户直接交互的部分,包括Web界面和相关的用户输入/输出处理。使用Spring MVC和Vue.js实现。
l 业务逻辑层(Business Logic Layer):在这一层,核心的逻辑处理和数据验证都在这里执行。Spring框架用于处理这些任务。
l 数据访问层(Data Access Layer):MyBatis Plus负责与数据库的交互,包括数据的增删改查等操作。
l 数据持久层(Persistence Layer):这是与数据库直接交互的部分,MyBatis Plus和MySQL数据库共同工作在这一层。
l 版本控制与协同开发(Version Control & Collaborative Development):使用GitHub进行代码管理和协同开发,通过Pull Request等方式进行代码审查。
3.3类的设计
整体类图:
图3-1 整体类图
3.4 数据库设计
用户数据库:
图3-2 用户数据库展示图
岗位信息数据库:
图3-3 岗位信息数据库展示图
申请记录数据库:
图3-4 申请记录数据库展示图
第四章 实现
4.1 整体代码结构
1.接收参数类dto
用于接收前端传递参数
图4-1 dto接受参数类展示图
2.实体类entity
将dto参数放入实体类中进行逻辑处理
图4-2 实体类展示图
3.返回类型vo
将entity参数放入vo类并返回给前端
图4-3 返回类型vo类展示图
4. 控制层(Controller层)
用于编写逻辑接收前端参数
图4-4 Controller类展示图
5. 服务层(Service层)
用于编写逻辑接收对参数处理
图4-5 Service类展示图
6. 数据注入层(Mapper层)
用于编写逻辑接收返回参数给前端
图4-6 Mapper类展示图
4.2 实现
1. 代码(代码中有详细注解)
前端:jiangyx111/part-time-job-web (github.com) (master分支)
后端:Haite913/part-time-job-server: 勤工系统-server (github.com) (master分支)
2、运行结果(展示部分页面)
统计页面:
图4-7 统计页面展示图
申请详情页面:
图4-8申请详情页面展示图
4.3 技术选型
-
前端:Vue+Element
-
后端:Spring
-
数据库:MySql+MyBatis+MyBatis-Plus
-
管理协同开发:github
图4-9 技术选型展示图
4.4 实现过程
-
实现时长:
图4-10 实现时长展示图
-
更新次数:
图4-11 更新次数展示图
第五章 总结
本次实验实现了以下目标:学习和掌握勤工助学管理系统的基本原理和功能;学会使用Java Spring框架进行后端开发;熟悉Spring MVC和MyBatis Plus在Web应用程序中的应用;掌握MySQL数据库的使用和管理;熟悉Vue.js和Element UI前端框架的使用;通过实际操作,提高团队协作和解决问题的能力。
通过本次实验,成功地开发出了一款勤工助学管理系统,实现了预定的功能,并进行了系统测试和优化。该系统具有用户友好的界面,强大的后台管理功能,能够满足高校学生和教师的需求。
在实验过程中,也遇到了一些问题和挑战,例如前后端联调问题、数据库与实体类设计问题等。为了进一步提高系统的质量和稳定性,采取以下措施:
前后端联调问题:随着接口与页面的不断增加,需要不断进行前后端联调,以确保功能正常运行,借助浏览器调试工具,idea调试工具以及postman等软件。数据库与实体类设计问题: 绘制活动图,顺序图,用例图对系统设计有个清晰的认识,再设计类图,对数据库和实体类设计进行规范