东南大学 PALM 实验室研究生招生管理系统 (PALM AMS - Pattern Learning and Mining Lab Admissions Management System) 是一个现代化的教育机构招生管理平台。系统采用前后端分离架构设计,为 PALM 实验室提供完整的招生流程管理、学生信息管理、面试评分、数据统计分析等功能,致力于提升招生工作效率,优化管理流程。
- 🎯 多类型申请通道:支持推免、考研、博士、直博四种申请类型
- 📝 智能表单系统:动态字段配置,支持论文、奖项等复杂信息录入
- 👥 学生信息管理:完整的申请者档案管理和状态跟踪
- 🎯 面试评分系统:标准化面试流程和评分机制
- 📊 数据分析仪表盘:实时统计图表,支持多维度数据分析
- 🔍 高级筛选功能:多条件组合筛选,快速定位目标申请者
- ⚙️ 灵活配置管理:院校、专业、人员、奖项等基础数据可配置
- 📱 响应式设计:完美适配桌面端和移动端
- 🔐 权限管理系统:基于角色的访问控制
- 📄 文件管理:支持简历、证明材料等文件上传和管理
- 框架:Vue 3.5.10 + TypeScript
- 构建工具:Vite 5.4.14
- UI 组件库:Element Plus 2.9.3
- 样式框架:Tailwind CSS 3.4.17 + Sass
- 状态管理:Pinia 2.3.0
- 路由管理:Vue Router 4.4.5
- HTTP 客户端:Axios 1.7.7
- 图表库:ECharts 5.5.1
- 工具库:UUID、JSZip、XLSX、SortableJS
- 框架:Django 4.2.0 + Django REST Framework
- 数据库:MySQL 8.0+
- 数据库驱动:PyMySQL 1.1.1
- 跨域处理:django-cors-headers
- 身份验证:PyJWT
- 数据处理:Pandas、openpyxl、xlwt
- 图像处理:Pillow
- 代码规范:ESLint + Commitlint + Husky
- 部署:Nginx + uWSGI
- 版本控制:Git
- Node.js: >= 16.0.0
- Python: >= 3.8
- MySQL: >= 8.0
- pnpm: >= 7.0 (推荐) 或 npm
git clone https://github.com/JacksonHe04/palm-ams.git
cd palm-amscd front-vite
pnpm install
# 或使用 npm installcd back-django
pip install -r requirements.txt- 创建 MySQL 数据库:
CREATE DATABASE palm_apply CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;- 修改
./back-django/ApplicationSystem/settings.py中的数据库配置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'palm_apply',
'HOST': '127.0.0.1',
'PORT': 3306,
'USER': 'your_username',
'PASSWORD': 'your_password',
}
}- 执行数据库迁移:
cd back-django
python manage.py makemigrations
python manage.py migrate启动后端服务:
cd back-django
python manage.py runserver 8000启动前端服务:
cd front-vite
pnpm dev
# 或 npm run dev访问 http://localhost:5173 即可使用系统。
cd front-vite
pnpm build系统支持 uWSGI + Nginx 部署方式,详细配置请参考 ./nginx/ 目录下的配置文件。
palm-ams/
├── front-vite/ # 前端项目 (Vue 3 + TypeScript)
│ ├── src/
│ │ ├── apis/ # API 接口定义
│ │ ├── components/ # 公共组件
│ │ ├── router/ # 路由配置
│ │ ├── stores/ # Pinia 状态管理
│ │ ├── styles/ # 样式文件
│ │ ├── types/ # TypeScript 类型定义
│ │ ├── utils/ # 工具函数
│ │ └── views/ # 页面组件
│ │ ├── front-desk/ # 前台页面
│ │ ├── management/ # 后台管理页面
│ │ └── login/ # 登录页面
│ ├── public/ # 静态资源
│ ├── package.json
│ └── vite.config.js # Vite 配置
├── back-django/ # 后端项目 (Django)
│ ├── Api/ # API 应用模块
│ │ ├── apply/ # 申请管理
│ │ ├── auth/ # 身份验证
│ │ ├── students/ # 学生管理
│ │ ├── interview/ # 面试管理
│ │ ├── setting/ # 系统设置
│ │ ├── field/ # 字段配置
│ │ ├── files/ # 文件管理
│ │ └── ...
│ ├── ApplicationSystem/ # Django 项目配置
│ ├── database/ # 数据库模型
│ ├── static/ # 静态文件
│ ├── templates/ # 模板文件
│ ├── manage.py
│ └── requirements.txt # Python 依赖
├── nginx/ # Nginx 配置文件
├── docs/ # 项目文档
│ ├── help/ # 帮助文档
│ ├── images/ # 截图
│ └── release/ # 版本发布说明
├── .github/ # GitHub 配置
├── package.json # 项目根配置
├── commitlint.config.js # 提交规范配置
└── README.md # 项目说明
- 推免申请通道 (
/apply/recommend-master):推荐免试研究生申请 - 考研申请通道 (
/apply/exam-master):统考硕士研究生申请 - 博士申请通道 (
/apply/phd):博士研究生申请 - 直博申请通道 (
/apply/direct-phd):本科直接攻读博士申请
- 实验室介绍 (
/introduction):PALM 实验室详细介绍 - 成员展示 (
/members):实验室成员信息 - 学术成果 (
/academics):研究成果和论文发表 - 新闻动态 (
/news):实验室最新动态
- 学生表格 (
/manage/students):申请者信息管理和查看 - 数据库管理 (
/manage/database):数据库操作和维护 - 录取结果 (
/manage/result):录取状态管理 - 录取失败 (
/manage/failed):未录取申请者管理
- 面试打分 (
/manage/interview):面试评分和记录 - 百分比统计 (
/manage/percent):各项指标百分比分析 - 数据分析 (
/manage/analysis):多维度数据统计和图表展示
- 规则设置 (
/manage/setting):录取规则和条件配置 - 字段配置 (
/manage/field):表单字段动态配置 - 账号管理 (
/manage/account):用户权限和账号管理
// 提交申请
POST /api/apply/
// 获取学生列表
GET /api/students/// 院校配置
GET /api/settings/universities/
PUT /api/settings/universities/
// 专业配置
GET /api/settings/majors/
PUT /api/settings/majors/
// 人员配置
GET /api/settings/personnel/
PUT /api/settings/personnel/
// 奖项配置
GET /api/settings/awards/
PUT /api/settings/awards/
// 年份设置
GET /api/settings/year/
PUT /api/settings/year/class Apply(models.Model):
# 基本信息
id = models.CharField(primary_key=True, max_length=255)
name = models.CharField(max_length=255)
applicationType = models.CharField(max_length=255) # 申请类型
year = models.IntegerField() # 申请年份
# 教育背景
university = models.CharField(max_length=255) # 本科院校
major = models.CharField(max_length=255) # 专业
rank = models.IntegerField() # 排名
percentage = models.CharField(max_length=255) # 百分比
# 联系方式
phone = models.CharField(max_length=255)
email = models.CharField(max_length=255)
# 志愿选择
firstChoice = models.CharField(max_length=255)
secondChoice = models.CharField(max_length=255)
thirdChoice = models.CharField(max_length=255)
# 论文信息 (支持最多3篇)
paper1_paperName = models.CharField(max_length=255)
paper1_ccfLevel = models.CharField(max_length=255)
paper1_isFirst = models.BooleanField()
# 奖项信息 (支持最多3项)
award1_awardName = models.CharField(max_length=255)
award1_levelRanking = models.CharField(max_length=255)
award1_isLeader = models.BooleanField()
# 状态字段
status = models.CharField(max_length=255)
isFilterCondition = models.CharField(max_length=255)项目使用 ESLint + Commitlint + Husky 确保代码质量:
# 代码检查
pnpm lint-vue # Vue 文件检查
pnpm lint-ts # TypeScript 文件检查
# 提交规范
git commit -m "feat: 添加新功能"
git commit -m "fix: 修复bug"
git commit -m "docs: 更新文档"feat: 新功能fix: 修复 bugdocs: 文档更新style: 代码格式调整refactor: 重构perf: 性能优化test: 测试相关chore: 构建过程或辅助工具变动
-
前端开发:
- 使用 Vite 热重载开发服务器
- 支持 TypeScript 类型检查
- 集成 Tailwind CSS 实时编译
-
后端开发:
- Django 开发服务器自动重载
- 支持 Django REST Framework 调试
- 集成 CORS 跨域支持
# 前端
cd front-vite && pnpm dev
# 后端
cd back-django && python manage.py runserver# 前端构建
cd front-vite && pnpm build
# 后端部署 (使用 uWSGI + Nginx)
uwsgi --ini palm.ini- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'feat: Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
- JacksonHe04 - 项目创建者和主要维护者
如有问题或建议,请通过以下方式联系:
- 邮箱: JacksonHe04c@gmail.com
- GitHub: @JacksonHe04
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
⭐ 如果这个项目对你有帮助,请给它一个 Star!
Made with ❤️ by JacksonHe04










