No description
  • Python 55%
  • Vue 40%
  • JavaScript 3.2%
  • Batchfile 1.5%
  • CSS 0.2%
  • Other 0.1%
Find a file
2026-09-02 15:30:48 +08:00
backend upload 2026-09-02 15:01:40 +08:00
frontend upload 2026-09-02 15:01:40 +08:00
sql upload 2026-09-02 15:01:40 +08:00
.gitignore upload 2026-09-02 15:01:40 +08:00
_deploy_log.txt upload 2026-09-02 15:01:40 +08:00
_start_log.txt upload 2026-09-02 15:01:40 +08:00
README.md upload 2026-09-02 15:01:40 +08:00
一键启动.bat fix bat crlf 2026-09-02 15:30:48 +08:00
一键部署.bat fix bat crlf 2026-09-02 15:30:48 +08:00
部署运行说明.txt 1 2026-09-02 15:06:14 +08:00

大学生学业规划与备考资源综合服务平台

面向大学生的「证书 / 竞赛 / 备考 / 公开课」信息分类展示平台,帮助在校生系统了解大学期间该考的证书、值得参加的比赛、如何备考,以及可以选修的优质公开课。数据已内置,开箱即用。

技术栈Vue 3 + Vite + Element Plus + ECharts前端 FastAPI + SQLAlchemy后端 MySQL 8数据库 Playwright爬虫


一、项目简介

系统围绕四大核心对象做分类展示与可视化统计,数据总量 1.4 万+ 条:

  1. 证书21 条):英语类、计算机类、教师资格类、财会类、语言翻译类、通用/其他六大类,含考试时间、报名时间、难度、含金量、报名费、适合专业等(权威公开资料整理)。
  2. 比赛5064 条)爬取自赛氪网saikr.com全国大学生竞赛平台覆盖数学建模、程序设计、外语、创业等 40+ 细分类,含报名时间、比赛时间、级别、主办方、含金量等。
  3. 备考指南12 条):考研、考公、英语考试、证书备考、竞赛备赛五大类,含时间线、备考资料、备考技巧等。
  4. 公开课9430 门):爬取自中国大学 MOOCicourse163.org覆盖计算机、理学、工学、外语、经管、医学等 16 个学科,含开课学校、讲师、选课人数、课程链接等。

二、功能特性

前台门户(用户端)

  • 首页:数据总览统计卡片 + 分类/级别分布图表(含课程分类、开课学校 Top20
  • 证书库:分类筛选、关键词搜索、卡片展示、详情弹窗
  • 比赛库:分类 + 级别双筛选、搜索、详情弹窗
  • 备考指南:类型筛选、搜索、详情弹窗(时间线/资料/技巧)
  • 公开课:分类 + 学校双筛选、搜索、封面卡片、点击直达课程页

后台管理(管理员端,默认账号 admin / admin123

  • 证书管理增删改查CRUD、搜索分页
  • 比赛管理增删改查CRUD、搜索分页
  • 备考指南管理增删改查CRUD、搜索分页
  • 课程管理增删改查CRUD、搜索分页

数据爬虫Playwright + requests

  • crawler/saikr_crawler.py:爬取赛氪全部大学生竞赛(约 5000 条)
  • crawler/mooc_crawler.py:爬取中国大学 MOOC 各学科公开课(约 9000 门)

三、目录结构

大学证书比赛备考系统/
├── backend/                  # 后端FastAPI
│   ├── app/
│   │   ├── main.py           # 应用入口,注册路由
│   │   ├── config.py         # 配置(读取 .env
│   │   ├── database.py       # SQLAlchemy 引擎与 Session
│   │   ├── models.py         # ORM 模型certificate / competition / prep_guide / course / admin_user
│   │   ├── schemas.py        # Pydantic 数据模型
│   │   ├── security.py       # 密码哈希 + JWT
│   │   ├── seed_data.py      # 种子脚本:建库 + 建表 + 写数据 + 管理员
│   │   ├── analysis/
│   │   │   └── service.py    # 统计聚合服务
│   │   └── routers/
│   │       ├── auth.py       # 登录认证
│   │       ├── certificates.py
│   │       ├── competitions.py
│   │       ├── prep_guides.py
│   │       ├── courses.py
│   │       └── analysis.py   # 统计接口
│   ├── crawler/              # 数据爬虫
│   │   ├── saikr_crawler.py  # 赛氪竞赛爬虫
│   │   └── mooc_crawler.py   # 中国大学 MOOC 课程爬虫
│   ├── requirements.txt
│   └── .env                  # 数据库配置
├── frontend/                 # 前端Vue 3 + Vite
│   └── src/
│       ├── api/index.js      # axios 接口封装
│       ├── router/index.js   # 路由配置
│       ├── layouts/          # 前台/后台布局
│       ├── components/       # StatCard / ChartCard
│       └── views/            # 页面视图
└── sql/
    └── init.sql              # 数据库初始化脚本

四、环境要求

  • Python 3.10+
  • Node.js 18+
  • MySQL 8.x

五、快速开始

1. 初始化数据库(建库 + 建表 + 导入数据)

cd backend
python -m app.seed_data

该命令会自动创建 student_guide_db 数据库、建表,写入 21 条证书、17 条比赛、12 条备考指南,以及默认管理员账号。海量比赛与课程数据再通过爬虫导入(见下方)。

2. 导入爬虫数据(可选,需联网)

cd backend
# 爬取赛氪大学生竞赛(约 5000 条)
python crawler/saikr_crawler.py
# 爬取中国大学 MOOC 公开课(约 9000 门)
python crawler/mooc_crawler.py

爬虫依赖 Playwright 与 requests请先 pip install playwright requests 并执行 playwright install chromium

3. 配置后端

backend/.env.example 复制为 backend/.env,按需修改数据库连接(默认 root 空密码)。

4. 启动后端

cd backend
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
uvicorn app.main:app --host 127.0.0.1 --port 8001

5. 启动前端

cd frontend
npm install --registry=https://registry.npmmirror.com --legacy-peer-deps
npm run dev

六、主要接口

方法 路径 说明
GET /api/certificates 证书列表(分页 + 分类 + 搜索)
GET /api/certificates/filters 证书分类
GET/POST/PUT/DELETE /api/certificates/{id} 证书详情 / 新增 / 更新 / 删除
GET /api/competitions 比赛列表(分页 + 分类 + 级别 + 搜索)
GET/POST/PUT/DELETE /api/competitions/{id} 比赛详情 / 新增 / 更新 / 删除
GET /api/prep-guides 备考指南列表
GET/POST/PUT/DELETE /api/prep-guides/{id} 备考指南详情 / 增删改
GET /api/courses 课程列表(分页 + 分类 + 学校 + 搜索)
GET /api/courses/filters 课程分类 / 学校
GET/POST/PUT/DELETE /api/courses/{id} 课程详情 / 增删改
GET /api/analysis/overview 数据总览
GET /api/analysis/certificate-category 证书类别分布
GET /api/analysis/certificate-difficulty 证书难度分布
GET /api/analysis/competition-level 比赛级别分布
GET /api/analysis/competition-category 比赛类别分布
GET /api/analysis/prep-type 备考类型分布
GET /api/analysis/course-category 课程分类分布
GET /api/analysis/course-school-top 开课学校 Top20
POST /api/auth/login 登录签发 JWT

七、免责声明

本项目中的证书、比赛信息为通用公开资料整理,具体报名时间、费用等以各官方机构最新通知为准,仅供学习参考。