计算机毕业设计Python+SpringCloud微服务高考志愿填报推荐系统 高考大数据 SparkML机器学习 深度学习 人工智能 Python爬虫 知识图谱

基于微服务的高考志愿智能辅助决策系统

王辉、沈洪任、陈鑫超、黄客贺、梁文清

(山东农业大学,山东 泰安,271018

摘要:针对山东省新高考改革后家长与考生对志愿填报智能辅助决策的新需求,分析了现有志愿填报系统在山东省新高考场景下存在的问题,设计和实现了一个高考志愿智能辅助决策系统。系统基于Spring Could 微服务架构,采用Vue+ElementUI实现表单动态渲染、可视化配置,使用Echarts实现可交互,可个性化定制的数据图片的展示,使用Mybatis Plus技术连接MySQL数据库进行数据分析,并采用分段赋权的志愿推荐策略。根据不同用户的身份提供不同的功能,普通用户可以进行院校查询、专业查询、高校大数据查询、模拟志愿填报等功能,并且可以根据自己的位次以及选科等信息,获取个性化志愿推荐;管理员用户可以进行咨询师的添加、修改、删除等功能。

关键词:微服务;高考志愿;前后端分离;智能辅助决策系统

中图分类号:TP311.5;TP311.1      文献标志码:A

Microservices Based Intelligent Decision-making System for College Application

Wang Hui,Shen Hongren,Chen Xinchao,Huang Kehe,Liang Wenqing

(Shandong Agricultural University, Taian, 271018)

Abstract:  In view of the new demand of parents and examinees for intelligent decision support for college application after the reform of the new college entrance examination in Shandong Province, this paper analyzes the problems of the existing college application systems in the context of the new college entrance examination in Shandong Province, and designs and implements an intelligent decision support system for college application after the college entrance examination. The system is based on the Spring Could microservice architecture, Vue+ElementUI is used to implement dynamic rendering and visual configuration of forms. Echarts is employed to display interactive and personalized data pictures. Mybatis Plus technology is applied to connect to the MySQL database for data analysis. The strategy of subsection empowerment is adopted to the collage and speciality recommendation. Different functions are provided according to the identity of different users. Ordinary users can carry out college query, speciality query, college big data query, simulated college application and other functions, and can obtain individualization college recommendations according to their rank and subjects selection information. Administrators can add, modify, delete and other functions of consultants.

Keywords:microservice; college application; front-end and back-end separation; intelligent decision-making assistance system;

0引言

自山东省高考制度于2017年参与试点改革后,对于山东省的学生、家长、老师而言,新高考制度下的志愿填报相对改革前有非常大的变化,较大的影响就是缺乏志愿填报的参考数据以及对改革后高考志愿填报录取信息的整合。尽管山东省每年都会装订并提供《山东省普通高校招生填报志愿指南》供考生参考,但是这种方式所能提供的帮助毕竟有限,而且纸质版使用起来相对繁琐,查找时很容易遗漏重要信息。于是出现了很多高考志愿辅助填报系统。

然而,当前市面上所存在的高考志愿填报系统大多数价格昂贵且功能比较单一,另外由于出现的比较早,在技术上可能不太利于后续功能的扩展延伸。为此,我们广泛收集山东省改革后的高考相关数据信息,通过分析并整合各类数据,从中挖掘蕴含的有利于志愿决策的信息,为用户的志愿填报提供更多的数据支持以及决策帮助。为了开发出更多适应用户需求的功能,吸引更多的用户使用本系统,系统结合CSS和HTML5的新特性,采用微服务架构,利用微服务架构的优点与特性,以服务为粒度进行扩展,相对于单体应用只能以整体进行扩展,微服务架构可以更好的在吸收用户建议后,更加迅速扩展功能服务,为用户提供更多的优质功能,满足系统功能的频繁更新以及对系统资源的动态分配等需求。

1系统总体设计

1.1微服务架构设计思想

传统的单体架构开发模式面临着模块过度耦合,系统资源、技术难以扩展等问题,随着系统的迭代,单体的架构开发模式已经不适用于系统功能多样化和用户功能需求扩展的环境。微服务是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,每个服务都围绕着具体业务进行构建,运行在其独立的进程中,并且能够被独立的部署到生产环境、类生产环境等,服务与服务之间采用轻量级的通信机制互相协作(通常是基于HTTP协议的RESTful API)[1],微服务架构具有可扩展性更高,可重用性更强的特点。虽然单体架构的开发速度比微服务架构要快,但是随着日新月异的社会发展,用户的功能需求日益增长,不能只满足为用户提供当下的功能,还需要考虑到后期的扩展。以微服务架构设计的系统以服务为粒度,相对于单体架构而言粒度小的多,架构演进不需要大规模重构,只需要重构个别的微服务[2]。

为了方便后续系统的不断扩展和功能的不断完善,我们基于微服务设计高考志愿智能辅助决策系统。先面向全体用户开放所有功能,收集用户在使用过程中的建议以及合理的功能需求,根据用户的需求快速开发扩展更多的功能并交付更新的版本。

1.2高考志愿智能辅助决策系统总体设计

高考志愿智能辅助决策系统总体架构如图1所示,包括七个功能模块:

查询功能:负责用户查找自己感兴趣的高校或专业志愿等;

模拟志愿填报:负责为用户提供录取概率以及协助用户选择志愿等;

高考资讯:负责为用户提供必要的高考资讯以及高考大数据;

高考咨询师:负责为用户提供以及推荐合适的高考志愿填报咨询师;

个人中心:用户管理自己的信息,管理自己的院校、专业收藏列表,调整自己的志愿列表;

用户登录:为用户提供账号登录功能;

用户注册:根据用户所提供的信息为用户生成专属的账号。

2系统详细设计

2.1志愿智能推荐算法

新高考形势下的志愿填报相对于改革前发生了很大的变化,改革前的推荐算法可能已经不太适用于改革后的高考志愿填报[3],由于改革后不再区分文科理科,位次排名也是将所有考生一起排名,因此,我们利用爬虫以及人工整理数据得到了改革后的录取计划以及录取线等信息,尽管我们的数据相对于改革前的数据相对而言比较少,但是我们认为只有当下的数据,才能更精准的匹配当下的志愿填报,为了进一步保证数据准确性,而非某年的偶然性,我们会将用户位次与改革后该志愿的往年录取位次按照我们的策略进行对比,如果有其中一年不满足策略,则不推荐该志愿。根据新高考志愿填报的特点,在了解往年成绩的正态分布图后,在志愿填报上根据用户不同的位次,采取不同的权重进行志愿推荐,提出分段赋权志愿推荐策略,具体描述如下(bit代表考生位次)。

另外,所有推荐给用户的志愿,都会根据用户选科情况进行数据处理,只推荐用户符合选科要求的志愿,不符合要求的志愿则不会推荐给用户,进一步减少用户获取信息的复杂度。

2.2前端页面设计

团队在设计页面布局时,秉持方便用户的原则,坚持“简约”的观念,让用户在登录账号后便可以在主页清晰地看到所有的功能按钮,避免用户找不到所需功能而产生焦灼的心情。

前端采用HTML5新特性,使用<header></header>、<section></section>等语义标签;使用增强型表单的某些新特性;通过基于JavaScript的开源可视化图表库ECharts间接使用了HTML5的SVG绘图;使用HTML5中的Web Storage存储用户的相关信息。

(1)系统主页

在导航栏设置了首页、查院校、查专业、咨询师、模拟填报志愿、我的志愿表、我的收藏表等七个功能按键,通过点击按键,用户可以切换到自己想要使用的功能。主页也设置了一些资讯信息,以及设置了高考大数据功能按钮。

(2)注册页面

用户输入用户名、手机号、真实姓名、密码、邮箱,通过邮箱验证注册账号。

(3)登录页面

登录方式有三种:邮箱+密码+图片验证码,邮箱+邮箱验证码,手机号+短信验证码,用户可以从中选择任意一种方式登录系统,登录成功之后,将服务器返回的token通过HTML5的Web Storage技术中的localStorage进行存储

(4)找回密码页面

为防止用户忘记密码,可以通过邮箱验证找回密码。

(6)查院校页面

用户可以通过多种条件进行院校检索,对于用户感兴趣的院校,可以点击进入详情页面了解更多院校信息,还可以收藏感兴趣的院校,并且有院校对比功能,用户点击对比按钮可以对比两个院校的排名和层次等信息。

(7)查专业页面

用户可以通过多种条件进行专业检索,展示出专业大类,再根据专业分类找到自己想寻找的专业,对于用户感兴趣的专业,可以点击进入详情页面了解更多专业信息。

(8)咨询师页面

用户如果寻求专业的报考指导,可以在该页面找到专业的高考志愿填报指导老师,然后通过联系老师获取专业性的报考指导建议。

(9)模拟填报志愿页面

用户可以根据条件查看所有院校所设专业的录取概率,点击全部志愿按钮或冲、稳、保按钮,可以查看由系统根据相应算法为使用者提供的志愿,点击填入志愿表可将志愿添加到志愿列表,也可以使用本页的一键智能填报功能,通过计算给出适当的志愿推荐。

(10)我的志愿表页面

用户可以在本页面统一管理所有的已经选择的志愿,点击换位按钮,可更换志愿位置,删除按钮,可以删除该志愿,上移(下移)按钮可以将志愿上移(下移)一个位置。

(11)我的收藏表页面

用户在本页面,可以查看所有收藏的院校以及专业,点击后可以进入到详情页面。点击取消收藏按钮可以取消收藏该院校(专业)。

(12)用户信息页面

用户在该页面可以管理自己的用户信息。

(13)高考大数据页面

我们根据所挖掘的信息进行整合分析,设计了院校分布大数据等高考大数据供用户参考,通过ECharts将以上数据进行展示,更加清晰明了地让用户可以看到各个城市都有哪些大学,以及毕业去向落实率、升学率、出国率靠前的院校展示给用户,希望给用户提供一定的决策帮助。

其他表还有一分一段表、院校指数表、院校详细信息表、院校介绍表、院校专业往年分数位次表、双一流专业表、用户志愿表、国家特色专业表、院校风光表、专业类别门类表、专业介绍表、用户院校收藏表、用户专业收藏表、文章信息表、咨询师信息表等。

4功能实现

4.1服务拆分以及数据库分库

根据微服务架构的设计理念,我们在分析功能需求后对整个系统做了服务拆分,根据功能的需求,我们共拆分成了五个微服务,分别是:service_volunteer、service_user、service_oss、service_information、api_gateway,五个微服务分别对应了不同的功能划分,其中api_gateway微服务专门负责网关服务。为了更好的表现出微服务的独立性,我们采用分库策略进行了数据库分库设计,根据目前的功能需求设计了nemt_wish_list、nemt_user、nemt_information三个数据库分别供service_volunteer、service_user、service_information三个需要关系型数据库的微服务使用,后续可以根据功能的扩展构建新的微服务以及数据库。

4.2技术架构

基于当下流行的微服务架构,采用前后端分离开发的模式开发本项目,系统分为高考志愿智能辅助决策系统前台、高考志愿智能辅助决策系统咨询师后台、Nginx、统一接口网关SpringCould GateWay、服务注册和配置、微服务模块、数据库层、中间件、系统部署,具体技术架构如图3所示。

高考志愿智能辅助决策系统前台、高考志愿智能辅助决策系统咨询师后台使用vue.js框架、Element-ui组件库以及Apache ECharts进行前台页面构建以及信息展示。

利用Nginx做反向代理服务器转发客户机请求,同时也为负载均衡提供基础。为了避免端口暴露,采用SpringCould GateWay进行统一网关管理。由于微服务相互之间的存在功能调用的需求,因此采用Spring Cloud声明式服务调用组件Open Fegin处理微服务之间的功能调用。为了对各个微服务更好的管理,采用Nacos进行服务注册以及服务配置。对于如何快速对项目运行期间出现的问题进行定位处理,采用logback对日志进行收集。数据库使用了关系型数据库MySQL来存储本系统所需要的数据,利用非关系型数据库Redis来为用户注册、登录验证存储验证码或token进行验证。项目部署则是采用可移植性更强、隔离性更好、安全性更高的docker部署方式。

5结语

   系统结合微服务架构和HTML5的新特性进行设计,实现了高考志愿智能辅助决策,采用分段赋权的志愿推荐策略,根据位次以及选科等信息,进行个性化志愿推荐,实现了院校查询、专业查询、高校大数据查询、模拟志愿填报等功能。致力于帮助山东省新高考改革下的学生、家长、老师等用户进行志愿填报工作,希望在新高考志愿填报制度下帮助学生凭借自己的分数选择到最适合自己的志愿,避免因信息掌握不够全面导致错失理想院校甚至滑档。由于新高考改革实行时间还比较短,目前的系统对于部分信息的掌握还不够精准全面,我们将进一步完善推荐策略,改进系统,推出更切合实际的优质功能。

参考文献:

[1]杨天一. 论微服务架构的优势与劣势[C]//.第三十六届中国(天津)2022’IT、网络、信息技术、电子、仪器仪表创新学术会议论文集.[出版者不详],2022:294-297.

[2]辛园园,钮俊,谢志军,张开乐,毛昕怡.微服务体系结构实现框架综述[J].计算机工程与应用,2018,54(19):10-17.

[3]赵洁,吕富蕾.新高考精准化志愿填报策略——以山东省2020年夏季高考为例[J].济宁学院学报,2020,41(05):88-94.

[4] 阿里巴巴Java开发手册[EB/OL]. 阿里巴巴Java开发手册_w3cschool.

指导老师评语:该组同学基于微服务架构,结合CSS和HTML5的新特性设计开发了高考志愿智能辅助决策系统,并采用分段赋权的志愿推荐策略进行个性化志愿推荐,全面实现了高考大数据爬取、下载、整理、分析,数据库的设计与优化,查询,志愿智能填报,咨询师后台管理等项目要求的各项功能,应用技术成果具有创造性、先进性和成熟程度,开发的系统特色明显,效果良好,具有很大实用和推广价值。希望进一步优化志愿推荐策略,实现更加精细、精准的个性化推荐。

核心算法代码分享如下:

修改/etc/profile之后让其生效
source /etc/profile
(3)安装Git 2.21.0
yum -y install git

(4)Docker 20.x
安装些必要的工具
yum install -y yum-utils device-mapper-persistent-data lvm2
添加软件源信息
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新并安装Docker-CE
yum makecache fast
yum -y install docker-ce
开启Docker服务
service docker start

(5)Mysql 8
docker pull mysql #我这里直接装最新版了
然后创建一个外部目录,用来映射数据之类的
mkdir /opt/mysql
运行mysql
docker run -p 3306:3306 --name mysql -v /opt/mysql/conf:/etc/mysql/conf.d -v /opt/mysql/logs:/logs -v /opt/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=****** -d mysql

  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

B站计算机毕业设计大厂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值