Детальный проект системы управления информацией о студентах на базе SpringBoot+vue

задняя часть
Детальный проект системы управления информацией о студентах на базе SpringBoot+vue

Введение:

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

Видео демонстрация# Система управления информацией о студентах.mp4

Скриншоты основных функций:

Логин пользователя, ввод пароля учетной записи для проверки и оценки роли пользователя, разные роли и разные разрешения меню

Домашняя страница Введение: вы можете определить ее по своему усмотрению

Отображение данных: echarts имитирует древовидные диаграммы, линейные диаграммы, диаграммы распределения и т. д. и может динамически получать данные из фона.

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

Управление пользователями: просмотр, добавление, изменение и т. д.  Управление ролями пользователей: роль привязки пользователя, отображение меню разрешений привязки роли, гибкое управление  Управление меню: разрешения контролируются вплоть до уровня кнопок.  Выберите, будет ли тип меню «Каталог», «Меню» или «Кнопка».

Мониторинг SQL: API-интерфейс Ali для мониторинга SQL

 Запрос журнала: журнал аспектов AOP, привязка к уровню контроллера и добавление аннотаций.

 Управление учениками и учителями: ввод данных, добавление, изменение, удаление, запрос и т. д.

 Добавьте информацию об учителе:

Управление студентами: ввод данных, добавление, изменение, удаление, запрос и т. д.

 Добавьте информацию о студенте:

 Управление классом: добавление, изменение, удаление, запрос и т. д.

 Управление курсом: добавление, изменение, удаление, запрос и т. д.

Добавляйте и изменяйте информацию о курсе:

Выбор студенческого курса: пользователи-студенты могут выбирать курсы.

Оценка за курс: Учитель выставляет оценки студентам, выбравшим курсы.

 Посмотреть информацию об оценках за курс:

Информация об уведомлении школы: добавление, изменение, удаление, запрос и т. д., использование форматированного текста для загрузки и отображения данных

Управление школьными новостями:

Загрузка и выгрузка данных книги:

Предварительная загрузка вида вложения:

изменить пароль:

Отображение основного кода:

Подтверждение входа пользователя

/**
 * 登录相关
 *
 * @author lyy
 */
@RestController
public class SysLoginController extends AbstractController {
	@Autowired
	private SysUserService sysUserService;
	@Autowired
	private SysUserTokenService sysUserTokenService;
	@Autowired
	private SysCaptchaService sysCaptchaService;

	/**
	 * 验证码
	 */
	@GetMapping("captcha.jpg")
	public void captcha(HttpServletResponse response, String uuid)throws IOException {
		response.setHeader("Cache-Control", "no-store, no-cache");
		response.setContentType("image/jpeg");

		//获取图片验证码
		BufferedImage image = sysCaptchaService.getCaptcha(uuid);

		ServletOutputStream out = response.getOutputStream();
		ImageIO.write(image, "jpg", out);
		IOUtils.closeQuietly(out);
	}

	/**
	 * 登录
	 */
	@PostMapping("/sys/login")
	public Map<String, Object> login(@RequestBody SysLoginForm form)throws IOException {
		boolean captcha = sysCaptchaService.validate(form.getUuid(), form.getCaptcha());
//		if(!captcha){
//			return R.error("验证码不正确");
//		}

		//用户信息
		SysUserEntity user = sysUserService.queryByUserName(form.getUsername());

		//账号不存在、密码错误
		if(user == null || !user.getPassword().equals(new Sha256Hash(form.getPassword(), user.getSalt()).toHex())) {
			return R.error("账号或密码不正确");
		}

		//账号锁定
		if(user.getStatus() == 0){
			return R.error("账号已被锁定,请联系管理员");
		}

		//生成token,并保存到数据库
		R r = sysUserTokenService.createToken(user.getUserId());
		return r;
	}


	/**
	 * 退出
	 */
	@PostMapping("/sys/logout")
	public R logout() {
		sysUserTokenService.logout(getUserId());
		return R.ok();
	}`
​

Внешний вид VUE+элементная форма:

<h3 class="login-title">学生信息管理登录</h3>
          <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" status-icon>
            <el-form-item prop="userName">
              <el-input v-model="dataForm.userName" placeholder="帐号"></el-input>
            </el-form-item>
            <el-form-item prop="password">
              <el-input v-model="dataForm.password" type="password" placeholder="密码"></el-input>
            </el-form-item>
            <el-form-item prop="captcha">
              <el-row :gutter="20">
                <el-col :span="14">
                  <el-input v-model="dataForm.captcha" placeholder="验证码">
                  </el-input>
                </el-col>
                <el-col :span="10" class="login-captcha">
                  <img :src="captchaPath" @click="getCaptcha()" alt="">
                </el-col>
              </el-row>
            </el-form-item>
            <el-form-item>
              <el-button class="login-btn-submit" type="danger" @click="dataFormSubmit()">登录</el-button>
            </el-form-item>
          </el-form>
          
dataFormSubmit () {
        this.$refs['dataForm'].validate((valid) => {
          if (valid) {
            this.$http({
              url: this.$http.adornUrl('/sys/login'),
              method: 'post',
              data: this.$http.adornData({
                'username': this.dataForm.userName,
                'password': this.dataForm.password,
                'uuid': this.dataForm.uuid,
                'captcha': this.dataForm.captcha
              })
            }).then(({data}) => {
              if (data && data.code === 0) {
                this.$cookie.set('token', data.token)
                this.$router.replace({ name: 'home' })
              } else {
                this.getCaptcha()
                this.$message.error(data.msg)
              }
            })
          }
        })
      },

Контроль разрешений:

 @Bean("shiroFilter")
    public ShiroFilterFactoryBean shiroFilter(SecurityManager securityManager) {
        ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
        shiroFilter.setSecurityManager(securityManager);

        //oauth过滤
        Map<String, Filter> filters = new HashMap<>();
        filters.put("oauth2", new OAuth2Filter());
        shiroFilter.setFilters(filters);

        Map<String, String> filterMap = new LinkedHashMap<>();
        filterMap.put("/webjars/**", "anon");
        filterMap.put("/druid/**", "anon");
        filterMap.put("/app/**", "anon");
        filterMap.put("/sys/login", "anon");
        filterMap.put("/swagger/**", "anon");
        filterMap.put("/v2/api-docs", "anon");
        filterMap.put("/swagger-ui.html", "anon");
        filterMap.put("/swagger-resources/**", "anon");
        filterMap.put("/captcha.jpg", "anon");
        filterMap.put("/aaa.txt", "anon");
        filterMap.put("/virtuel/**", "anon");

        filterMap.put("/**", "oauth2");
        shiroFilter.setFilterChainDefinitionMap(filterMap);

        return shiroFilter;
    }

Конфигурация подключения к базе данных:

spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        druid:
            driver-class-name: com.mysql.cj.jdbc.Driver
            url: jdbc:mysql://localhost:3306/renren_students?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
            username: root
            password: 123456
            initial-size: 10
            max-active: 100
            min-idle: 10
            max-wait: 60000
            pool-prepared-statements: true
            max-pool-prepared-statement-per-connection-size: 20
            time-between-eviction-runs-millis: 60000
            min-evictable-idle-time-millis: 300000
            #Oracle需要打开注释
            #validation-query: SELECT 1 FROM DUAL
            test-while-idle: true
            test-on-borrow: false
            test-on-return: false
            stat-view-servlet:
                enabled: true
                url-pattern: /druid/*
                #login-username: admin
                #login-password: admin
            filter:
                stat:
                    log-slow-sql: true
                    slow-sql-millis: 1000
                    merge-sql: false
                wall:
                    config:
                        multi-statement-allow: true

Документация по структуре таблиц базы данных:

**имя хранилища данных: **renren_students

**Версия документации: **V1.0.0

**Описание документа:**Описание дизайна таблицы базы данных

стол кла

серийный номер имя тип данных длина Десятичные разряды разрешить нули первичный ключ По умолчанию иллюстрировать
1 id int 10 0 N Y
2 name varchar 255 0 Y N
3 class_num varchar 255 0 Y N
4 user_nums varchar 255 0 Y N

стол курс

серийный номер имя тип данных длина Десятичные разряды разрешить нули первичный ключ По умолчанию иллюстрировать
1 id int 10 0 N Y
2 name varchar 255 0 Y N
3 teacher_num varchar 255 0 Y N
4 sk_time datetime 19 0 Y N
5 sk_place varchar 255 0 Y N
6 weeks_number varchar 255 0 Y N
7 kc_type varchar 255 0 Y N
8 faculty varchar 255 0 Y N
9 score varchar 255 0 Y N
10 bz varchar 255 0 Y N

стол dj_news

серийный номер имя тип данных длина Десятичные разряды разрешить нули первичный ключ По умолчанию иллюстрировать
1 id int 10 0 N Y
2 title varchar 255 0 Y N заглавие
3 ty varchar 255 0 Y N Типы
4 create_time datetime 19 0 Y N время выпуска
5 unit varchar 255 0 Y N Изданный
6 num varchar 255 0 Y N Номер выпуска
7 content mediumtext 16777215 0 Y N основное содержание
8 create_by varchar 255 0 Y N издатель
9 bz varchar 255 0 Y N Примечания
10 kind varchar 255 0 Y N Тип (организационный стиль, основные моменты организации вечеринки)

табличный файл

серийный номер имя тип данных длина Десятичные разряды разрешить нули первичный ключ По умолчанию иллюстрировать
1 id int 10 0 N Y
2 path varchar 255 0 Y N
3 file_name varchar 255 0 Y N
4 file_type varchar 255 0 Y N
5 classify varchar 255 0 Y N
6 create_time datetime 19 0 Y N
7 create_by varchar 255 0 Y N

стол информирует

серийный номер имя тип данных длина Десятичные разряды разрешить нули первичный ключ По умолчанию иллюстрировать
1 id int 10 0 N Y
2 title varchar 255 0 Y N
3 content text 65535 0 Y N
4 create_time timestamp 19 0 Y N CURRENT_TIMESTAMP
5 create_by varchar 255 0 Y N
6 bz varchar 255 0 Y N

таблица мой_курс

серийный номер имя тип данных длина Десятичные разряды разрешить нули первичный ключ По умолчанию иллюстрировать
1 id int 10 0 N Y
2 name varchar 255 0 Y N
3 teacher_num varchar 255 0 Y N
4 sk_time datetime 19 0 Y N
5 sk_place varchar 255 0 Y N
6 weeks_number varchar 255 0 Y N
7 kc_type varchar 255 0 Y N
8 faculty varchar 255 0 Y N
9 score varchar 255 0 Y N
10 bz varchar 255 0 Y N
11 user_id int 10 0 Y N
12 user_name varchar 255 0 Y N
13 user_score varchar 255 0 Y N

стол студент

серийный номер имя тип данных длина Десятичные разряды разрешить нули первичный ключ По умолчанию иллюстрировать
1 id int 10 0 N Y
2 name varchar 255 0 Y N
3 sex varchar 255 0 Y N
4 birth_date datetime 19 0 Y N
5 ruxue_date datetime 19 0 Y N
6 college varchar 255 0 Y N
7 bz varchar 255 0 Y N
8 cla_name varchar 255 0 Y N

Таблица sys_captcha (системная капча)

серийный номер имя тип данных длина Десятичные разряды разрешить нули первичный ключ По умолчанию иллюстрировать
1 uuid char 36 0 N Y uuid
2 code varchar 6 0 N N проверяющий код
3 expire_time datetime 19 0 Y N Срок действия

Таблица sys_config (таблица информации о конфигурации системы)

серийный номер имя тип данных длина Десятичные разряды разрешить нули первичный ключ По умолчанию иллюстрировать
1 id bigint 20 0 N Y
2 param_key varchar 50 0 Y N key
3 param_value varchar 2000 0 Y N value
4 status tinyint 4 0 Y N 1 Статус 0: Скрыт 1: Показан
5 remark varchar 500 0 Y N Примечание

Таблица sys_dept (управление отделом)

серийный номер имя тип данных длина Десятичные разряды разрешить нули первичный ключ По умолчанию иллюстрировать
1 dept_id bigint 20 0 N Y
2 parent_id bigint 20 0 Y N ID отдела верхнего уровня, отдела первого уровня 0
3 name varchar 50 0 Y N Название отдела
4 order_num int 10 0 Y N Сортировать
5 del_flag tinyint 4 0 Y N 0 Удалять ли -1: Удалено 0: Обычное
6 remark varchar 255 0 Y N

Таблица sys_log (системный журнал)

серийный номер имя тип данных длина Десятичные разряды разрешить нули первичный ключ По умолчанию иллюстрировать
1 id bigint 20 0 N Y
2 username varchar 50 0 Y N имя пользователя
3 operation varchar 50 0 Y N Действие пользователя
4 method varchar 200 0 Y N метод запроса
5 params varchar 5000 0 Y N параметры запроса
6 time bigint 20 0 N N Время выполнения (мс)
7 ip varchar 64 0 Y N айпи адрес
8 create_date datetime 19 0 Y N время создания

Таблица sys_menu (управление меню)

серийный номер имя тип данных длина Десятичные разряды разрешить нули первичный ключ По умолчанию иллюстрировать
1 menu_id bigint 20 0 N Y
2 parent_id bigint 20 0 Y N ID родительского меню, меню первого уровня 0
3 name varchar 50 0 Y N название меню
4 url varchar 200 0 Y N URL-адрес меню
5 perms varchar 500 0 Y N Авторизация (несколько разделенных запятыми, например: пользователь:список,пользователь:создать)
6 type int 10 0 Y N Тип 0: Каталог 1: Меню 2: Кнопка
7 icon varchar 50 0 Y N значок меню
8 order_num int 10 0 Y N Сортировать

Таблица sys_oss (загрузка файла)

серийный номер имя тип данных длина Десятичные разряды разрешить нули первичный ключ По умолчанию иллюстрировать
1 id bigint 20 0 N Y
2 url varchar 200 0 Y N URL-адрес
3 create_date datetime 19 0 Y N время создания

таблица sys_role (роль)

серийный номер имя тип данных длина Десятичные разряды разрешить нули первичный ключ По умолчанию иллюстрировать
1 role_id bigint 20 0 N Y
2 role_name varchar 100 0 Y N Имя роли
3 remark varchar 100 0 Y N Примечание
4 create_user_id bigint 20 0 Y N Идентификатор автора
5 create_time datetime 19 0 Y N время создания
6 dept_id int 10 0 Y N

Таблица sys_role_dept (соответствие между ролями и отделами)

серийный номер имя тип данных длина Десятичные разряды разрешить нули первичный ключ По умолчанию иллюстрировать
1 id bigint 20 0 N Y
2 role_id bigint 20 0 Y N идентификатор роли
3 dept_id bigint 20 0 Y N Идентификатор отдела

Таблица SYS_ROLE_MENU (соответствие между ролями и меню)

серийный номер имя тип данных длина Десятичные разряды разрешить нули первичный ключ По умолчанию иллюстрировать
1 id bigint 20 0 N Y
2 role_id bigint 20 0 Y N идентификатор роли
3 menu_id bigint 20 0 Y N идентификатор меню

Таблица sys_user (системный пользователь)

серийный номер имя тип данных длина Десятичные разряды разрешить нули первичный ключ По умолчанию иллюстрировать
1 user_id bigint 20 0 N Y
2 username varchar 50 0 N N имя пользователя
3 password varchar 100 0 Y N пароль
4 salt varchar 20 0 Y N Поваренная соль
5 email varchar 100 0 Y N Почта
6 mobile varchar 100 0 Y N Телефонный номер
7 status tinyint 4 0 Y N Статус 0: Отключено 1: Нормально
8 create_user_id bigint 20 0 Y N Идентификатор автора
9 create_time datetime 19 0 Y N время создания
10 dept_id int 10 0 Y N
11 stage varchar 255 0 Y N
12 parent_name varchar 255 0 Y N Название отдела

Таблица sys_user_role (соответствие роли пользователя)

серийный номер имя тип данных длина Десятичные разряды разрешить нули первичный ключ По умолчанию иллюстрировать
1 id bigint 20 0 N Y
2 user_id bigint 20 0 Y N ID пользователя
3 role_id bigint 20 0 Y N идентификатор роли

Таблица sys_user_token (токен системного пользователя)

серийный номер имя тип данных длина Десятичные разряды разрешить нули первичный ключ По умолчанию иллюстрировать
1 user_id bigint 20 0 N Y
2 token varchar 100 0 N N token
3 expire_time datetime 19 0 Y N Срок действия
4 update_time datetime 19 0 Y N Время обновления

таблица tb_user (пользователь)

серийный номер имя тип данных длина Десятичные разряды разрешить нули первичный ключ По умолчанию иллюстрировать
1 user_id bigint 20 0 N Y
2 username varchar 50 0 N N имя пользователя
3 mobile varchar 20 0 N N Телефонный номер
4 password varchar 64 0 Y N пароль
5 create_time datetime 19 0 Y N время создания

учитель стола

серийный номер имя тип данных длина Десятичные разряды разрешить нули первичный ключ По умолчанию иллюстрировать
1 user_id bigint 20 0 N Y
2 username varchar 50 0 N N имя пользователя
3 mobile varchar 20 0 N N Телефонный номер
4 password varchar 64 0 Y N пароль
5 create_time datetime 19 0 Y N время создания

учитель стола

серийный номер имя тип данных длина Десятичные разряды разрешить нули первичный ключ По умолчанию иллюстрировать
1 id int 10 0 N Y
2 name varchar 255 0 Y N
3 sex varchar 255 0 Y N
4 birthdate datetime 19 0 Y N Дата рождения
5 education varchar 255 0 Y N Образование
6 position varchar 255 0 Y N
7 ruzhi_date datetime 19 0 Y N
8 college varchar 255 0 Y N
9 bz varchar 255 0 Y N

Резюме дизайна курса:

После недавнего освоения и изучения объектно-ориентированного программирования Java, знаний о интерфейсе и среды Java, а также развития этой системы образования и обучения в этот период я ​​стал лучше осознавать важность изучения Java. При разработке этой системы я не только много раз экспериментировал, но и тестировал функциональность системы. В процессе реализации дипломной работы я приложил немало усилий для реализации Java, и очень рад, что в дальнейшем смогу использовать родственные технологии. В процессе я обнаружил, что в Java на самом деле есть много функций для изучения. Java также имеет инкапсуляцию, абстракцию, полиморфизм и наследование. Код можно повторно использовать и расширять, что значительно повышает общую скорость и эффективность разработки программного обеспечения. Поскольку я изучаю образовательные технологии, хорошее изучение языка Java имеет большое значение для моей будущей работы и расширения моих текущих знаний. Основной целью моего обучения программированию является совершенствование ключевых навыков и приемов программирования решений моих практических задач Объектно-ориентированное программирование Java является относительно практичным языком, Springboot, SpringMVC framework MVC три уровня Архитектурные паттерны и паттерны проектирования, встречающиеся в фреймворке сконцентрируйте доступ к данным и логические операции в компонентах, повысив возможность повторного использования и масштабируемость системы. Масштабируемость системы значительно повышается. А владение внешними стилями VUE, element, jQuery позволяет мне добиться более точного макета веб-страницы, настройки стилей, шрифтов и т. д.

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

Проект подходит только для курсового или дипломного дизайна, а нестандартных мест много.

КаждыйНравится, Избранное, Следите, КомментируйтеЭй, проверьте обновление статьи110/ 365 дней