基于Java+Springmvc+vue+nodo.js实现大学生科技创新创业项目管理系统
博主介绍:✌公司项目主程、全网粉丝10W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,CSDN博客之星TOP100、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业设计✌
公众号:java李杨勇 简历模板、学习资料、面试题库等都给你💪
🍅文末获取源码联系🍅
🍅CSDN官方推荐10W+JAVA技术人文章发布打卡社区🍅
前言介绍:
随着社会的不断快速发展,计算机的影响是全面且深入的。人们生活水平的不断提高,日常生活中人们对大学生创新创业项目管理方面的要求也在不断的提高、需要大学生创新创业项目管理的人数更是不断增加,使得大学生创新创业项目管理的开发成为必需而且紧迫的事情。大学生创新创业项目管理主要是借助计算机,通过对大学生创新创业项目管理所需的信息管理,增加用户选择,同时也方便对广大用户信息的及时查询、修改以及对用户信息的及时了解。大学生创新创业项目管理对一些用户带来了更多的便利, 该系统通过和Mysql数据库管理系统软件协作来满足用户的需求保存数据等。
系统设计:
开发工具:idea/eclipse、navicat for mysql
开发语言:java、jdk1.8、mysql5
硬件环境:Win10系统、Google等。
主要技术:springmvc、mybatis、vue 、java等
主要功能设计:首页、个人中心、学生管理、指导老师管理、评审专家管理、项目任务书管理、中期检查报告管理、项目申请书管理、结项报告管理、项目进展日志管理、项目立项申请管理、项目评价管理
功能截图:
用户登录注册:管理员通过输入用户名、密码、选择角色等信息,然后点击登录就能登录到系统
管理员登录进入系统之后,就可以对所有的信息进行查看,可以查看到首页、个人中心、学生管理、指导老师管理、评审专家管理、项目任务书管理、中期检查报告管理、项目申请书管理、结项报告管理、项目进展日志管理、项目立项申请管理、项目评价管理等,并且还可以对其进行相应的操作管理
学生信息管理:在学生管理页面中可以对索引、姓名、学号、性别、手机、邮箱、联系地址、身份证、照片等信息进行详情,修改或删除等操作
指导老师管理:指导老师管理,在指导老师管理页面中可以对索引、工号、指导老师姓名、性别、手机、邮箱、身份证、图片等信息进行详情,修改或删除等操作
评审专家管理:在评审专家管理页面中可以对索引、账号、姓名、性别、身份证、手机、邮箱、照片等信息进行详情,修改或删除等操作
项目任务书管理:在项目申请书管理页面中可以对索引、项目名称、学号、姓名、手机、邮箱、指导老师姓名、工号、文件、联系地址、申请时间、审核回复、审核状态等信息进行详情,修改或删除等操作
中期检查报告管理:在中期检查报告管理页面中可以对索引、项目名称、项目类别、学号、文件、编号、项目负责人、指导老师姓名、工号、提交时间、审核回复、审核状态等信息进行详情,修改或删除等操作
项目申请书管理:在项目进展日志管理页面中可以对索引、项目名称、文件、指导老师姓名、工号、学号、姓名、提交时间等信息进行详情,修改或删除等操作
结项报告管理:在结项报告管理页面中可以对索引、项目名称、项目类型、学号、文件、编号、项目负责人、指导老师姓名、工号、提交时间、审核回复、审核状态等信息进行详情,修改或删除等操作
项目进展日志管理:在项目进展日志管理页面中可以对索引、项目名称、文件、指导老师姓名、工号、学号、姓名、提交时间等信息进行详情,修改或删除等操作
项目评价管理:在项目进展日志管理页面中可以对索引、项目名称、文件、指导老师姓名、工号、学号、姓名、提交时间等信息进行详情,修改或删除等操作
数据设计:
项目申请书管理实体属性图,如图所示:
结项报告管理实体属性图如图所示:
部分数据库表设计:
将数据库概念设计的E-R图转换为关系数据库。在关系数据库中,数据关系由数据表组成,但是表的结构表现在表的字段上。
表:项目任务书
字段名称 |
类型 |
长度 |
字段说明 |
id |
bigint |
|
主键 |
addtime |
timestamp |
|
创建时间 |
xiangmumingcheng |
varchar2 |
200 |
项目名称 |
wenjian |
varchar2 |
200 |
文件 |
lixiangdengji |
varchar2 |
200 |
立项等级 |
xiangmubianhao |
varchar2 |
200 |
项目编号 |
xiangmufuzeren |
varchar2 |
200 |
项目负责人 |
xuehao |
varchar2 |
200 |
学号 |
suozaixueyuan |
varchar2 |
200 |
所在学院 |
zhidaolaoshixingming |
varchar2 |
200 |
指导老师姓名 |
gonghao |
varchar2 |
200 |
工号 |
kaishishijian |
datetime |
|
开始时间 |
jieshushijian |
datetime |
|
结束时间 |
shuoming |
longtext |
4294967295 |
说明 |
表:项目评价
字段名称 |
类型 |
长度 |
字段说明 |
id |
bigint |
|
主键 |
addtime |
timestamp |
|
创建时间 |
xiangmumingcheng |
varchar2 |
200 |
项目名称 |
xiangmuleixing |
varchar2 |
200 |
项目类型 |
xiangmufuzeren |
varchar2 |
200 |
项目负责人 |
xuehao |
varchar2 |
200 |
学号 |
zhidaolaoshixingming |
varchar2 |
200 |
指导老师姓名 |
gonghao |
varchar2 |
200 |
工号 |
pingjia |
varchar2 |
200 |
评价 |
shuoming |
longtext |
4294967295 |
说明 |
表:项目立项申请
字段名称 |
类型 |
长度 |
字段说明 |
id |
bigint |
|
主键 |
addtime |
timestamp |
|
创建时间 |
xiangmumingcheng |
varchar2 |
200 |
项目名称 |
shangchuanwenjian |
varchar2 |
200 |
上传文件 |
gonghao |
varchar2 |
200 |
工号 |
zhidaolaoshixingming |
varchar2 |
200 |
指导老师姓名 |
xuehao |
varchar2 |
200 |
学号 |
xingming |
varchar2 |
200 |
姓名 |
shenqingshijian |
datetime |
|
申请时间 |
shuoming |
longtext |
4294967295 |
说明 |
sfsh |
varchar2 |
200 |
是否审核 |
shhf |
longtext |
4294967295 |
审核回复 |
表:项目进展日志
字段名称 |
类型 |
长度 |
字段说明 |
id |
bigint |
|
主键 |
addtime |
timestamp |
|
创建时间 |
xiangmumingcheng |
varchar2 |
200 |
项目名称 |
wenjian |
varchar2 |
200 |
文件 |
xuehao |
varchar2 |
200 |
学号 |
xingming |
varchar2 |
200 |
姓名 |
zhidaolaoshixingming |
varchar2 |
200 |
指导老师姓名 |
gonghao |
varchar2 |
200 |
工号 |
tijiaoshijian |
datetime |
|
提交时间 |
shuoming |
longtext |
4294967295 |
说明 |
表4-5:用户表
字段名称 |
类型 |
长度 |
字段说明 |
id |
bigint |
|
主键 |
username |
varchar2 |
100 |
用户名 |
password |
varchar2 |
100 |
密码 |
role |
varchar2 |
100 |
角色 |
addtime |
timestamp |
|
新增时间 |
表:中期检查报告
字段名称 |
类型 |
长度 |
字段说明 |
id |
bigint |
|
主键 |
addtime |
timestamp |
|
创建时间 |
xiangmumingcheng |
varchar2 |
200 |
项目名称 |
xiangmuleibie |
varchar2 |
200 |
项目类别 |
wenjian |
varchar2 |
200 |
文件 |
bianhao |
varchar2 |
200 |
编号 |
xiangmufuzeren |
varchar2 |
200 |
项目负责人 |
xuehao |
varchar2 |
200 |
学号 |
zhidaolaoshixingming |
varchar2 |
200 |
指导老师姓名 |
gonghao |
varchar2 |
200 |
工号 |
tijiaoshijian |
datetime |
|
提交时间 |
shuoming |
longtext |
4294967295 |
说明 |
sfsh |
varchar2 |
200 |
是否审核 |
shhf |
longtext |
4294967295 |
审核回复 |
代码实现:
/ * 项目立项申请 * 后端接口 * @author * @email * @date 2022-04-10 16:31:21 */@RestController@RequestMapping("/xiangmulixiangshenqing")public class XiangmulixiangshenqingController { @Autowired private XiangmulixiangshenqingService xiangmulixiangshenqingService; / * 后端列表 */ @RequestMapping("/page") public R page(@RequestParam Map params,XiangmulixiangshenqingEntity xiangmulixiangshenqing, HttpServletRequest request){String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("zhidaolaoshi")) {xiangmulixiangshenqing.setGonghao((String)request.getSession().getAttribute("username"));}if(tableName.equals("xuesheng")) {xiangmulixiangshenqing.setXuehao((String)request.getSession().getAttribute("username"));} EntityWrapper ew = new EntityWrapper();PageUtils page = xiangmulixiangshenqingService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, xiangmulixiangshenqing), params), params)); return R.ok().put("data", page); } / * 前端列表 */ @RequestMapping("/list") public R list(@RequestParam Map params,XiangmulixiangshenqingEntity xiangmulixiangshenqing, HttpServletRequest request){ EntityWrapper ew = new EntityWrapper();PageUtils page = xiangmulixiangshenqingService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, xiangmulixiangshenqing), params), params)); return R.ok().put("data", page); }/ * 列表 */ @RequestMapping("/lists") public R list( XiangmulixiangshenqingEntity xiangmulixiangshenqing){EntityWrapper ew = new EntityWrapper(); ew.allEq(MPUtil.allEQMapPre( xiangmulixiangshenqing, "xiangmulixiangshenqing")); return R.ok().put("data", xiangmulixiangshenqingService.selectListView(ew)); } / * 查询 */ @RequestMapping("/query") public R query(XiangmulixiangshenqingEntity xiangmulixiangshenqing){ EntityWrapper ew = new EntityWrapper(); ew.allEq(MPUtil.allEQMapPre( xiangmulixiangshenqing, "xiangmulixiangshenqing")); XiangmulixiangshenqingView xiangmulixiangshenqingView = xiangmulixiangshenqingService.selectView(ew);return R.ok("查询项目立项申请成功").put("data", xiangmulixiangshenqingView); } / * 后端详情 */ @RequestMapping("/info/{id}") public R info(@PathVariable("id") Long id){ XiangmulixiangshenqingEntity xiangmulixiangshenqing = xiangmulixiangshenqingService.selectById(id); return R.ok().put("data", xiangmulixiangshenqing); } / * 前端详情 */ @RequestMapping("/detail/{id}") public R detail(@PathVariable("id") Long id){ XiangmulixiangshenqingEntity xiangmulixiangshenqing = xiangmulixiangshenqingService.selectById(id); return R.ok().put("data", xiangmulixiangshenqing); } / * 后端保存 */ @RequestMapping("/save") public R save(@RequestBody XiangmulixiangshenqingEntity xiangmulixiangshenqing, HttpServletRequest request){ xiangmulixiangshenqing.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue()); //ValidatorUtils.validateEntity(xiangmulixiangshenqing); xiangmulixiangshenqingService.insert(xiangmulixiangshenqing); return R.ok(); } / * 前端保存 */ @RequestMapping("/add") public R add(@RequestBody XiangmulixiangshenqingEntity xiangmulixiangshenqing, HttpServletRequest request){ xiangmulixiangshenqing.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue()); //ValidatorUtils.validateEntity(xiangmulixiangshenqing); xiangmulixiangshenqingService.insert(xiangmulixiangshenqing); return R.ok(); } / * 修改 */ @RequestMapping("/update") public R update(@RequestBody XiangmulixiangshenqingEntity xiangmulixiangshenqing, HttpServletRequest request){ //ValidatorUtils.validateEntity(xiangmulixiangshenqing); xiangmulixiangshenqingService.updateById(xiangmulixiangshenqing);//全部更新 return R.ok(); } / * 删除 */ @RequestMapping("/delete") public R delete(@RequestBody Long[] ids){ xiangmulixiangshenqingService.deleteBatchIds(Arrays.asList(ids)); return R.ok(); } / * 提醒接口 */@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map map) {map.put("column", columnName);map.put("type", type);if(type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if(map.get("remindstart")!=null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if(map.get("remindend")!=null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper wrapper = new EntityWrapper();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("zhidaolaoshi")) {wrapper.eq("gonghao", (String)request.getSession().getAttribute("username"));}if(tableName.equals("xuesheng")) {wrapper.eq("xuehao", (String)request.getSession().getAttribute("username"));}int count = xiangmulixiangshenqingService.selectCount(wrapper);return R.ok().put("count", count);}}
<!-- 避免IE执行AJAX时,返回JSON出现下载文件 FastJson 这里顺序不能反,一定先写text/html,不然ie下出现下载提示 text/html;charset=UTF-8 application/json;charset=UTF-8 避免循环引用 DisableCircularReferenceDetect 是否输出值为null的字段 WriteMapNullValue 数值字段如果为null,输出为0,而非null WriteNullNumberAsZero 字符类型字段如果为null,输出为"",而非null WriteNullStringAsEmpty List字段如果为null,输出为[],而非null WriteNullListAsEmpty Boolean字段如果为null,输出为false,而非null WriteNullBooleanAsFalse -->
论文参考:
摘 要
1 系统概述
1.1 概述
1.2课题意义
1.3主要内容
2 系统开发环境
2.1 SSM框架
2.2 JAVA简介
2.3访问数据库实现方法
2.4系统对MySQL数据库的两种连接方式
2.5 MySql数据库
3 需求分析
3.1技术可行性:技术背景
3.2经济可行性
3.3操作可行性
3.4系统设计规则
3.5系统流程和逻辑
4系统概要设计
4.1 概述
4.2 系统结构
4.3. 数据库设计
4.3.1 数据库实体
4.3.2 数据库设计表
5 系统详细设计
5.1管理员功能模块
5.2学生功能模块
5.3指导老师功能模块
5.4评审专家功能模块
6 系统测试
6.1系统测试的目的
6.2系统测试方法
6.3 测试结果
结论
致 谢
参考文献
源码获取:
大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻微信公众号获取联系方式👇🏻👇🏻👇🏻
打卡 文章 更新 261/ 365天
精彩专栏推荐订阅:在下方专栏👇🏻👇🏻👇🏻👇🏻
Java项目精品实战案例《100套》
web前端期末大作业网页实战《100套》