Проектирование и внедрение системы оценки курса на основе Java Springboot

Spring Boot Java MySQL
Проектирование и внедрение системы оценки курса на основе Java Springboot

Это 29-й день моего участия в августовском испытании обновлений. Ознакомьтесь с подробностями мероприятия: Испытание августовского обновления

Предисловие:

Оценка преподавания учителями является важной частью оценки качества преподавания.С ускорением информатизации образования, как использовать сетевые технологии для оценки качества преподавания учителей в традиционном обучении и как оценивать качество преподавания учителей в среде сетевого обучения, возникают трудности в обучении. Это также ключевой вопрос в развитии онлайн-обучения. Оценка преподавания учителями – это сложный систематический проект, требующий больших человеческих, материальных и финансовых ресурсов. С помощью системы оценки преподавания учителей можно реализовать управление сетью и реализацию оценки. Используя систему для получения большого количества статистических данных, она послужит основой для глубокого анализа и принятия решений. 

Особенности дизайна:

Роль администратора:Вход в систему, управление администратором, добавление, удаление и изменение управления учителями, добавление, удаление и изменение управления курсом, добавление, удаление и изменение индикаторов обучения, добавление, удаление и изменение учащихся, просмотр оценок и другие функции.
роль учителя: Вход в систему, управление курсами, управление индексом преподавания, управление студентами, получение оценок и другие функции.
Студенческая роль:Войдите в систему, измените личную информацию, начните оценивание, выберите курсы для оценки, просмотрите оценки, оценки и другие функции.

Функциональный скриншот:

Логин пользователя:

Домашняя страница системы:

Управление администратором:

Управление учителями:

Добавить учителя:

Управление курсом:

Добавить курс:

Управление индикатором:

 

Студенческая администрация:

Управление оценкой:

Процесс подсчета очков:

Выйти, чтобы выйти:

Домашняя страница факультета:

Студенческая домашняя страница:

 

Ключевой код:

Авторизоваться:


<div class="wrapper">

    <div class="froyo-frame login-body">
        <div class="admin-face">
            <div class="face-img">
                <img src="${ctxStatic}/images/editor.png" alt="logo">
            </div>
        </div>
        <h1 class="admin-login-tittle">课程评分管理系统</h1>
        <div class="admin-login-form">
            <form class="form" action="${ctx}/login" method="post" autocomplete="off">
                <div class="admin-name"><input name="username" type="text" placeholder="用户名"></div>
                <div class="admin-password"><input name="password" type="password" placeholder="密码"></div>
                <div class="admin-button"><button type="submit" id="login-button">登录</button></div>
            </form>
            <div class="admin-button"><a id="login-button" href="${ctx}/index">返回首页</a></div>
</div>
<script type="text/javascript" src="${ctxStatic}/plugins/layui/layui.js"></script>
<script type="text/javascript">
    layui.use('layer', function() {
        var $ = layui.jquery,
            layer = layui.layer;
        //login-button的点击事件..
        $('#login-button').click(function (event) {
            event.preventDefault();
            if (!$("input[name=username]").val()) {
                layer.msg("用户名不能为空");
                return false;
            } else if (!$("input[name=password]").val()) {
                layer.msg("密码不能为空");
                return false;
            } else {
                $('form').fadeOut(500);
                $('.wrapper').addClass('form-success');
                $('.form').submit();
            }
        });

</script>
</body>
</html>

После получения запроса на вход от внешнего интерфейса внутренний контроллер выполняет проверку параметров, оценивает и проверяет имя пользователя, пароль и роль пользователя, переданные внешним интерфейсом, вызывает метод LoginController.login для выполнения проверки входа пользователя, запросы правильность текущего пароля учетной записи в базе данных и возврат кода состояния.Выполнение относительных переходов страниц и эффектов данных для внешнего интерфейса и внешнего интерфейса в соответствии с кодом состояния.

   /**
     * 登录验证
     *
     * @param user
     * @param map
     * @return
     */
    @PostMapping("/login")
    public String login(User user, ModelMap map) {
        if (user != null) {
            if (StringUtils.isBlank(user.getUsername()) || StringUtils.isBlank(user.getPassword())) {
                return Views.LOGIN;
            }
            AuthenticationToken token = new UsernamePasswordToken(user.getUsername(), user.getPassword(), true);
            if (token == null) {
                map.put("message", "用户名或密码错误");
                return Views.LOGIN;
            }
            //记住我
            ((UsernamePasswordToken) token).setRememberMe(true);
            try {
                SecurityUtils.getSubject().login(token);
                return Views.REDIRECT_ADMIN;
            } catch (AuthenticationException e) {
                if (e instanceof UnknownAccountException) {
                    map.put("message", "用户不存在");
                } else if (e instanceof LockedAccountException) {
                    map.put("message", "账户未激活");
                    map.put("status", 2);
                    map.put("user", user);
                } else if (e instanceof DisabledAccountException) {
                    map.put("message", "账户未启用");
                }
                e.printStackTrace();
                map.put("message", "用户认证失败");
            }
            return Views.LOGIN;
        } else {
            map.put("message", "未知异常");
            return Views.LOGIN;
        }
    }

 

}

在这里插入图片描述