基于SpringBoot框架课程思政资源平台(附源代码及数据库)

简介: 基于SpringBoot框架课程思政资源平台(附源代码及数据库)

项目详情


根据系统开发关键内容得出该系统主要功能性需求为:


(1)用户管理,系统中需要包含多种用户角色,不同的角色的用户,功能不同,但是用户均需要登录成功以后才可以操作教学资源。对于该系统而言,需要包含系统管理员和普通用户两类。


(2)教学资源管理,该平台主要作用是将高校中的各类课程思政教学教学资源发布并传播给高校的学生。其中管理员负责发布、编辑、删除教学资源,教学资源发布至平台后,平台客户端可以查看、下载以及收藏该教学资源。


(3)教学资源审查管理,当教学资源发布至系统后,需要接受广大阅读者的审查,当阅读者认为教学资源有误或者有疑问时可以通过评论功能发表个人见解。


细节阐述


(1)登录,管理员使用思政资源平台功能的前提是使用个人账号登录系统,在登录过程中需要输入管理员的账号、密码以及随机验证码。


(2)系统管理员管理,管理员在思政资源平台中的重要作用是管理普通管理员的人事档案,对于管理员用户来说需要可以为其他资源管理员创建个人账号 也可以修改和删除其他资源管理员。


(3)注册用户管理,管理员可以通过后台管理查看并管理注册用户账号等信息。


(4)新闻信息管理,管理员可以发布新闻信息,划分新闻种类和管理个人发布新闻的功能。


(5)高校动态管理,管理员具有录入高校动态信息和课程思政资源平台中高校动态记录的功能。


(6)思政课堂管理,管理员具有录入思政课堂资源以及管理其资源记录的功能。


bb872be0814e4c3fb7e6567a2733b109.png

b300462bdc064117b320416ad86af9bb.png



登录界面


16f4620c63e74bcea63550593348131a.png


数据库展示


cb7e9259be594731bd36ac8c604f7dd3.png


登录页面


<!DOCTYPE html>
<html>
<head>
    <title>资源平台</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport"
          content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
    <link rel="stylesheet" href="../images/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../images/style/admin.css" media="all">
    <link rel="stylesheet" href="../images/style/login.css" media="all">
</head>
<body style="background: url('../images/loginbg.jpg');background-position: center center;background-size: cover;">
<div id="app">
    <form name="form1" >
        <div class="layadmin-user-login layadmin-user-display-show" id="LAY-user-login" style="display: none;">
            <div class="layadmin-user-login-main" style="background: rgba(250,250,250,0.45);">
                <div class="layadmin-user-login-box layadmin-user-login-header">
                    <h2>后台登陆</h2>
                    <p>课程思政资源平台</p>
                </div>
                <div class="layadmin-user-login-box layadmin-user-login-body ">
                <div class="layui-form-item">
                        <label class="layadmin-user-login-icon layui-icon layui-icon-username"
                               for="LAY-user-login-username"></label>
                        <input type="text" name="username" id="LAY-user-login-username" lay-verify="required" placeholder="用户名" v-model="user.username" class="layui-input">
                    </div>
                    <div class="layui-form-item">
                        <label class="layadmin-user-login-icon layui-icon layui-icon-password"
                               for="LAY-user-login-password"></label>
                        <input type="password" name="pwd" id="LAY-user-login-password" lay-verify="required" v-model="user.mima" placeholder="密码" class="layui-input">
                    </div>
                    <div class="layui-form-item">
                        <label class="layadmin-user-login-icon layui-icon layui-icon-refresh"
                               for="LAY-user-login-password"></label>
                        <select name="cx" id="cx" v-model="user.level" class="layui-input">
                          <option value="管理员" name="level">管理员</option>
<option value="用户" name="level">用户</option>
                        </select>
                    </div>
                    <div class="layui-form-item">
                        <div class="layui-row">
                            <div class="layui-col-xs7">
                                <label class="layadmin-user-login-icon layui-icon layui-icon-vercode"
                                       for="yzm"></label>
                                <input type="text" name="yzm" id="yzm" lay-verify="required"
                                       placeholder="验证码" class="layui-input">
                            </div>
                            <div class="layui-col-xs5">
                                <div style="margin-left: 10px;">
                                    <input type = "text" class="layui-input" id="code" />                      </div>
                            </div>
                        </div>
                    </div>
                    <div class="layui-form-item" style="margin-bottom: 20px;">            </div>
                    <div class="layui-form-item">
                        <button class="layui-btn layui-btn-fluid" lay-submit lay-filter="LAY-user-login-submit" type="button" id="loginBtn" @click="login">登
                            入                </button>
                    </div>
                    <div class="layui-trans layui-form-item layadmin-user-login-other">
                        <label></label>
                        <a href="javascript:;"><i class="layui-icon layui-icon-login-qq"></i></a>
                        <a href="javascript:;"><i class="layui-icon layui-icon-login-wechat"></i></a>
                        <a href="javascript:;"><i class="layui-icon layui-icon-login-weibo"></i></a>
                        <a href="reg.html" class="layadmin-user-jump-change layadmin-link"></a>            </div>
                </div>
            </div>
        </div>
    </form>
    <script src="../images/layui/layui.js"></script>
    <script src="../images/js/jquery-1.9.1.min.js"></script>
    <script>
        layui.use(['element', 'form', 'layer'], function () {
            var element = layui.element;
            var layer = layui.layer;
            var form = layui.form;
            var layer = layui.layer;
        });
    </script>
</div>
<script src="../js/hsgyanzhengma.js"></script>
<script src="../js/vue2.6.11/vue.min.js"></script>
<script src="../js/vue2.6.11/axios.js"></script>
<script>
  new Vue({
  el: "#app",
  data: {
    user: {
    username: "",
    mima: "",
    level: null
    },
    authorities: [],
  },
  created: function () {
    axios.get("/getAuthority").then(res => {
    if (res.data.code === '0') {
      this.authorities = res.data.data;
    } else {
      alert(res.data.msg);
    }
    });
  },
  methods: {
    login() {
    if (!this.user.username) {
      alert("请输入用户名");
      return;
    }
    if (!this.user.mima) {
      alert("请输入密码");
      return;
    }
    if (!this.user.level) {
      alert("请选择角色");
      return;
    }
    var inputCode = yzm.value.toUpperCase(); //取得输入的验证码并转化为大写??
    if(inputCode.length==0) { //若输入的验证码长度为0
      alert("请输入验证码 "); //则弹出请输入验证码
      return;
    }
    else if(inputCode!=codes.toUpperCase()) { //若输入的验证码与产生的验证码不一致时
      alert("验证码输入错误 请重新输入"); //则弹出验证码输入错误
      change();//刷新验证码
      input.value="";//清空文本框
      return;
    }
    axios.post('/login', this.user).then(res => {
      if(res.data.code === '0') {
      localStorage.setItem('user', JSON.stringify(res.data.data));
      if (this.user.level==="管理员"){window.location = '/end/page/main_guanliyuan.html';}
if (this.user.level==="用户"){window.location = '/end/page/main_yonghu.html';}
      } else {
      alert(res.data.msg);
      }
    });
    },
  }
  });
</script>
</body>
</html>


源代码下载(含数据库)

https://download.csdn.net/download/m0_54925305/85398452


项目演示地址

https://www.bilibili.com/video/BV1ct4y1x76E?spm_id_from=333.999.0.0


毕设项目专栏

https://blog.csdn.net/m0_54925305/category_11702151.html?spm=1001.2014.3001.5482


相关文章
|
6天前
|
前端开发 JavaScript Java
Spring Boot应用中的资源分离与高效打包实践
通过实施资源分离和高效打包策略,不仅可以提升Spring Boot应用的开发和部署效率,还能显著提高用户体验。在实际项目中,根据项目的实际情况和团队的技术栈选择合适的工具和方案是关键。希望本文能为读者在Spring Boot项目中实现资源分离和高效打包提供一些有价值的参考。
12 0
|
5天前
|
SQL 监控 Java
在IDEA 、springboot中使用切面aop实现日志信息的记录到数据库
这篇文章介绍了如何在IDEA和Spring Boot中使用AOP技术实现日志信息的记录到数据库的详细步骤和代码示例。
在IDEA 、springboot中使用切面aop实现日志信息的记录到数据库
|
4天前
|
SQL JavaScript 前端开发
vue中使用分页组件、将从数据库中查询出来的数据分页展示(前后端分离SpringBoot+Vue)
这篇文章详细介绍了如何在Vue.js中使用分页组件展示从数据库查询出来的数据,包括前端Vue页面的表格和分页组件代码,以及后端SpringBoot的控制层和SQL查询语句。
vue中使用分页组件、将从数据库中查询出来的数据分页展示(前后端分离SpringBoot+Vue)
|
3天前
|
前端开发 JavaScript Java
SpringBoot+Vue+token实现(表单+图片)上传、图片地址保存到数据库。上传图片保存位置自己定义、图片可以在前端回显(一))
这篇文章详细介绍了在SpringBoot+Vue项目中实现表单和图片上传的完整流程,包括前端上传、后端接口处理、数据库保存图片路径,以及前端图片回显的方法,同时探讨了图片资源映射、token验证、过滤器配置等相关问题。
|
3天前
|
前端开发 数据库
SpringBoot+Vue+token实现(表单+图片)上传、图片地址保存到数据库。上传图片保存位置到项目中的静态资源下、图片可以在前端回显(二))
这篇文章是关于如何在SpringBoot+Vue+token的环境下实现表单和图片上传的优化篇,主要改进是将图片保存位置从磁盘指定位置改为项目中的静态资源目录,使得图片资源可以跨环境访问,并在前端正确回显。
|
4天前
|
网络协议 Java 物联网
MQTT(EMQX) - SpringBoot 整合MQTT 连接池 Demo - 附源代码 + 在线客服聊天架构图
MQTT(EMQX) - SpringBoot 整合MQTT 连接池 Demo - 附源代码 + 在线客服聊天架构图
20 2
|
5天前
|
数据库连接 数据库
实现加载驱动、得到数据库对象、关闭资源的代码复用,将代码提取到相应的工具包里边。优化程序
该博客文章展示了如何通过创建工具类`Connectiontools`实现数据库连接、语句执行以及资源关闭的代码复用,以优化程序并提高数据库操作的效率和安全性。
|
4天前
|
XML SQL JavaScript
在vue页面引入echarts,图表的数据来自数据库 springboot+mybatis+vue+elementui+echarts实现图表的制作
这篇文章介绍了如何在Vue页面中结合SpringBoot、MyBatis、ElementUI和ECharts,实现从数据库获取数据并展示为图表的过程,包括前端和后端的代码实现以及遇到的问题和解决方法。
在vue页面引入echarts,图表的数据来自数据库 springboot+mybatis+vue+elementui+echarts实现图表的制作
|
4天前
|
存储 前端开发 JavaScript
Springboot+Vue实现将图片和表单一起提交到后端,同时将图片地址保存到数据库、再次将存储的图片展示到前端vue页面
本文介绍了使用Springboot后端和Vue前端实现图片与表单数据一起提交到后端,并保存图片地址到数据库,然后展示存储的图片到前端Vue页面的完整流程。
Springboot+Vue实现将图片和表单一起提交到后端,同时将图片地址保存到数据库、再次将存储的图片展示到前端vue页面
|
4天前
|
druid Java 数据库连接
SpringBoot项目整合MybatisPlus持久层框架+Druid数据库连接池,以及实现增删改查功能
SpringBoot项目整合MybatisPlus和Druid数据库连接池,实现基本的增删改查功能。
15 0