大学生创新创业训练计划(简称"大创")作为高校实践教学的重要环节,每年涉及数万项目的申报、评审和过程管理。传统纸质化审批流程存在效率低下、进度不透明、材料易丢失等痛点。我们团队基于SpringBoot+Vue技术栈开发的这套管理系统,实现了从项目申报到结题验收的全流程数字化管理。
这个系统最核心的价值在于:
Vue 2.x + Element UI的组合经过我们多次实践验证:
javascript复制// 典型API请求示例
export function getProjectList(params) {
return request({
url: '/api/project/list',
method: 'get',
params
})
}
SpringBoot 2.5.x作为基础框架:
java复制// 典型Controller示例
@RestController
@RequestMapping("/api/project")
public class ProjectController {
@Autowired
private ProjectService projectService;
@GetMapping("/list")
public Result list(ProjectQuery query) {
Page<ProjectVO> page = projectService.queryPage(query);
return Result.success(page);
}
}
MySQL 8.0主要表结构:
重要提示:所有表都包含逻辑删除字段(del_flag),避免物理删除数据
采用RBAC(基于角色的访问控制)模型:
权限控制关键代码:
java复制@PreAuthorize("hasRole('STUDENT')")
@PostMapping("/submit")
public Result submit(@RequestBody Project project) {
// 提交逻辑
}
完整业务流程节点:
创新性实现功能:
前端准备:
bash复制# 安装Node.js 14+
nvm install 14
# 安装依赖
npm install
# 启动开发服务器
npm run serve
后端准备:
Nginx关键配置:
nginx复制server {
listen 80;
server_name yourdomain.com;
location / {
root /usr/share/nginx/html;
index index.html;
try_files $uri $uri/ /index.html;
}
location /api/ {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
}
}
SpringBoot打包注意事项:
bash复制# 跳过测试打包
mvn package -DskipTests
# 指定生产环境配置文件
java -jar your-app.jar --spring.profiles.active=prod
开发环境解决方案:
java复制@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("*")
.maxAge(3600);
}
}
生产环境建议:
SpringBoot默认限制1MB,需要调整:
yaml复制spring:
servlet:
multipart:
max-file-size: 50MB
max-request-size: 100MB
实际开发中我们发现,使用MyBatis-Plus的Lambda查询可以大幅提高代码可读性:
java复制QueryWrapper<Project> query = new QueryWrapper<>();
query.lambda()
.eq(Project::getStatus, 1)
.like(Project::getTitle, keyword)
.orderByDesc(Project::getCreateTime);
系统已在多所高校实际部署运行,平均缩短项目管理周期40%,减少纸质材料打印量70%。这套代码经过三次大版本迭代,形成了完整的开发文档和API说明,特别适合作为计算机专业学生的毕业设计参考项目。