Skip to content

Repository files navigation

医学考研院校推荐与尽调助手

一个基于 Next.js App Router 的可部署 MVP Web App,面向准备报考医学相关研究生的用户,帮助其完成院校筛选、培养模式调研和可解释推荐输出。

1. 项目结构树

.
├── AGENTS.md
├── README.md
├── app
│   ├── admin
│   │   └── page.tsx
│   ├── api
│   │   ├── admin
│   │   │   ├── import
│   │   │   │   └── route.ts
│   │   │   └── weights
│   │   │       └── route.ts
│   │   └── recommendations
│   │       └── route.ts
│   ├── intake
│   │   └── page.tsx
│   ├── results
│   │   └── page.tsx
│   ├── schools
│   │   └── [slug]
│   │       └── page.tsx
│   ├── globals.css
│   ├── layout.tsx
│   └── page.tsx
├── components
│   ├── admin
│   │   └── admin-console.tsx
│   ├── home
│   │   └── feature-grid.tsx
│   ├── intake
│   │   └── intake-wizard.tsx
│   ├── layout
│   │   └── site-shell.tsx
│   ├── results
│   │   ├── comparison-table.tsx
│   │   └── result-card.tsx
│   └── ui
│       ├── badge.tsx
│       └── section-card.tsx
├── database
│   └── schema.sql
├── lib
│   ├── data
│   │   ├── mock-data.ts
│   │   ├── repository.ts
│   │   └── runtime-store.ts
│   ├── recommendation
│   │   └── engine.ts
│   ├── types.ts
│   └── utils.ts
├── next.config.ts
├── package.json
├── postcss.config.js
├── tailwind.config.ts
└── tsconfig.json

2. 数据库 Schema 设计

Schema 位于 database/schema.sql

核心表:

  • users / sessions:为后续登录、收藏、报告历史留接口
  • schools:学校、城市、附属医院、培养模式、平台资源等基础画像
  • programs:具体专业方向、学硕/专硕、招生人数、历史分数范围
  • faculty_groups:科研组 / 团队画像、课题与培养风格
  • mentors:导师画像,不做攻击性评价
  • student_feedback:学生反馈摘要,保留反馈类型、来源与可信度
  • sources:所有信息来源抽象层,标记来源类别与可信度
  • recommendation_runs:推荐输入 / 输出快照
  • weight_rules:推荐权重配置

设计原则:

  • 避免把所有信息堆进单表,便于后续扩展采集器、管理后台和 RAG。
  • 与 PostgreSQL / Supabase 兼容,数组类字段暂用 jsonb 存储。
  • 保留 sources 表以支持“事实 / 判断 / 个体反馈”分层展示。

3. 页面路由设计

  • /:首页,包含产品简介、功能说明、免责声明和入口
  • /intake:多步骤顾问式问卷
  • /results:冲 / 稳 / 保结果页,支持解释、比较和复制摘要
  • /schools/[slug]:院校详情页,展示画像、科研组、反馈摘要和来源列表
  • /admin:管理后台雏形,支持 JSON 导入和权重调节
  • /api/recommendations:服务端推荐接口
  • /api/admin/import:后台导入接口
  • /api/admin/weights:后台权重查询 / 更新接口

4. 核心推荐逻辑

推荐引擎位于 lib/recommendation/engine.ts

4.1 规则流程

  1. 硬条件筛选
    • 分数不低于历史最低线太多
    • 专业方向至少达到基础匹配
    • 地区偏好不过度冲突
  2. 软条件打分
    • 分数匹配度
    • 科室 / 专业方向匹配度
    • 地区偏好匹配度
    • 培养模式匹配度
    • 科研压力匹配度
    • 导师 / 科研组质量
    • 学生反馈质量
    • 平台资源与附属医院实力
    • 录取风险
    • 长期发展适配度
  3. 结果输出
    • 综合匹配度
    • 冲 / 稳 / 保分类
    • 推荐原因
    • 为什么不是更高优先级
    • 主要风险
    • 信息充分度
    • 录取概率估算与解释依据

4.2 概率估算逻辑

录取概率不是写死值,而是由以下因素共同修正:

  • 用户分数在历史区间中的位置
  • 招生人数
  • 综合匹配度
  • 信息完整度

页面明确显示:

录取概率为估算结果,仅供参考,不构成保证。

5. Mock 数据与 MVP 范围

当前版本使用 lib/data/mock-data.ts 中的种子数据。

  • 内置 10 所示例院校
  • 覆盖不同城市、区域、平台层级、培养模式和强度
  • 提供基础 program / faculty group / mentor / feedback / source 数据

这保证应用开箱即跑,不依赖外部 API 或实时爬虫。

6. 本地运行

6.1 安装依赖

npm install

6.2 启动开发环境

npm run dev

打开 http://localhost:3000

6.3 生产构建

npm run build
npm run start

7. 部署说明

7.1 Vercel

  1. 导入仓库
  2. Framework 选择 Next.js
  3. 配置环境变量
  4. 首版无需真实数据库也可直接部署

7.2 Supabase / PostgreSQL

当需要持久化时:

  1. 在 PostgreSQL / Supabase 中执行 database/schema.sql
  2. DATABASE_URL 写入环境变量
  3. lib/data/repository.ts 逐步替换成数据库查询实现
  4. 将后台导入和权重配置改为持久化存储

8. 后续扩展建议

建议按以下顺序扩展:

  1. 接入 PostgreSQL 持久化 schools / programs / sources / recommendation_runs
  2. 增加后台的数据审核与来源管理工作流
  3. 增加官方信息采集任务,但必须遵守 robots / 平台规则
  4. 增加论文 / 基金信息导入
  5. 增加用户登录、收藏与 PDF 报告导出
  6. 增加 RAG 和大模型摘要层,但只作为辅助,不替代规则引擎和来源分层

9. 注意事项

  • 当前后台导入和权重更新是“运行时内存版”,重启实例后会恢复默认值。
  • 当前示例链接为占位链接,接入真实来源前不要把演示数据当成正式结论。
  • 本仓库故意避免实现任何违法违规抓取逻辑。

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages