考研平台
  • Python 41.8%
  • Vue 29%
  • Java 28.8%
  • JavaScript 0.2%
  • HTML 0.2%
Find a file
2026-09-03 15:38:44 +08:00
bigdata refactor: consolidate to single README, remove dead code & orphaned files 2026-09-03 14:43:11 +08:00
data-collection refactor: consolidate to single README, remove dead code & orphaned files 2026-09-03 14:43:11 +08:00
database feat: 计算机专业考研择校平台 - 第1周完成 2026-08-26 15:12:58 +08:00
services feat: 持久化迁移到本地MySQL,解决重启数据丢失 2026-09-03 15:38:44 +08:00
web refactor: consolidate to single README, remove dead code & orphaned files 2026-09-03 14:43:11 +08:00
.gitignore feat: 计算机专业考研择校平台 - 第1周完成 2026-08-26 15:12:58 +08:00
README.md feat: 持久化迁移到本地MySQL,解决重启数据丢失 2026-09-03 15:38:44 +08:00

计算机专业考研择校平台

面向计算机相关专业考研学生的院校检索、择校推荐与招生数据分析平台。整合公开招生数据,基于学生画像与 AHP 层次分析法输出个性化的冲刺/求稳/保底推荐。

一、系统功能

学生端

  • 学生画像:本科专业、目标地区、成绩预估、目标专业方向、风险偏好(冲刺/求稳/保底)。
  • 权重配置:分数匹配度、竞争激烈度、院校层次、地域偏好、专业匹配度五个权重滑块。
  • 院校检索:按省份、专业代码、院校层次筛选,支持分页浏览。展开院校可见院校简介(官网/邮箱/电话/建校年份/隶属/985-211
  • 择校推荐:基于全系统 494 所高校候选集,按目标省份 + 专业方向过滤AHP 加权评分,输出推荐理由与冲刺/求稳/保底分层。
  • 对比清单:最多 5 项院校专业对比localStorage 持久化)。
  • 收藏管理:收藏感兴趣的院校专业。
  • 经验分享:每个专业方向下可发布/浏览备考经验评论。
  • 数据可视化:招生与热度分析图表。

管理员端

  • 数据导入CSV含院校详情与专业数据
  • 院校专业数据管理、用户管理、系统日志、运营看板。

二、推荐算法AHP模型版本 ahp-v1.1

  • 方法层次分析法AHPSaaty 1-9 标度),一致性比率 CR < 0.1。
  • 准则权重:分数匹配度 41.7% > 竞争激烈度 26.3% > 院校层次 16% > 地域偏好 9.7% > 专业匹配度 6.2%。
  • 权重融合final = 0.6 × AHP + 0.4 × 用户滑块权重
  • 风险调整CONSERVATIVE [1.3,0.9,0.7,1.0,1.1]、BALANCED [1.0×5]、AGGRESSIVE [0.7,1.1,1.4,1.0,0.8]
  • 切分阈值≥75 保底≥55 求稳,其余冲刺。
  • 结果过滤:优先返回「目标省份 + 专业方向」均匹配的结果;无结果时放宽到仅专业匹配;再放宽到全量按分排序取前 30。

三、技术架构

层级 技术 职责
学生端/管理端 Vue 3 + Vite 检索、画像、对比、推荐、数据维护
业务服务 Spring Boot + MyBatis-Plus 账号、院校专业 CRUD、数据导入
算法服务 Flask + pandas/numpy AHP 推荐评分与排序
存储 MySQL本地 gradschool 库) 业务主数据持久化

大数据组件Hadoop/Hive 离线数仓、Flink 实时热度)为论文规划模块,见 bigdata/

四、目录结构

grad-school/
├── README.md                # 项目说明(唯一文档)
├── database/                # 数据库脚本schema.sql / seed.sql
├── services/
│   ├── business-service/    # Spring Boot 业务服务(端口 8080
│   └── recommendation/      # Flask AHP 推荐服务(端口 5001
├── web/                     # Vue 3 前端(端口 5173
├── data-collection/         # 数据采集脚本与最终数据
│   └── runs/                # 中间产物 CSV
├── bigdata/                 # 大数据模块
│   ├── hive/                # Hive 建表与 SQL
│   └── flink/               # Flink 实时作业
└── docs/                    # (已并入根 README待清理

五、数据

  • 候选院校494 所,来自 data-collection/system_universities.json
  • 院校详情447 条官网、邮箱、电话、简介、985/211、隶属等来自 data-collection/university_details.csv
  • 专业方向:覆盖 0812计算机科学与技术、0835软件工程、0839网络空间安全、0854电子信息等。
  • 历年数据:分年度复试线、招生计划、报名人数等。
  • 国家线(工学)2020=264、2021=263、2022=273、2023=273、2024=273、2025=275、2026=275。

数据规则:以研招网与高校研究生院公开信息为准;报名人数未公开时不得估算;不同年份分年度展示;推荐结果仅作择校辅助。

六、快速启动

1) 启动 Flask 推荐服务(端口 5001

cd services/recommendation
py -3 -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
python app.py

健康检查:GET http://127.0.0.1:5001/health{"modelVersion":"ahp-v1.1","service":"recommendation-service","status":"ok"}

2) 启动 Spring Boot 业务服务(端口 8080

前置:本地 MySQLlocalhost:3306)已启动,账号 root / 密码 123456(可在 application.yml 修改),连接串内含 createDatabaseIfNotExist=true,首次启动自动创建 gradschool 库并建表。

cd services/business-service
mvn clean package -DskipTests
java -jar target/business-service-0.1.0.jar

数据初始化:首次连接空库时,DataInitializer 自动灌入默认账号与管理类数;院校详情数据通过管理端「数据导入」上传 data-collection/university_details.csv447 条)持久化到 MySQL重启不丢失。

3) 启动前端(端口 5173

cd web
npm install
npm run dev

浏览器访问:http://127.0.0.1:5173

七、默认账号

角色 账号 密码
管理员 admin 123456
普通用户 student 123456
测试用户 test 123456

八、API 说明

  • 分页参数使用 pageSize(最大 100@Max(100) 校验)。
  • 院校分组接口:GET /api/v1/universities?page=0&pageSize=100,返回 UniversityGroup{universityName, province, level, majors[], universityInfo}
  • 推荐接口:POST /api/v1/recommendations(由前端代理到 Flask入参 {profile, programs, weights}

数据导入格式

  • 专业数据18 个逗号分隔字段;字段内包含逗号时替换为中文逗号
  • 院校详情20 列 CSV。

九、学校与学生信息

  • 题目:计算机专业考研择校平台
  • 学生:马新宇(学号 202400507117
  • 专业:数据科学与大数据技术
  • 指导教师:刘泽宇

更新时间2026年9月