1. 项目背景与需求分析
高校教师教研管理工作长期面临数据分散、填报繁琐的痛点。每个学期教师需要反复填写教学任务、科研成果、项目申报等重复性信息,院系管理人员则要手工整理Excel表格进行统计。这种传统工作模式存在三个突出问题:
- 数据孤岛现象严重:教学、科研、项目数据分散在不同部门的Excel文件中,无法形成教师完整的职业发展画像
- 统计效率低下:年度考核时管理人员需要人工汇总几十个表格,耗时且易出错
- 历史追溯困难:纸质档案和分散的电子文档难以支持教师职称评审时的历史数据查询
我们开发的这套系统正是为了解决这些实际问题。系统设计之初,我们调研了6所高校的教务处和科研处,收集到教师和管理人员最核心的三个需求:
- 一站式填报:教师在一个平台完成所有教研信息的录入与维护
- 智能统计:自动生成院系/个人维度的教学科研数据报表
- 全周期管理:完整记录教师从入职到退休的所有职业发展数据
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构设计
2.1 整体架构设计
系统采用前后端分离架构,这是经过多方对比后的最优选择。相比传统单体架构,分离架构具有三大优势:
- 开发效率高:前后端可以并行开发,通过API文档约定接口规范
- 部署灵活:前端静态资源可部署在CDN,后端服务可独立扩展
- 技术栈自由:前后端可分别选择最适合的技术方案
具体技术选型如下表所示:
| 层级 | 技术栈 | 选型理由 |
|---|---|---|
| 前端 | Vue 2.x + Element UI | 组件丰富、社区成熟,适合快速开发管理系统 |
| 后端 | Spring Boot 2.7 + MyBatis-Plus | Java生态完善,MyBatis-Plus简化CRUD开发 |
| 安全 | JWT + Spring Security | 无状态认证适合RESTful API,权限控制灵活 |
| 数据库 | MySQL 8.0 | 事务支持完善,高校场景数据量适中 |
| 部署 | Nginx + Docker | 轻量级容器化部署,降低运维成本 |
2.2 数据库设计要点
数据库设计遵循三个原则:
- 适度冗余:在关联表中存储必要的冗余字段(如教师姓名),避免频繁联表查询
- 状态追踪:所有重要数据表都包含记录状态字段(如approval_status)
- 审计留痕:关键表都有created_at和last_modified时间戳
以教研成果表为例,几个关键设计决策:
sql复制CREATE TABLE `research_achievement` (
`achievement_id` bigint NOT NULL AUTO_INCREMENT,
`contributor_id` varchar(20) NOT NULL COMMENT '关联教师表',
`accomplishment_type` varchar(30) NOT NULL COMMENT '枚举值:论文/专利/项目',
`publish_platform` varchar(100) DEFAULT NULL,
`project_title` varchar(200) NOT NULL,
`completion_date` date DEFAULT NULL,
`approval_status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0-待审 1-通过',
