基于springboot的科研项目管理系统【源码论文】

  博主介绍:👉全网个人号和企业号粉丝40W+,每年辅导几千名大学生较好的完成毕业设计,专注计算机软件领域的项目研发,不断的进行新技术的项目实战👈
⭐️热门专栏推荐订阅⭐️ 订阅收藏起来,防止下次找不到

🔎千套JAVA实战项目持续更新中~

🔎上百套小程序实战项目持续更新中~

🔎上百套Python实战项目持续更新中
有需求的各位可以先收藏起来,还有大家在毕设选题,开题报告有疑惑的都可以找我,给你参考意见,需要开题模板的可以私信留言告诉我

❤️文末获取源码联系❤️        ⚠️一定要先收藏⚠️

4  系统的设计

4.1 系统总功能模块设计

科研管理系统分三大部分,即管理员管理、科研队伍管理和用户管理。系统按照用户的实际需求开发而来,贴近生活。从管理员出拿到分配好的账号密码可以进入系统,使用相关的系统应用。管理员总体负责整体系统的运行维护,统筹协调。

系统整体模块设计:系统分为管理员、科研队伍和用户三大用户角色,系统管理员有最大的权限,整体功能展示如图4-1所示。

图4-1 系统整体功能图

4.2 系统数据库设计

4.2.1 数据库系统概要设计

从设计到制作研发一个系统,需要用到的技术很多,对于开发程序语言、数据库和框架布局都有严格的要求[5]。该系统数据存放使用MySql的数据库,该数据库轻便快速,日常使使用系统十分稳定,更容易维护运行。

4.2.2 E-R模型结构设计

E-R图由实体与有关实体关联相结合构成的图,利用E-R图对清楚地表达出系统内的实体之间的关联。在系统中对一些主要的几个关键实体如下图。

4.3数据表设计

系统创建数据库和表之间关联,期间花费了不少时间,尽力把表格完善,更好的呈现出来,让表更加明了,更加清晰。系统在MySql的可视化软件Navicat premium创建的数据表,简洁明了的设计让数据库的创建操作更加快捷,数据表的详细情况如下表所示。

表4-1科研成果

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

chengguomingcheng

varchar

200

成果名称

duiwumingcheng

varchar

200

队伍名称

chengguoleixing

varchar

200

成果类型

chengguofujian

longtext

4294967295

成果附件

fengmian

longtext

4294967295

封面

shangchuanriqi

date

上传日期

chengguoneirong

longtext

4294967295

成果内容

duiwuzhanghao

varchar

200

队伍账号

zuzhangxingming

varchar

200

组长姓名

clicktime

datetime

最近点击时间

clicknum

int

点击次数

0

表4-2:加入队伍

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

duiwuzhanghao

varchar

200

队伍账号

duiwumingcheng

varchar

200

队伍名称

zuzhangxingming

varchar

200

组长姓名

shenqingziliao

longtext

4294967295

申请资料

shenqingshijian

date

申请时间

shenqingyuanyin

longtext

4294967295

申请原因

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

userid

bigint

用户id

表4-3:公告信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

biaoti

varchar

200

标题

jianjie

longtext

4294967295

简介

fabushijian

date

发布时间

neirong

longtext

4294967295

内容

faburen

varchar

200

发布人

fengmian

longtext

4294967295

封面

clicktime

datetime

最近点击时间

clicknum

int

点击次数

0

userid

bigint

用户id

表4-4:信息交流

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

帖子标题

content

longtext

4294967295

帖子内容

parentid

bigint

父节点id

userid

bigint

用户id

username

varchar

200

用户名

avatarurl

longtext

4294967295

头像

isdone

varchar

200

状态

表4-5:队伍信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

duiwumingcheng

varchar

200

队伍名称

chengliriqi

date

成立日期

duiwuzhanghao

varchar

200

队伍账号

zuzhangxingming

varchar

200

组长姓名

fengmian

longtext

4294967295

封面

lianxidianhua

varchar

200

联系电话

huoderongyu

longtext

4294967295

获得荣誉

duiwujieshao

longtext

4294967295

队伍介绍

clicktime

datetime

最近点击时间

clicknum

int

点击次数

0

表4-6:队伍申请

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

shenqingbianhao

varchar

200

申请编号

biaoti

varchar

200

标题

duiwumingcheng

varchar

200

队伍名称

shenqingshu

longtext

4294967295

申请书

shenqingyuanyin

longtext

4294967295

申请原因

shenqingriqi

date

申请日期

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

shouji

varchar

200

手机

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-7:资源文件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

ziyuanmingcheng

varchar

200

资源名称

ziyuanleixing

varchar

200

资源类型

ziyuanwenjian

longtext

4294967295

资源文件

fengmian

longtext

4294967295

封面

fabushijian

date

发布时间

faburen

varchar

200

发布人

ziyuanxiangqing

longtext

4294967295

资源详情

thumbsupnum

int

0

crazilynum

int

0

clicktime

datetime

最近点击时间

clicknum

int

点击次数

0

userid

bigint

用户id

表4-8:项目成果申报

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

shenbaomingcheng

varchar

200

申报名称

duiwumingcheng

varchar

200

队伍名称

leixing

varchar

200

类型

shenbaoziliao

longtext

4294967295

申报资料

shangchuanriqi

date

上传日期

shenqingneirong

longtext

4294967295

申请内容

duiwuzhanghao

varchar

200

队伍账号

zuzhangxingming

varchar

200

组长姓名

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-9:资源文件评论表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

refid

bigint

关联表id

userid

bigint

用户id

avatarurl

longtext

4294967295

头像

nickname

varchar

200

用户名

content

longtext

4294967295

评论内容

reply

longtext

4294967295

回复内容

表4-10:用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

username

varchar

100

用户名

password

varchar

100

密码

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

表4-11:用户

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

zhanghao

varchar

200

账号

mima

varchar

200

密码

xingming

varchar

200

姓名

nianling

int

年龄

xingbie

varchar

200

性别

shouji

varchar

200

手机

touxiang

longtext

4294967295

头像

表4-12:科研成果评论表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

refid

bigint

关联表id

userid

bigint

用户id

avatarurl

longtext

4294967295

头像

nickname

varchar

200

用户名

content

longtext

4294967295

评论内容

reply

longtext

4294967295

回复内容

表4-13:token表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

userid

bigint

用户id

username

varchar

100

用户名

tablename

varchar

100

表名

role

varchar

100

角色

token

varchar

200

密码

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

expiratedtime

timestamp

过期时间

CURRENT_TIMESTAMP

表4-14:配置文件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

name

varchar

100

配置参数名称

value

varchar

100

配置参数值

表4-15:收藏表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

用户id

refid

bigint

商品id

tablename

varchar

200

表名

name

varchar

200

名称

picture

longtext

4294967295

图片

type

varchar

200

类型(1:收藏,21:赞,22:踩,31:竞拍参与,41:关注)

1

inteltype

varchar

200

推荐类型

remark

varchar

200

备注

表4-16:科研队伍

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

duiwuzhanghao

varchar

200

队伍账号

mima

varchar

200

密码

duiwumingcheng

varchar

200

队伍名称

zuzhangxingming

varchar

200

组长姓名

touxiang

longtext

4294967295

头像

xingbie

varchar

200

性别

nianling

int

年龄

lianxidianhua

varchar

200

联系电话

以上就是科研管理系统中重点使用的关键数据库表格,表格全部展示过于杂乱,选取重点表格展示。

5  系统的实现

5.1系统功能实现

当人们打开系统的网址后,首先看到的就是首页界面。在这里,人们能够看到系统的导航条,通过导航条导航进入各功能展示页面进行操作。系统首页界面如图5-1所示:

图5-1 系统首页界面

系统注册:在系统注册页面的输入栏中输入用户注册信息进行注册操作,系统注册页面如图5-2所示:

图5-2系统注册页面

队伍信息:在队伍信息页面的输入栏中输入队伍名称和组长姓名进行查询,可以查看到队伍详细信息,并根据需要进行加入申请、评论或收藏操作;队伍信息页面如图5-3所示:

图5-3队伍信息详细页面

代码实现

package com.controller;
 
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
 
import javax.servlet.http.HttpServletRequest;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
 
import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;
 
/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;
 
	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }
 
	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }
 
	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }
 
    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
 
    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }
 
    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
    	UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
    	if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
    		return R.error("用户名已存在。");
    	}
        userService.updateById(user);//全部更新
        return R.ok();
    }
 
    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

源码获取

大家点赞、收藏、关注 ,让更多需要的同学看到

不同开发语言专栏推荐订阅

🔎千套JAVA实战项目持续更新中~

🔎上百套小程序实战项目持续更新中~

🔎上百套Python实战项目持续更新中

👇下方有我的微信名片👇

  • 15
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringBoot项目中药实验管理系统是一个为中医药研究机构、实验室和高等教育机构设计的科研管理平台。它利用Spring Boot的快速开发特性,结合了实验项目管理、实验数据记录、药材库存管理、研究论文管理、合作交流以及数据分析等功能,旨在提供一个全面、高效且安全的中药实验数据管理工具,同时促进中药研究的规范化和科学化。 以下是该管理系统的主要功能: 1. **实验项目管理**:创建和管理实验项目,包括实验设计、流程规划和结果预期等。 2. **实验数据记录与存储**:提供电子化的数据录入界面,便于记录实验过程和结果,并确保数据的长期安全存储。 3. **药材及试剂库存管理**:跟踪药材、试剂等实验材料的使用情况,及时补充库存。 4. **文献管理和论文发表**:整理相关研究文献,记录研究成果,并协助论文撰写与发表流程。 5. **合作与交流平台**:搭建研究人员之间的交流论坛,分享实验心得和技术难点。 6. **移动设备优先设计**:采用响应式布局,使平台在不同大小的屏幕上均有良好展现,尤其适应移动设备。 7. **数据安全与隐私保护**:采取加密技术和访问控制策略,确保研究数据的安全性。 8. **友好的用户操作界面**:界面直观易用,降低用户学习成本,并提供多语言支持。 9. **易于维护和扩展**:前后端分离架构和模块化设计,方便未来根据中医药研究领域的发展进行系统升级或功能拓展。 10. **智能数据分析工具**:对实验数据进行统计分析,帮助科研人员发现潜在规律,提升研究质量。 通过这些功能,基于Spring Boot的中药实验管理系统不仅提高了中药实验的管理效率和数据处理能力,还加强了研究人员之间的协作与知识共享。系统的架构设计注重性能、可用性和可维护性,以支持高并发的用户访问和动态的数据更新。其模块化的设计也便于未来根据中医药研究的需求增加新功能或升级现有功能,确保软件的长期适用性和技术前瞻性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值