【开源】基于Vue和SpringBoot的创意工坊双创管理系统

在这里插入图片描述

项目编号: S 049 ,文末获取源码。 \color{red}{项目编号:S049,文末获取源码。} 项目编号:S049,文末获取源码。


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、功能模块
    • 2.1 管理员端
    • 2.2 Web 端
    • 2.3 移动端
  • 三、系统展示
  • 四、核心代码
    • 4.1 查询项目
    • 4.2 移动端新增团队
    • 4.3 查询讲座
    • 4.4 讲座收藏
    • 4.5 小程序登录
  • 五、免责说明


一、摘要

1.1 项目介绍

基于JAVA+Vue+SpringBoot+MySQL的创意工坊双创管理系统,包含了讲座管理、消息管理、项目管理、公共空间、房间预约、团队管理模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,创意工坊双创管理系统基于角色的访问控制,给工坊管理员、教师和学生角色使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

1.2 项目录屏

源码下载


二、功能模块

在这里插入图片描述

2.1 管理员端

按照软件工程规范描述管理员端需求,细化用例规约,合理设计数据库,实现管理员端以下功能。

  1. 注册登录注销功能:管理员需要登录管理员账号,可以对系统的所有事务进行管理;用户端即教师和学生通过工号或学号进行注册登录,其中web端的安全验证采用图片或者验证码形式,微信小程序端安全验证采用短信验证码形式。
  2. 权限设置功能:对不同的角色设置管理权限。
  3. 基本信息管理:教师、学生可查看、补充基本信息。
  4. 基础信息导入:学生信息的批量导入。
  5. 各模板后台管理:项目管理、团队管理、房间预约、讲座信息等模块相关数据存储、后台展示、审核。
  6. 大数据分析模块:分类统计各功能模块信息,并做可视化展示。
  7. 留言管理:学生可进行留言,或者投诉与建议。
  8. 查询功能:用户可对平台内容进行查询。
  9. 消息通知功能:管理员对不良、不合法言论的账户予以警告通知;对即将使用的公共空间、讲座信息进行提醒。

2.2 Web 端

按照软件工程规范描述web端需求,细化用例规约,合理设计数据库,实现web端以下功能。

  1. 主页(首页)功能:项目管理、团队管理、房间预约、讲座信息、留言区、个人中心等页面设计。
  2. 公共空间管理:学生可查看公共空间信息,并进行预约;教师管理员可以发布信息,查看信息,审核管理。
  3. 讲座双选管理:双创导师可以发布讲座信息;学生可以查看讲座活动信息,查看、申请参加活动;讲师可以查看学生选报情况。
  4. 项目管理:学生申报项目,包括创新、创业、竞赛类项目;由导师或者管理员进行审核;学生可以查看进度条,清晰地了解状态。
  5. 房间预约:学生可以预约场地使用;可以查看进度条,看审批状态。
  6. 团队管理:学生可以自由组建团队;也可以由导师指定团队。
  7. 留言功能:学生可以对相关信息进行留言、评论。
  8. 个人信息管理:学生可以查看个人信息,并可进行修改。
  9. 消息通知功能:管理员对不良、不合法言论的账户予以警告通知;对其预约过并即将使用场地、讲座等重要信息进行提醒。
  10. 用户点赞、收藏功能:对体验感友好的事件可以点赞、收藏。

2.3 移动端

按照软件工程规范描述移动端需求,细化用例规约,合理设计数据库,实现移动端以下功能。

  1. 主页(首页)功能:项目管理、团队管理、房间预约、讲座信息、留言区、个人中心等页面设计。
  2. 公共空间管理;学生可查看公共空间信息,并进行预约;教师管理员可以发布信息,查看信息,审核管理。
  3. 讲座双选管理:双创导师可以发布讲座信息:学生可以查看讲座活动信息,查看、申请参加活动﹔讲师可以查看学生选报情况。
  4. 项目管理:学生申报项目,包括创新、创业、竞赛类项目;由导师或者管理员进行审核:学生可以查看进度条,清晰地了解状态。
  5. 房间预约:学生可以预约场地使用;可以查看进度条,看审批状态。
  6. 团队管理:学生可以自由组建团队;也可以由导师指定团队。
  7. 留言功能:学生可以对相关信息进行留言、评论。
  8. 个人信息管理:学生可以查看个人信息,并可进行修改。
  9. 消息通知功能:管理员对不良、不合法言论的账户予以警告通知:对其预约过并即将使用场地、讲座等重要信息.进行提醒。
  10. 用户点赞、收藏功能,对体验感友好的事件可以点赞、收藏。

三、系统展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


四、核心代码

4.1 查询项目

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询项目")
public Result<IPage<Project>> getByPage(@ModelAttribute Project project ,@ModelAttribute PageVo page){
    QueryWrapper<Project> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(project.getTitle())) {
        qw.like("title",project.getTitle());
    }
    if(!ZwzNullUtils.isNull(project.getUserName())) {
        qw.like("user_name",project.getUserName());
    }
    IPage<Project> data = iProjectService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<Project>>().setData(data);
}

4.2 移动端新增团队

@RequestMapping(value = "/insertApp", method = RequestMethod.GET)
@ApiOperation(value = "新增团队")
public Result<Team> insertApp(@RequestParam String title,@RequestParam String content){
    Team team = new Team();
    team.setTitle(title);
    team.setContent(content);
    User currUser = securityUtil.getCurrUser();
    team.setUserId(currUser.getId());
    team.setUserName(currUser.getNickname());
    team.setTime(DateUtil.now());
    iTeamService.saveOrUpdate(team);
    return new ResultUtil<Team>().setData(team);
}

4.3 查询讲座

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询讲座")
public Result<IPage<Lecture>> getByPage(@ModelAttribute Lecture lecture ,@ModelAttribute PageVo page){
    QueryWrapper<Lecture> qw = new QueryWrapper<>();
    User currUser = securityUtil.getCurrUser();
    if(!ZwzNullUtils.isNull(lecture.getTitle())) {
        qw.like("title",lecture.getTitle());
    }
    if(!ZwzNullUtils.isNull(lecture.getContent())) {
        qw.like("content",lecture.getContent());
    }
    IPage<Lecture> data = iLectureService.page(PageUtil.initMpPage(page),qw);
    for (Lecture vo : data.getRecords()) {
        QueryWrapper<Good> goodQw = new QueryWrapper<>();
        goodQw.eq("lecture_id",vo.getId());
        goodQw.eq("user_id",currUser.getId());
        vo.setGood(iGoodService.count(goodQw));
        QueryWrapper<Collect> collectQw = new QueryWrapper<>();
        collectQw.eq("lecture_id",vo.getId());
        collectQw.eq("user_id",currUser.getId());
        vo.setCollect(iCollectService.count(collectQw));
    }
    return new ResultUtil<IPage<Lecture>>().setData(data);
}

4.4 讲座收藏

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "新增单条收藏")
public Result<Object> addOne(@RequestParam String id){
    Lecture l = iLectureService.getById(id);
    if(l == null) {
        return ResultUtil.error("讲座不存在");
    }
    User currUser = securityUtil.getCurrUser();
    QueryWrapper<Collect> collectQw = new QueryWrapper<>();
    collectQw.eq("lecture_id",id);
    collectQw.eq("user_id",currUser.getId());
    if(iCollectService.count(collectQw) > 0L) {
        iCollectService.remove(collectQw);
        return ResultUtil.success();
    }
    Collect collect = new Collect();
    collect.setLectureId(id);
    collect.setLectureName(l.getName());
    collect.setUserId(currUser.getId());
    collect.setUserName(currUser.getNickname());
    collect.setTime(DateUtil.now());
    iCollectService.saveOrUpdate(collect);
    return ResultUtil.success();
}

4.5 小程序登录

<swiper class="swiper-box" current="{{currentTab}}" duration="300" style="height:420px" bindchange="GetCurrentTab" data-current='6' >  
<swiper-item wx:for="{{tabCont}}" wx:key="item.index">  
  

  <view wx:if="{{item.index==0}}">
          <!-- 账号 -->
          <view class="section">
            <input placeholder="手机号" bindblur="logincode" />
          </view>

          <!-- 密码 -->
          <view class="section">
            <input placeholder="登入密码" bindblur="loginpassword" password="true"  />
          </view>
          
          <view class="section"></view>
          <!-- 提交按钮 -->
          <view wx:if='{{islogin==""}}' class='btn_box' >
          
            <button type="primary" bindtap="loginTo"  >登录</button>
          </view>

          <!-- 退出按钮 -->
          <view wx:else class='btn_box'>
            <button type="primary" bindtap="returnmain" >退出</button>
          </view>

  </view>
</swiper-item> 

五、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/175002.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Tomcat实现WebSocket即时通讯 Java实现WebSocket的两种方式

HTTP协议是“请求-响应”模式&#xff0c;浏览器必须先发请求给服务器&#xff0c;服务器才会响应该请求。即服务器不会主动发送数据给浏览器。 实时性要求高的应用&#xff0c;如在线游戏、股票实时报价和在线协同编辑等&#xff0c;浏览器需实时显示服务器的最新数据&#x…

这些仪表板常用的数据分析模型,你都见过吗?

本文由葡萄城技术团队发布。转载请注明出处&#xff1a;葡萄城官网&#xff0c;葡萄城为开发者提供专业的开发工具、解决方案和服务&#xff0c;赋能开发者。 ##前言 在数字化时代&#xff0c;数据已经成为了企业决策和管理的重要依据。而仪表板作为一种数据可视化工具&#x…

【Azure 架构师学习笔记】-Azure Storage Account(7)- 权限控制

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Storage Account】系列。 接上文 【Azure 架构师学习笔记】-Azure Storage Account&#xff08;6&#xff09;- File Layer 前言 存储帐户作为其中一个数据终端存储&#xff0c;对安全性的要求非常高&#xff0c;不管…

geemap学习笔记011:可视化遥感影像随时间的变化

前言 本节主要是介绍 .ts_inspector 工具&#xff0c;它是可以可视化遥感影像随时间的变化&#xff0c;与先前文章中介绍的.split_map差别在于&#xff0c;它可以加载时间序列数据。 1 导入库 !pip install geemap #安装geemap库 import ee import geemapgeemap.show_youtub…

了解一下公网IP和域名的区别与联系

​  公网IP和域名是互联网中两个重要的概念&#xff0c;它们在网络通信和网站访问中起着不同的作用。 我们来了解一下公网IP。公网IP是指在全球范围内唯一的IP地址&#xff0c;用于标识互联网上的设备。每个设备连接到互联网时都会被分配一个公网IP地址&#xff0c;这个地址可…

Python批量备份交换机配置+自动巡检

自动巡检功能考虑到不同设备回显有所不同&#xff0c;需要大量正则匹配&#xff0c;暂时没时间搞这些&#xff0c;所以索性将命令回显全部显示&#xff0c;没做进一步的回显提取。 以下是程序运行示例&#xff1a;#自动备份配置&#xff1a; 备份完成后&#xff0c;将配置保存于…

UVM项目笔记——通过寄存器模型实现AHB接口的寄存器读写(内含源码)

目录 1.前言 2.DRIVER实现 2.1 AHB二级流水时序 2.2 “队列错位法”实现driver 2.3 driver代码 2.4 仿真log与波形 2.5 多级流水拓展方法 1.前言 UVM driver在接口协议的实现中起着非常重要的作用&#xff0c;因为它一端处理基于类的事务级sequence&#xff0c;另一端处…

如何用 GPTs 帮你写科研项目申请书?

&#xff08;注&#xff1a;本文为小报童精选文章&#xff0c;已订阅小报童或加入知识星球「玉树芝兰」用户请勿重复付费&#xff09; 需求 学生们往往会觉得&#xff0c;写开题报告是个苦差事。但他们或许不知道&#xff0c;老师们写起科研项目申请书&#xff0c;压力远比他们…

Linux常用命令——bmodinfo命令

在线Linux命令查询工具 bmodinfo 显示给定模块的详细信息 补充说明 bmodinfo命令用于显示给定模块的详细信息。 语法 bmodinfo(选项)(参数)选项 -a&#xff1a;显示模块作者&#xff1b; -d&#xff1a;显示模块的描述信息&#xff1b; -l&#xff1a;显示模块的许可信息…

第三方模块远程注入到软件中引发软件异常的若干实战案例分享

目录 1、概述 2、老版本的输入法导致软件CPU频繁跳高&#xff08;导致软件出现卡顿&#xff09;的问题 3、QQ拼音输入法注入到安装包进程中&#xff0c;导致安装包主线程卡死问题 3.1、多线程死锁分析 3.2、进一步研究 4、安全软件注入到软件中&#xff0c;注入模块发生了…

Xilinx Zynq-7000系列FPGA任意尺寸图像缩放,提供两套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐FPGA图像处理方案FPGA图像缩放方案 3、设计思路详解HLS 图像缩放介绍 4、工程代码1&#xff1a;图像缩放 HDMI 输出PL 端 FPGA 逻辑设计PS 端 SDK 软件设计 5、工程代码2&#xff1a;图像缩放 LCD 输出PL 端 FPGA 逻辑设计PS 端 SDK 软件设…

uni-app - 日期 · 时间选择器

目录 1.基本介绍 2.案例介绍 ①注意事项&#xff1a; ②效果展示 3.代码展示 ①view部分 ②js部分 ③css样式 1.基本介绍 从底部弹起的滚动选择器。支持五种选择器&#xff0c;通过mode来区分&#xff0c;分别是普通选择器&#xff0c;多列选择器&#xff0c;时间选择器&a…

visionOS空间计算实战开发教程Day 4 初识ImmersiveSpace

细心的读者会发现在在​​Day1​​​和​​Day2​​​的示例中我们使用的都是​​WindowGroup​​。 main struct visionOSDemoApp: App {var body: some Scene {WindowGroup {ContentView()}} } 本节我们来认识在visionOS开发中会经常用到的另一个概念​​ImmersiveSpace​​…

如何看待Unity新收费模式?

Unity新收费模式的变化主要在于将收费重心从功能分级收费转变为资源使用量收费&#xff0c;这个改变已经引起了一定的争议和反响。以下是我个人的看法&#xff1a; 优点&#xff1a; 更公平的收费方式&#xff1a;新的收费模式将更加公平&#xff0c;用户只需按照实际使用的数…

css取消移动端长按元素背景色

在开发微信小程序的时候&#xff0c;发现有的元素长按之后&#xff0c;出现了讨厌人的背景色&#xff0c;这就很奇怪&#xff0c;就想把它去掉&#xff0c;所以这里教一下方法&#xff1a; 在所在元素添加css样式&#xff1a; // 取消长按的背景色-webkit-tap-highlight-color:…

【Linux】Linux中的基本概念

Linux中的基本概念 1. 路径分隔符/2. 当前目录 .3. 返回上级目录 . .目录结构&#xff1a;多叉树 4. 路径5. 路径 { 绝对路径 相对路径 }6. * 通配符 指定路径下的所有文件7. 同级目录下&#xff0c;不允许存在同名文件&#xff0c;或者同名目录8. 命令的本质就是可执行文件9…

TypeError: expected np.ndarray (got Tensor)解决办法

文章目录 一、错误展示二、错误分析三、解决办法四、其余解决办法总结 一、错误展示 二、错误分析 这个错误表示正在尝试将一个PyTorch的Tensor对象作为numpy的ndarray对象来使用。我们需要使用numpy的ndarray而不是PyTorch的Tensor。 三、解决办法 在我的程序中去掉这一行代…

维格表项目进度同步到钉钉群

企业越来越依赖项目管理工具&#xff0c;以确保项目按时完成、成本控制得当、并实现预期的业务目标。但随着项目变得更加复杂&#xff0c;项目经理和团队需要更高效的方法来跟踪和传达项目进度&#xff0c;以确保团队内部保持一致的理解。 传统的项目管理方法&#xff0c;可能缺…

增速大幅下滑?基础L2博弈成本

在高阶智驾&#xff08;从ALC到NOA&#xff09;的光环之下&#xff0c;传统入门级基础L2级辅助驾驶赛道也在发生一些微妙的变化。 高工智能汽车研究院监测数据显示&#xff0c;2023年1-9月&#xff0c;基础L2在中国市场&#xff08;不含进出口&#xff09;乘用车前装标配交付45…

为了摆脱 Android ,亚马逊开发基于Linux的操作系统

导读亚马逊一直在开发一种新的操作系统 —— 内部代号为 “Vega”&#xff0c;以便在 Fire TV、智能显示器和其他联网设备上取代 Android 系统。 亚马逊一直在开发一种新的操作系统 —— 内部代号为 “Vega”&#xff0c;以便在 Fire TV、智能显示器和其他联网设备上取代 Andr…