1. 项目背景与需求分析
大学生创新创业训练计划(简称"大创")作为高校培养创新型人才的重要载体,近年来在各高校广泛开展。然而在实际管理过程中,传统的人工操作模式暴露出诸多痛点:
- 信息孤岛问题:项目申报表、评审意见、中期报告等文档分散在不同导师和部门手中,缺乏统一管理平台
- 流程不透明:学生无法实时了解项目评审进度,导师难以及时掌握项目进展
- 协作效率低:团队成员间的任务分配、进度同步依赖线下沟通,容易产生信息滞后
- 数据统计困难:学院层面难以快速获取各类项目的汇总数据,影响管理决策
针对这些痛点,我们设计开发了这套基于SpringBoot+Vue的大创管理系统。系统采用前后端分离架构,后端使用SpringBoot提供RESTful API接口,前端采用Vue.js构建响应式界面,数据库选用MySQL 8.0。系统主要服务于三类用户角色:
- 学生用户:可在线申报项目、提交材料、查看评审结果、管理项目任务
- 导师用户:可评审项目、指导团队成员、监控项目进度
- 管理员:负责系统基础数据维护、项目流程管理、数据统计分析
提示:系统设计时特别考虑了高校实际使用场景,如支持学期制项目周期、学院层级权限控制等特性,确保贴合高校管理需求。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构设计
2.1 整体架构设计
系统采用经典的三层架构设计,整体技术栈如下:
前端技术栈:
- Vue 3.x:采用Composition API编写组件
- Element Plus:UI组件库
- Axios:HTTP请求库
- Vue Router:前端路由管理
- Pinia:状态管理库
后端技术栈:
- Spring Boot 2.7:基础框架
- Spring Security:认证授权
- MyBatis-Plus:ORM框架
- Redis:缓存管理
- Hutool:工具类库
数据库:
- MySQL 8.0:主数据库
- Redis 7.0:缓存数据库
架构示意图如下(以文字描述替代图示):
code复制客户端 → Nginx → Vue前端 → SpringBoot后端 → MySQL
↘ Redis ↗
2.2 关键技术选型解析
为什么选择Vue 3+Element Plus?
- 组件化开发模式适合管理系统这类中后台应用
- Element Plus提供了丰富的现成组件(如表单、表格、弹窗等),可快速搭建管理界面
- Vue 3的Composition API使代码组织更灵活,逻辑复用更方便
为什么选择SpringBoot+MyBatis-Plus?
- SpringBoot的自动配置特性简化了项目搭建过程
- MyBatis-Plus在MyBatis基础上增强了CRUD操作,内置分页插件等实用功能
- 丰富的Spring生态圈提供了完善的解决方案(如Security做权限控制)
数据库设计考量:
- MySQL作为成熟的关系型数据库,适合存储结构化数据
- 使用InnoDB引擎确保事务完整性
- 建立适当的索引优化查询性能(如项目状态、用户角色等高频查询字段)
3. 核心功能实现
3.1 用户权限系统实现
系统采用RBAC(基于角色的访问控制)模型,核心实现逻辑如下:
后端实现:
java复制// 角色枚举定义
public enum RoleEnum {
STUDENT(1, "学生"),
TEACHER(2, "导师"),
ADMIN(3, "管理员");
// 省略构造方法和getter
}
// Spring Security配置
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/teacher/**").hasAnyRole("TEACHER", "ADMIN")
.antMatchers("/student/**").hasAn
