• 【开源】基于Vue.js的学生日常行为评分管理系统的设计和实现


    在这里插入图片描述
    项目编号: S 010 ,文末获取源码。 \color{red}{项目编号:S010,文末获取源码。} 项目编号:S010,文末获取源码。



    一、摘要

    1.1 项目介绍

    基于Vue+SpringBoot+MySQL的学生日常行为评分管理系统,包含了评分项目模块、评分数据模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,学生日常行为评分管理系统基于角色的访问控制,给学生、教师、管理员使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

    学生的日常行为代表着学生个人的品行,值得高校去分析研究,高校需要注重学生日常行为管理,及时对学生的行为进行记录,才能帮助学生全面发展。开发学生日常行为评分管理系统的目的是提高高校学生管理者的工作效率,让高校老师的日常管理事务得到有效缓解,也能让学生更全面、快速地掌握自身的信息,更好地约束学生的日常行为。

    学生日常行为评分管理系统基于 Java 语言开发,采用前后端分离的技术架构,前端采用 Vue.js,后端采用 SpringBoot 框架,数据库使用 MySQL

    1.2 项目录屏

    源码下载


    二、系统设计

    在这里插入图片描述

    2.1 功能模块设计

    2.2.1 登录注册模块

    登录注册模块的作用,是帮助用户进入学生日常行为评分管理系统。用户可以使用账号、密码和图形验证码登录到系统,如果账号密码输入错误会给与提示。如果用户没有账号需要到注册模块进行账号注册,提供用户名、密码、确认密码、邮箱、手机号、出生日期、角色信息,完成注册后再次登录。

    2.2.2 用户管理模块

    用户管理模块关于用户的个人数据和隐私信息,用于学生日常行为评分管理系统。因此,为了确保数据的安全和隐私,防止用户的个人数据泄露,学生日常行为评分管理系统需要一个用户管理模块,用户管理模块帮助系统执行用户身份验证,并确保只有授权用户才能访问系统,这有效地防止了未经授权的访问和系统滥用。用户管理模块实现不同用户之间的权限控制,使得每个用户只能访问必要的功能和数据,例如管理员可以拥有更高级别的权限,但普通用户只能访问某些系统内容,用户管理模块允许用户反馈和参与,确保学生日常行为评分管理系统从用户那里获得有价值的反馈和建议,这有助于优化系统设计和提高系统功能,从而提高用户体验和满意度。如上所述,用户管理模块对于学生日常行为评分管理系统非常重要,它可以确保学生日常行为评分管理系统的安全性、可靠性和可用性,并促进用户的参与和反馈。

    在这里插入图片描述

    2.2.3 评分项目模块

    学生日常行为评分管理系统之所以需要评分项目模块,是因为日常行为的表现形式太多了,不同的行为是独立的,不进行相互关联,通过将日常活动分解为几个具体的评分项目,可以更客观地评估个人的行为表达,并在评估结果中找到具体的问题和改进方向,评估项目模块还帮助评估者减少评估过程中的主观影响,提高评估的准确性和可靠性。

    在这里插入图片描述

    2.2.4 评分数据模块

    学生日常行为评分管理系统需要一个评估数据模块,因为它可以收集、存储、分析和处理用户的日常行为数据,为用户提供个性化的建议和反馈。通过评估数据模块,可以了解用户的健康状况、锻炼习惯、饮食偏好等信息,学生日常行为评分管理系统可以更准确地确定用户的行为是否符合管理员规定的标准,并为用户制定适当的计划,帮助用户实现设定目标,评分数据模块还记录用户的行为变化和进展,为用户提供更详细的服务和支持。

    在这里插入图片描述

    2.2.5 数据字典模块

    学生日常行为评分管理系统需要一个数据字典模块,这是因为它可以提供一个用于分类、组织和存储数据的结构化框架,以便于数据管理和处理,在学生日常行为评分管理系统中,数据字典模块可以包括各种分类代码和定义,如时间代码、地点代码、动作类型代码等,这些编码和定义允许学生日常行为评分管理系统更好地记录和分析行为数据,以提高评分的准确性和有效性,同时,数据字典模块可以方便用户查询和统计相关的数据信息,从而提高学生日常行为评分管理系统使用效率和用户体验。

    在这里插入图片描述

    2.3 可行性设计

    学生日常行为评分管理系统的可行性分析主要包括以下 4 4 4 个方面。

    1. 技术可行性:学生日常行为评分管理系统需要基于 vuespringboot 等开发技术,这些技术在现代社会得到了广泛的应用和发展,在技术上是可行的。
    2. 经济可行性:学生日常行为评分管理系统需要硬件基础设施建设,软件开发需要一定的投资。但是,随着科技的发展,硬件设施的成本不断降低,也有大量的开源框架可供软件开发。因此,从长远来看,学生日常行为评分管理系统是一种新型的管理系统,所以在经济上是可行的。
    3. 用户需求:学生日常行为评分管理系统可以帮助高校管理学生,提高学生管理效率,满足高校的实际需求,具有良好的市场前景。
    4. 竞争分析:学生日常行为评分管理系统已经在一些大型超市得到应用,市场上也有成熟的超市导航产品。因此,需要更好的策略和方法来促进与竞争对手的市场竞争。

    日常行为评分系统具有经济可行性。首先,由于日常行为评分系统可以通过分析和处理用户的日常行为数据来提供个性化建议和反馈,因此可以吸引更多用户使用,从而增加收入来源。其次,该系统还可以与其他健康管理软件或设备进行合作,共同推广健康生活方式,进一步扩大市场份额。此外,日常行为评分系统还可以为医疗机构、保险公司等提供相关数据和服务,从而形成更广泛的商业合作。最后,日常行为评分系统可依靠云计算等技术实现资源共享和成本节约,提高盈利效率。综上所述,日常行为评分系统在商业模式和技术应用方面都具有较好的发展前景和经济可行性。

    日常行为评分系统是一种基于技术手段对人类行为进行评估的系统。虽然技术手段可以收集和分析许多数据,但评估人类行为涉及到很多主观性和复杂性,因此其技术可行性存在较大挑战。首先,日常行为评分系统需要准确地识别和记录人类行为,这需要使用各种传感器和设备来捕捉数据。然而,这些设备可能会受到环境影响或者被人为干扰,导致数据的准确性存在疑问。其次,日常行为评分系统需要进行数据分析和处理,以评估人类行为的质量和效果。然而,要在大量数据中准确地提取有用信息并进行分析是非常困难和耗时的。最后,日常行为评分系统需要建立一个完整的评估标准和方法,以确保评估过程的公正性和准确性。这需要综合考虑人类行为的主观性和复杂性,同时还需要涉及专家意见和社会价值观的反馈。因此,虽然技术手段可以为日常行为评分系统的开发提供支持,但实现真正的技术可行性仍然需要充分的研究和实践。

    日常行为评分系统的操作可行性取决于多个因素,包括系统的设计、用户的技能和使用环境等。如果系统的设计合理且易于使用,用户熟悉其功能和操作流程,并在实际使用中得到了充分的支持和帮助,那么日常行为评分系统的操作是可行的。对于日常行为评分系统而言,一些关键点需要考虑,系统界面要具备良好的用户交互体验,以提高用户的学习曲线和使用效率。系统的操作流程应该尽可能简单化,需要减少用户的心理和生理负荷,让用户更加专注于任务本身。评分系统的数据采集和处理过程需要保证数据的准确性和完整性,以保障后续的数据分析和应用。评分系统需要建立完善的安全机制,防止数据泄露和非法访问,保护用户的个人隐私。
    综合考虑以上因素,学生日常行为评分管理系统的可行性是比较高的

    2.4 用例设计

    在这里插入图片描述

    2.5 数据库设计

    2.5.1 整体 E-R 图

    在这里插入图片描述

    2.5.2 用户

    在这里插入图片描述
    在这里插入图片描述

    2.5.3 评分项目

    在这里插入图片描述
    在这里插入图片描述

    @Table(name = "a_score_project")
    @TableName("a_score_project")
    @ApiModel(value = "评分项目")
    public class ScoreProject extends ZwzBaseEntity {
    
        private static final long serialVersionUID = 1L;
    
        @ApiModelProperty(value = "评分项目名称")
        private String title;
    
        @ApiModelProperty(value = "评分细则")
        private String content;
    
        @ApiModelProperty(value = "排序值")
        private BigDecimal sortOrder;
    
        @ApiModelProperty(value = "备注")
        private String remark;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    2.5.4 评分数据

    在这里插入图片描述
    在这里插入图片描述

    @Table(name = "a_score_data")
    @TableName("a_score_data")
    @ApiModel(value = "评分数据")
    public class ScoreData extends ZwzBaseEntity {
    
        private static final long serialVersionUID = 1L;
    
        @ApiModelProperty(value = "项目ID")
        private String projectId;
    
        @ApiModelProperty(value = "项目名称")
        private String projectName;
    
        @ApiModelProperty(value = "学生ID")
        private String studentId;
    
        @ApiModelProperty(value = "学生姓名")
        private String studentName;
    
        @ApiModelProperty(value = "加分数值")
        private BigDecimal value;
    
        @ApiModelProperty(value = "加分原因")
        private String reason;
    
        @ApiModelProperty(value = "加分时间")
        private String time;
    
        @ApiModelProperty(value = "操作人ID")
        private String workId;
    
        @ApiModelProperty(value = "操作人")
        private String workName;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    2.5.5 数据字典

    在这里插入图片描述
    在这里插入图片描述

    三、系统实现

    3.1 登录

    在这里插入图片描述

    3.2 主页

    在这里插入图片描述

    3.3 评分项目模块

    在这里插入图片描述
    在这里插入图片描述

    3.4 评分数据模块

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    四、核心代码

    4.1 用户查询

    @RequestMapping(value = "/getAll", method = RequestMethod.GET)
    @ApiOperation(value = "查询用户数据")
    public Result<List<User>> getAll(@RequestParam Integer type){
        QueryWrapper<User> qw = new QueryWrapper<>();
        qw.eq("type",type);
        return new ResultUtil<List<User>>().setData(iUserService.list(qw));
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    4.2 查询自己的评分数据

    @RequestMapping(value = "/getByPage", method = RequestMethod.GET)
    @ApiOperation(value = "查询评分数据")
    public Result<IPage<ScoreData>> getByPage(@ModelAttribute ScoreData scoreData ,@ModelAttribute PageVo page){
        QueryWrapper<ScoreData> qw = new QueryWrapper<>();
        User currUser = securityUtil.getCurrUser();
        QueryWrapper<User> userQw = new QueryWrapper<>();
        userQw.eq("id",currUser.getId());
        userQw.inSql("id","SELECT DISTINCT user_id FROM a_user_role WHERE del_flag = 0 AND (role_id = '1536606659751841799' OR role_id = '1674219991056125952')");
        if(iUserService.count(userQw) > 0L) {
            qw.eq("student_id",currUser.getId());
        }
        if(!ZwzNullUtils.isNull(scoreData.getProjectName())) {
            qw.like("project_name",scoreData.getProjectName());
        }
        if(!ZwzNullUtils.isNull(scoreData.getStudentName())) {
            qw.like("student_name",scoreData.getStudentName());
        }
        if(!ZwzNullUtils.isNull(scoreData.getWorkName())) {
            qw.like("work_name",scoreData.getWorkName());
        }
        IPage<ScoreData> data = iScoreDataService.page(PageUtil.initMpPage(page),qw);
        return new ResultUtil<IPage<ScoreData>>().setData(data);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    4.3 新增评分数据

    @RequestMapping(value = "/insert", method = RequestMethod.POST)
    @ApiOperation(value = "新增评分数据")
    public Result<ScoreData> insert(ScoreData scoreData){
        ScoreProject sp = iScoreProjectService.getById(scoreData.getProjectId());
        if(sp == null) {
            return ResultUtil.error("评分项目不存在");
        }
        scoreData.setProjectName(sp.getTitle());
        User student = iUserService.getById(scoreData.getStudentId());
        if(student == null) {
            return ResultUtil.error("学生不存在");
        }
        scoreData.setStudentName(student.getNickname());
        User currUser = securityUtil.getCurrUser();
        scoreData.setWorkId(currUser.getId());
        scoreData.setWorkName(currUser.getNickname());
        scoreData.setTime(DateUtil.now());
        iScoreDataService.saveOrUpdate(scoreData);
        return new ResultUtil<ScoreData>().setData(scoreData);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    4.4 新增评分项目

    @RequestMapping(value = "/insert", method = RequestMethod.POST)
    @ApiOperation(value = "新增评分项目")
    public Result<ScoreProject> insert(ScoreProject scoreProject){
        if(Objects.equals(0,scoreProject.getSortOrder().compareTo(BigDecimal.ZERO))) {
            scoreProject.setSortOrder(BigDecimal.valueOf(iScoreProjectService.count()));
        }
        iScoreProjectService.saveOrUpdate(scoreProject);
        return new ResultUtil<ScoreProject>().setData(scoreProject);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    五、免责说明

    • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
    • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
    • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

    下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

    1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
    2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
    3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
    4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。
  • 相关阅读:
    MySQL 定义条件与处理程序 的详细讲解
    Verilog HDL 语法整理 (五)
    37.JavaScript对象与JSON格式的转换,JSON.stringify、JSON.parse方法的使用方法和注意事项
    【论文】撰写小论文用到的资料
    通过虚拟机搭建个人NAS
    dos2unix命令
    BlockingQueue
    【Tensorflow+自然语言处理+RNN】实现中文译英文的智能聊天机器人实战(附源码和数据集 超详细)
    Python入门自学进阶-Web框架——26、DjangoAdmin项目应用-数据记录操作
    【书籍】计算机
  • 原文地址:https://blog.csdn.net/askf01/article/details/134460449