diff --git a/server/pom.xml b/server/pom.xml
index efc723b..5ab001a 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -28,6 +28,14 @@
org.springframework.boot
spring-boot-starter-data-jpa
+
+ org.flywaydb
+ flyway-core
+
+
+ org.flywaydb
+ flyway-database-postgresql
+
org.springframework.boot
spring-boot-starter-security
@@ -132,4 +140,4 @@
-
\ No newline at end of file
+
diff --git a/server/src/main/java/ru/tubryansk/tdms/dto/DiplomaTopicDTO.java b/server/src/main/java/ru/tubryansk/tdms/dto/DiplomaTopicDTO.java
new file mode 100644
index 0000000..ede40ed
--- /dev/null
+++ b/server/src/main/java/ru/tubryansk/tdms/dto/DiplomaTopicDTO.java
@@ -0,0 +1,15 @@
+package ru.tubryansk.tdms.dto;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class DiplomaTopicDTO {
+ private Integer id;
+ private String name;
+}
diff --git a/server/src/main/java/ru/tubryansk/tdms/dto/RoleDTO.java b/server/src/main/java/ru/tubryansk/tdms/dto/RoleDTO.java
new file mode 100644
index 0000000..f34d5f9
--- /dev/null
+++ b/server/src/main/java/ru/tubryansk/tdms/dto/RoleDTO.java
@@ -0,0 +1,15 @@
+package ru.tubryansk.tdms.dto;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class RoleDTO {
+ private Integer id;
+ private String name;
+}
diff --git a/server/src/main/java/ru/tubryansk/tdms/dto/StudentDTO.java b/server/src/main/java/ru/tubryansk/tdms/dto/StudentDTO.java
new file mode 100644
index 0000000..2aad7fb
--- /dev/null
+++ b/server/src/main/java/ru/tubryansk/tdms/dto/StudentDTO.java
@@ -0,0 +1,30 @@
+package ru.tubryansk.tdms.dto;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class StudentDTO {
+ private Integer id;
+ private Boolean form;
+ private Integer protectionOrder;
+ private String magistracy;
+ private Boolean digitalFormatPresent;
+ private Integer markComment;
+ private Integer markPractice;
+ private String predefenceComment;
+ private String normalControl;
+ private Integer antiPlagiarism;
+ private String note;
+ private Boolean recordBookReturned;
+ private String work;
+ private Integer userId;
+ private Integer diplomaTopicId;
+ private Integer mentorUserId;
+ private Integer groupId;
+}
diff --git a/server/src/main/java/ru/tubryansk/tdms/dto/UserDTO.java b/server/src/main/java/ru/tubryansk/tdms/dto/UserDTO.java
new file mode 100644
index 0000000..a865dde
--- /dev/null
+++ b/server/src/main/java/ru/tubryansk/tdms/dto/UserDTO.java
@@ -0,0 +1,26 @@
+package ru.tubryansk.tdms.dto;
+
+
+import jakarta.persistence.Column;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.ZonedDateTime;
+import java.util.List;
+
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class UserDTO {
+ private Integer id;
+ private String login;
+ private String password;
+ private String fullName;
+ private String mail;
+ private String numberPhone;
+ private ZonedDateTime createAt;
+ private ZonedDateTime updateAt;
+ List roleId;
+}
diff --git a/server/src/main/java/ru/tubryansk/tdms/entity/DiplomaTopic.java b/server/src/main/java/ru/tubryansk/tdms/entity/DiplomaTopic.java
new file mode 100644
index 0000000..742202c
--- /dev/null
+++ b/server/src/main/java/ru/tubryansk/tdms/entity/DiplomaTopic.java
@@ -0,0 +1,24 @@
+package ru.tubryansk.tdms.entity;
+
+
+import jakarta.persistence.*;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+
+@Entity
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+@Table(name = "diploma_topic", schema = "vkr")
+public class DiplomaTopic {
+ @Id
+ @Column(name = "id")
+ @GeneratedValue(strategy = GenerationType.IDENTITY)//Макс из-за SEQUENCE прога лежит, если хочешь, можешь менять я не понял что не нравиться при сборке
+ private Integer id;
+ @Column(name = "name", nullable = false)
+ private String name;
+}
diff --git a/server/src/main/java/ru/tubryansk/tdms/entity/Group.java b/server/src/main/java/ru/tubryansk/tdms/entity/Group.java
new file mode 100644
index 0000000..4293d27
--- /dev/null
+++ b/server/src/main/java/ru/tubryansk/tdms/entity/Group.java
@@ -0,0 +1,27 @@
+package ru.tubryansk.tdms.entity;
+
+
+import jakarta.persistence.*;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+
+@Entity
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+@Table(name = "group", schema = "vkr")
+public class Group {
+ @Id
+ @Column(name = "id")
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Integer id;
+ @Column(name = "name", nullable = false)
+ private String name;
+ @ManyToOne()
+ @JoinColumn(name = "principal_user_id", nullable = false)
+ private User principalUser;
+}
diff --git a/server/src/main/java/ru/tubryansk/tdms/entity/Role.java b/server/src/main/java/ru/tubryansk/tdms/entity/Role.java
new file mode 100644
index 0000000..060e7c6
--- /dev/null
+++ b/server/src/main/java/ru/tubryansk/tdms/entity/Role.java
@@ -0,0 +1,24 @@
+package ru.tubryansk.tdms.entity;
+
+
+import jakarta.persistence.*;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+
+@Entity
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+@Table(name = "role", schema = "vkr")
+public class Role {
+ @Id
+ @Column(name = "id")
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Integer id;
+ @Column(name = "name", nullable = false)
+ private String name;
+}
diff --git a/server/src/main/java/ru/tubryansk/tdms/entity/Student.java b/server/src/main/java/ru/tubryansk/tdms/entity/Student.java
new file mode 100644
index 0000000..38eb612
--- /dev/null
+++ b/server/src/main/java/ru/tubryansk/tdms/entity/Student.java
@@ -0,0 +1,53 @@
+package ru.tubryansk.tdms.entity;
+
+
+import jakarta.persistence.*;
+import lombok.Data;
+
+
+@Data
+@Entity
+@Table(name = "student", schema = "vkr")
+public class Student {
+ @Id
+ @Column(name = "id")
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Integer id;
+ @Column(name = "form")
+ private Boolean form;
+ @Column(name = "protection_order" , nullable = false)
+ private Integer protectionOrder;
+ @Column(name = "magistracy" )
+ private String magistracy;
+ @Column(name = "digital_format_present")
+ private Boolean digitalFormatPresent;
+ @Column(name = "mark_comment")
+ private Integer markComment;
+ @Column(name = "mark_practice")
+ private Integer markPractice;
+ @Column(name = "predefence_comment")
+ private String predefenceComment;
+ @Column(name = "normal_control")
+ private String normalControl;
+ @Column(name = "anti_plagiarism")
+ private Integer antiPlagiarism;
+ @Column(name = "note")
+ private String note;
+ @Column(name = "record_book_returned")
+ private Boolean recordBookReturned;
+ @Column(name = "work")
+ private String work;
+ @OneToOne
+ @JoinColumn(name = "user_id", nullable = false)
+ private User user;
+ @ManyToOne
+ @JoinColumn(name = "diploma_topic_id", nullable = false)
+ private DiplomaTopic diplomaTopic;
+ @ManyToOne
+ @JoinColumn(name = "mentor_user_id", nullable = false)
+ private User mentorUser;
+ @ManyToOne
+ @JoinColumn(name = "group_id", nullable = false)
+ private Group group;
+
+}
diff --git a/server/src/main/java/ru/tubryansk/tdms/entity/User.java b/server/src/main/java/ru/tubryansk/tdms/entity/User.java
new file mode 100644
index 0000000..89a2c9d
--- /dev/null
+++ b/server/src/main/java/ru/tubryansk/tdms/entity/User.java
@@ -0,0 +1,45 @@
+package ru.tubryansk.tdms.entity;
+
+
+import jakarta.persistence.*;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import java.time.ZonedDateTime;
+import java.util.List;
+
+
+@Entity
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+@Table(name = "user", schema = "vkr")
+public class User {
+ @Id
+ @Column(name = "id")
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Integer id;
+ @Column(name = "login", nullable = false, unique = true)
+ private String login;
+ @Column(name = "password", nullable = false)
+ private String password;
+ @Column(name = "full_name", nullable = false)
+ private String fullName;
+ @Column(name = "mail", nullable = false, unique = true)
+ private String mail;
+ @Column(name = "number_phone", nullable = false, unique = true)
+ private String numberPhone;
+ @Column(name = "create_at", nullable = false)
+ private ZonedDateTime createAt;
+ @Column(name = "update_at")
+ private ZonedDateTime updateAt;
+ @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
+ @JoinTable(name = "user_role",schema = "vkr",
+ joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id"),
+ inverseJoinColumns = @JoinColumn(name = "role_id", referencedColumnName = "id"))
+ private List userLoyaltyLevels;
+
+}
diff --git a/server/src/main/resources/application.yml b/server/src/main/resources/application.yml
index e56a6c9..46b6575 100644
--- a/server/src/main/resources/application.yml
+++ b/server/src/main/resources/application.yml
@@ -14,4 +14,10 @@ spring:
properties.hibernate:
pretty_print: true
format_sql: true
- dialect: org.hibernate.dialect.PostgreSQLDialect
\ No newline at end of file
+ dialect: org.hibernate.dialect.PostgreSQLDialect
+ flyway:
+ user: root
+ password: root
+ schemas: vkr
+ locations: db.migration
+ url: jdbc:postgresql://localhost:5432/db
\ No newline at end of file
diff --git a/server/src/main/resources/db.migration/V00001__Create__role_table.sql b/server/src/main/resources/db.migration/V00001__Create__role_table.sql
new file mode 100644
index 0000000..6099afb
--- /dev/null
+++ b/server/src/main/resources/db.migration/V00001__Create__role_table.sql
@@ -0,0 +1,5 @@
+create table vkr.role
+(
+ id integer primary key generated by default as identity,
+ name text not null unique
+)
diff --git a/server/src/main/resources/db.migration/V00010__Create__user_table.sql b/server/src/main/resources/db.migration/V00010__Create__user_table.sql
new file mode 100644
index 0000000..7a69caf
--- /dev/null
+++ b/server/src/main/resources/db.migration/V00010__Create__user_table.sql
@@ -0,0 +1,12 @@
+create table vkr.user
+(
+ id integer primary key generated by default as identity,
+ login text not null unique,
+ password text not null,
+ full_name text not null,
+ mail text not null unique,
+ number_phone text not null unique,
+ create_at timestamp(6) with time zone not null,
+ update_at timestamp(6) with time zone
+
+)
diff --git a/server/src/main/resources/db.migration/V00020__Create__user_role_table.sql b/server/src/main/resources/db.migration/V00020__Create__user_role_table.sql
new file mode 100644
index 0000000..a4e5da3
--- /dev/null
+++ b/server/src/main/resources/db.migration/V00020__Create__user_role_table.sql
@@ -0,0 +1,9 @@
+create table vkr.user_role
+(
+ user_id integer not null,
+ role_id integer not null,
+ foreign key (user_id) references vkr.user (id)
+ on delete cascade,
+ foreign key (role_id) references vkr.role (id)
+ on delete cascade
+)
diff --git a/server/src/main/resources/db.migration/V00030__Create__diploma_topic_table.sql b/server/src/main/resources/db.migration/V00030__Create__diploma_topic_table.sql
new file mode 100644
index 0000000..03662da
--- /dev/null
+++ b/server/src/main/resources/db.migration/V00030__Create__diploma_topic_table.sql
@@ -0,0 +1,5 @@
+create table vkr.diploma_topic
+(
+ id integer primary key generated by default as identity,
+ name text not null unique
+)
diff --git a/server/src/main/resources/db.migration/V00040__Create__group_table.sql b/server/src/main/resources/db.migration/V00040__Create__group_table.sql
new file mode 100644
index 0000000..0d02d27
--- /dev/null
+++ b/server/src/main/resources/db.migration/V00040__Create__group_table.sql
@@ -0,0 +1,9 @@
+create table vkr.group
+(
+ id integer primary key generated by default as identity,
+ name text not null unique,
+ principal_user_id integer not null,
+ foreign key (principal_user_id) references vkr.user (id)
+ on delete cascade
+
+)
diff --git a/server/src/main/resources/db.migration/V00050__Create__student_table.sql b/server/src/main/resources/db.migration/V00050__Create__student_table.sql
new file mode 100644
index 0000000..73b6224
--- /dev/null
+++ b/server/src/main/resources/db.migration/V00050__Create__student_table.sql
@@ -0,0 +1,24 @@
+create table vkr.student
+(
+ id integer primary key generated by default as identity,
+ form boolean,
+ protection_order integer not null,
+ magistracy text,
+ digital_format_present boolean,
+ mark_comment integer,
+ mark_practice integer,
+ predefence_comment text,
+ normal_control text,
+ anti_plagiarism int,
+ note text,
+ record_book_returned boolean,
+ work text,
+ user_id integer not null,
+ diploma_topic_id integer not null,
+ mentor_user_id integer not null,
+ group_id integer not null,
+ foreign key (user_id) references vkr.user (id) on delete cascade,
+ foreign key (diploma_topic_id) references vkr.diploma_topic (id) on delete cascade,
+ foreign key (mentor_user_id) references vkr.user (id) on delete cascade,
+ foreign key (group_id) references vkr.group (id) on delete cascade
+)
diff --git a/server/src/main/resources/db.migration/V0055__Insert_base_cases_in__diploma_topic.sql b/server/src/main/resources/db.migration/V0055__Insert_base_cases_in__diploma_topic.sql
new file mode 100644
index 0000000..510c7f4
--- /dev/null
+++ b/server/src/main/resources/db.migration/V0055__Insert_base_cases_in__diploma_topic.sql
@@ -0,0 +1,40 @@
+INSERT INTO vkr.diploma_topic (name)
+VALUES ('Мобильное приложение для заказа автозапчастей на платформе ABCP'),
+ ('Подсистема уведомления пользователей для программного комплекса "РискПроф. Учебный центр"'),
+ ('Веб-приложение "Таск-менеджер"'),
+ ('Интернет-магазин электроники'),
+ ('Информационная система для студентов БГТУ в Telegram'),
+ ('Автоматизированная система тестирования сотрудников для определения их компетенций: модуль подготовки тестов и учета результатов'),
+ ('Инструментарий для разработки динамической экосистемы игрового пространства. Подсистема управления поведением внутриигровых агентов'),
+ ('Корпоративное веб-приложение по управлению задачами'),
+ ('Подсистемы визуализации и аналитики для онлайн-сервиса поддержки scrum-доски'),
+ ('Интерактивная система обучения приемам работы с криптовалютой'),
+ ('Автоматизированная система учета деятельности салона по продаже автомобилей'),
+ ('Обучающее мобильное android-приложение'),
+ ('Автоматизированная система учета зуботехнической CAD/CAM лаборатории'),
+ ('Автоматизированная система тестирования сотрудников для определения их компетенций: модуль регистрации и управления кабинетами'),
+ ('Система мониторинга успеваемости обучающихся и посещаемости занятий образовательного учреждения'),
+ ('Мобильное приложение для организации работы репетитора'),
+ ('Модуль "Редактор рисков" для программного комплекса управления профессиональными рисками "1С. ЕОС ПБ"'),
+ ('Онлайн-сервис по продаже товаров (на примере ООО «ЭПК-2»'),
+ ('Веб-сервис по обучению Microsoft Excel'),
+ ('Инструментарий для разработки динамической экосистемы игрового пространства. Подсистема генерации наполнения помещений'),
+ ('Подсистема интеграции с федеральной государственной информационной системой по охране труда для программного комплекса «РискПроф. Учебный центр»'),
+ ('Разработка приложения голосовой авторизации на основе нейросетевого подхода'),
+ ('Автоматизированная система учета деятельности спортивного клуба'),
+ ('Модуль "Специальная оценка условий труда" для программного комплекса управления профессиональными рисками "1С. ЕОС ПБ"'),
+ ('Интернет-магазин по продаже спортивной обуви'),
+ ('Приложение интерактивной исторической карты'),
+ ('Миграция системы учёта с 1С:УТ на 1С:КА'),
+ ('Программный комплекс для автоматизированного проведения опросов и тестирования пользователей'),
+ ('Автоматизированное тестирование программного комплекса «Федеральная государственная информационная система специальной оценки условий труда»'),
+ ('Модуль "Единая информационно-справочная подсистема" для федеральной государственной информационной системы по охране труда'),
+ ('Подсистема сопровождения обучения по охране труда для программного комплекса «РискПроф. Учебный центр»'),
+ ('Программное обеспечение системы обучения и тестирования в мессенджере Telegram'),
+ ('Онлайн-калькулятор индексов влияния в играх взвешенного голосования'),
+ ('Telegram-бот с функциями обработки изображений'),
+ ('Подсистема администрирования автоматизированной системы для проведения платежей и перевода денежных средств'),
+ ('Подсистема администрирования для программного комплекса распределения студентов по руководителям выпускных квалификационных работ'),
+ ('Библиотека контроля качества данных в базах и хранилищах данных для программного комплекса MetaControl'),
+ ('Инструментарий для разработки динамической экосистемы игрового пространства. Подсистема генерации карты помещений'),
+ ('Программная система решения транспортной задачи методом генетического алгоритма для торговой сети');
diff --git a/server/src/main/resources/db.migration/V0060__Insert_base_cases_in__user.sql b/server/src/main/resources/db.migration/V0060__Insert_base_cases_in__user.sql
new file mode 100644
index 0000000..426de77
--- /dev/null
+++ b/server/src/main/resources/db.migration/V0060__Insert_base_cases_in__user.sql
@@ -0,0 +1,96 @@
+INSERT INTO vkr.user (login, password, full_name, mail, number_phone, create_at, update_at)
+VALUES ('akulenko_mikhail', 'password123', 'Акуленко Михаил Вячеславович', 'akulenko.mikhail@example.com',
+ '+79110000001', NOW(), NOW()),
+ ('borovikov_artem', 'password123', 'Боровиков Артём Викторович', 'borovikov.artem@example.com', '+79110000002',
+ NOW(), NOW()),
+ ('bykonya_alexey', 'password123', 'Быконя Алексей Николаевич', 'bykonya.alexey@example.com', '+79110000003',
+ NOW(), NOW()),
+ ('ermakov_alexander', 'password123', 'Ермаков Александр Сергеевич', 'ermakov.alexander@example.com',
+ '+79110000004', NOW(), NOW()),
+ ('zgursky_evgeny', 'password123', 'Згурский Евгений Олегович', 'zgursky.evgeny@example.com', '+79110000005',
+ NOW(), NOW()),
+ ('ibishov_tural', 'password123', 'Ибишов Турал Садай оглы', 'ibishov.tural@example.com', '+79110000006', NOW(),
+ NOW()),
+ ('ignatenko_vladimir', 'password123', 'Игнатенко Владимир Алексеевич', 'ignatenko.vladimir@example.com',
+ '+79110000007', NOW(), NOW()),
+ ('lazukin_danila', 'password123', 'Лазукин Данила Дмитриевич', 'lazukin.danila@example.com', '+79110000008',
+ NOW(), NOW()),
+ ('mitiaev_danila', 'password123', 'Митяев Данила Алексеевич', 'mitiaev.danila@example.com', '+79110000009',
+ NOW(), NOW()),
+ ('neshkov_daniil', 'password123', 'Нешков Даниил Владимирович', 'neshkov.daniil@example.com', '+79110000010',
+ NOW(), NOW()),
+ ('petrov_pavel', 'password123', 'Петров Павел Сергеевич', 'petrov.pavel@example.com', '+79110000011', NOW(),
+ NOW()),
+ ('sazonov_andrey', 'password123', 'Сазонов Андрей Андреевич', 'sazonov.andrey@example.com', '+79110000012',
+ NOW(), NOW()),
+ ('solokhin_maxim', 'password123', 'Солохин Максим Николаевич', 'solokhin.maxim@example.com', '+79110000013',
+ NOW(), NOW()),
+ ('sochinsky_artem', 'password123', 'Сочинский Артем Александрович', 'sochinsky.artem@example.com',
+ '+79110000014', NOW(), NOW()),
+ ('trisvyatsky_kirill', 'password123', 'Трисвятский Кирилл Андреевич', 'trisvyatsky.kirill@example.com',
+ '+79110000015', NOW(), NOW()),
+ ('turov_alexander', 'password123', 'Туров Александр Сергеевич', 'turov.alexander@example.com', '+79110000016',
+ NOW(), NOW()),
+ ('shevtsova_alexandra', 'password123', 'Шевцова Александра Валерьевна', 'shevtsova.alexandra@example.com',
+ '+79110000017', NOW(), NOW()),
+ ('kibalyuk_artem', 'password123', 'Кибалюк Артем Сергеевич', 'kibalyuk.artem@example.com', '+79110000018', NOW(),
+ NOW()),
+ ('shulindin_artem', 'password123', 'Шулындин Артём Андреевич', 'shulindin.artem@example.com', '+79110000019',
+ NOW(), NOW()),
+ ('belyaev_egor', 'password123', 'Беляев Егор Андреевич', 'belyaev.egor@example.com', '+79110000020', NOW(),
+ NOW()),
+ ('berezhnoy_igor', 'password123', 'Бережной Игорь Александрович', 'berezhnoy.igor@example.com', '+79110000021',
+ NOW(), NOW()),
+ ('bogun_pavel', 'password123', 'Богун Павел Сергеевич', 'bogun.pavel@example.com', '+79110000022', NOW(), NOW()),
+ ('vaseykin_nikita', 'password123', 'Васейкин Никита Павлович', 'vaseykin.nikita@example.com', '+79110000023',
+ NOW(), NOW()),
+ ('gomonov_nikita', 'password123', 'Гомонов Никита Алексеевич', 'gomonov.nikita@example.com', '+79110000024',
+ NOW(), NOW()),
+ ('druyan_oleg', 'password123', 'Друян Олег Викторович', 'druyan.oleg@example.com', '+79110000025', NOW(), NOW()),
+ ('ivanov_kirill', 'password123', 'Иванов Кирилл Эдуардович', 'ivanov.kirill@example.com', '+79110000026', NOW(),
+ NOW()),
+ ('ivanova_veronika', 'password123', 'Иванова Вероника Евгеньевна', 'ivanova.veronika@example.com',
+ '+79110000027', NOW(), NOW()),
+ ('izotov_ivan', 'password123', 'Изотов Иван Алексеевич', 'izotov.ivan@example.com', '+79110000028', NOW(),
+ NOW()),
+ ('isakov_zahar', 'password123', 'Исаков Захар Александрович', 'isakov.zahar@example.com', '+79110000029', NOW(),
+ NOW()),
+ ('iskritsky_daniil', 'password123', 'Искрицкий Даниил Павлович', 'iskritsky.daniil@example.com', '+79110000030',
+ NOW(), NOW()),
+ ('linko_daria', 'password123', 'Линько Дарья Андреевна', 'linko.daria@example.com', '+79110000031', NOW(),
+ NOW()),
+ ('logutov_kirill', 'password123', 'Логутов Кирилл Александрович', 'logutov.kirill@example.com', '+79110000032',
+ NOW(), NOW()),
+ ('nekrassov_sergey', 'password123', 'Некрасов Сергей Игоревич', 'nekrassov.sergey@example.com', '+79110000033',
+ NOW(), NOW()),
+ ('sinyagin_ilya', 'password123', 'Синягин Илья Александрович', 'sinyagin.ilya@example.com', '+79110000034',
+ NOW(), NOW()),
+ ('sopriko_daniil', 'password123', 'Соприко Даниил Сергеевич', 'sopriko.daniil@example.com', '+79110000035',
+ NOW(), NOW()),
+ ('turovsky_ivan', 'password123', 'Туровский Иван Алексеевич', 'turovsky.ivan@example.com', '+79110000036', NOW(),
+ NOW()),
+ ('frantsev_sergey', 'password123', 'Францев Сергей Дмитриевич', 'frantsev.sergey@example.com', '+79110000037',
+ NOW(), NOW()),
+ ('chepurnoy_maxim', 'password123', 'Чепурной Максим Романович', 'chepurnoy.maxim@example.com', '+79110000038',
+ NOW(), NOW()),
+ ('schemelinin_dmitry', 'password123', 'Щемелинин Дмитрий Михайлович', 'schemelinin.dmitry@example.com',
+ '+79110000039', NOW(), NOW()),
+ ('bulatitsky_d_i_1', 'password123', 'Булатицкий Д. И.', 'bulatitsky.d.i.1@example.com', '+79110000040', NOW(),
+ NOW()),
+ ('kopeliovich_d_i_1', 'password123', 'Копелиович Д. И.', 'kopeliovich.d.i.1@example.com', '+79110000041', NOW(),
+ NOW()),
+ ('dergachev_k_v', 'password123', 'Дергачев К. В.', 'dergachev.k.v@example.com', '+79110000042', NOW(), NOW()),
+ ('trubakov_e_o', 'password123', 'Трубаков Е. О.', 'trubakov.e.o@example.com', '+79110000043', NOW(), NOW()),
+ ('radchenko_a_o', 'password123', 'Радченко А. О.', 'radchenko.a.o@example.com', '+79110000044', NOW(), NOW()),
+ ('zimin_s_n_1', 'password123', 'Зимин С. Н.', 'zimin.s.n.1@example.com', '+79110000045', NOW(), NOW()),
+ ('koptenok_e_v', 'password123', 'Коптенок Е. В.', 'koptenok.e.v@example.com', '+79110000046', NOW(), NOW()),
+ ('mikhaleva_o_a', 'password123', 'Михалева О. А.', 'mikhaleva.o.a@example.com', '+79110000047', NOW(), NOW()),
+ ('gulakov_k_v', 'password123', 'Гулаков К. В.', 'gulakov.k.v@example.com', '+79110000048', NOW(), NOW()),
+ ('titarev_d_v', 'password123', 'Титарёв Д. В.', 'titarev.d.v@example.com', '+79110000049', NOW(), NOW()),
+ ('izrailev_v_ya_1', 'password123', 'Израилев В. Я.', 'izrailev.v.ya.1@example.com', '+79110000050', NOW(),
+ NOW()),
+ ('podvesovsky_a_g_1', 'password123', 'Подвесовский А. Г.', 'podvesovsky.a.g.1@example.com', '+79110000051',
+ NOW(), NOW()),
+ ('trubakov_a_o', 'password123', 'Трубаков А. О.', 'trubakov.a.o@example.com', '+79110000059',
+ NOW(), NOW()),
+ ('lageriev_d_g', 'password123', 'Лагерев Д. Г.', 'lageriev.d.g@example.com', '+79110000052', NOW(), NOW());
diff --git a/server/src/main/resources/db.migration/V0065__Insert_base_cases_in__group.sql b/server/src/main/resources/db.migration/V0065__Insert_base_cases_in__group.sql
new file mode 100644
index 0000000..bbd2126
--- /dev/null
+++ b/server/src/main/resources/db.migration/V0065__Insert_base_cases_in__group.sql
@@ -0,0 +1,2 @@
+INSERT INTO vkr.group (name ,principal_user_id)
+VALUES('ИВТ-1',40),('ИВТ-2',40);
diff --git a/server/src/main/resources/db.migration/V0070__Insert_base_cases_in__role.sql b/server/src/main/resources/db.migration/V0070__Insert_base_cases_in__role.sql
new file mode 100644
index 0000000..7a4230d
--- /dev/null
+++ b/server/src/main/resources/db.migration/V0070__Insert_base_cases_in__role.sql
@@ -0,0 +1,2 @@
+INSERT INTO vkr.role (name)
+VALUES('Руководитель'),('Куратор'),('Студент');
diff --git a/server/src/main/resources/db.migration/V0075__Insert_base_cases_in__student.sql b/server/src/main/resources/db.migration/V0075__Insert_base_cases_in__student.sql
new file mode 100644
index 0000000..ae326f6
--- /dev/null
+++ b/server/src/main/resources/db.migration/V0075__Insert_base_cases_in__student.sql
@@ -0,0 +1,73 @@
+INSERT INTO vkr.student (form,
+ protection_order,
+ magistracy,
+ digital_format_present,
+ mark_comment,
+ mark_practice,
+ predefence_comment,
+ normal_control,
+ anti_plagiarism,
+ note,
+ record_book_returned,
+ work,
+ user_id,
+ diploma_topic_id,
+ mentor_user_id,
+ group_id)
+VALUES (true, 1100, 'ПРИ, ИВТ или другой вуз', true, 5, 5, 'ок', 'Подписано', 7862, 'Акт о внедрении', true, 'нет', 1,
+ 1, 40, 1),
+ (true, 1110, 'Да, но не уверен, в БГТУ ли', true, 5, 5, 'ок', 'Подписано', 8196, 'Заявка, Акт о внедрении', true,
+ 'ООО "ЦИРОБЗ"', 2, 2, 40, 1),
+ (true, 3500, 'Нет', true, 3, 3, 'Критически низкий уровень. Допущен под ответственность руководителя ВКР',
+ 'Подписано', 7141, 'Иниц', true, 'нет', 3, 3, 41, 1),
+ (true, 1800, 'Да, но не уверен, в БГТУ ли', true, 4, 5, 'Усилить работу', 'Подписано', 5381, 'Иниц', true, 'нет',
+ 4, 4, 42, 1),
+ (true, 2100, 'ИВТ, ПРИ', true, 5, 5, 'ок', 'Подписано', 8146, 'Заявка, Акт о внедрении', true, 'нет', 5, 5, 43,
+ 1),
+ (true, 1100, 'ИВТ, ПРИ', true, 5, 5, 'ок', 'Подписано', 7965, 'Иниц', true, 'нет', 6, 6, 41, 1),
+ (true, 1200, 'нет', true, 5, 4, 'Усилить работу', 'Подписано', 8583, Null, true, 'Газ Энерго Комплект (ГЭК)', 7,
+ 7, 44, 1),
+ (true, 1700, 'Нет', true, 5, 5, 'Критически низкий уровень. Допущен под ответственность руководителя ВКР',
+ 'Подписано', 6647, Null, true, 'нет', 8, 8, 45, 1),
+ (true, 3300, 'ИВТ, ПРИ или другой вуз', true, 5, 5, 'Усилить работу', 'Подписано', 6741,
+ 'Заявка, Акт о внедрении', true, 'нет', 9, 9, 46, 1),
+ (true, 1200, 'ИВТ', true, 5, 5, 'ок', 'Подписано', 7645, 'Заявка, Акт о внедрении', true, 'нет', 10, 10, 40, 1),
+ (true, 3700, 'нет', true, 3, 3, 'Критически низкий уровень. Допущен под ответственность руководителя ВКР', '1',
+ 3093, 'Иниц', true, 'нет', 11, 11, 45, 1),
+ (true, 1900, 'Нет', true, 5, 5, 'ок', 'Подписано', 8175, 'Заявка, Акт о внедрении', true, 'нет', 12, 12, 42, 1),
+ (true, 3200, 'ИВТ', true, 5, 5, 'Усилить работу', 'Подписано', 7805, 'Акт', true, 'нет', 13, 13, 46, 1),
+ (true, 1200, 'ИВТ, ПРИ', true, 4, 4, 'ок', 'рек', 7590, 'Иниц', true, 'нет', 14, 14, 45, 1),
+ (true, 3900, 'нет', true, 5, 5, 'Усилить работу', 'Подписано', 6463, 'Заявка, Акт о внедрении', true, 'нет', 15,
+ 15, 40, 1),
+ (true, 2200, 'ИВТ', true, 5, 5, 'ок', 'Подписано', 7441, Null, true, 'ООО "ЦИРОБЗ"', 16, 16, 44, 1),
+ (true, 1130, 'Нет', true, 5, 4, 'Критически низкий уровень. Допущен под ответственность руководителя ВКР',
+ 'Подписано', 7319, 'Заявка, Акт о внедрении', true, 'нет', 17, 17, 40, 1),
+ (true, 2400, 'ИВТ', true, 4, 5, 'ок', 'Подписано', 6436, Null, true, 'нет', 18, 18, 45, 1),
+ (true, 1600, 'ИВТ', true, 5, 5, 'Усилить работу', 'Подписано', 6227, 'Исслед', true, 'АО "БЭМЗ"', 19, 19, 47, 1),
+ (true, 1400, 'Нет', true, 5, 5, 'ок', 'Подписано', 8935, 'Иниц', true, 'ООО "ЦИРОБЗ"', 20, 20, 44, 2),
+ (true, 2900, 'ИВТ', true, 5, 5, 'ок', 'Подписано', 7971, 'Заявка, Акт о внедрении', true, 'нет', 21, 21, 40, 2),
+ (true, 2600, 'ИВТ, ПРИ', true, 3, 3, 'ок', 'Подписано', 7284, Null, true, 'нет', 22, 22, 48, 2),
+ (true, 3100, 'ИВТ, ПРИ', true, 5, 5, 'Усилить работу', 'Подписано', 4966, 'Заявка, Акт о внедрении', true, 'нет',
+ 23, 23, 45, 2),
+ (true, 3110, 'Нет', true, 5, 5, 'ок', 'Подписано', 7174, Null, true, 'нет', 24, 24, 40, 2),
+ (true, 3800, 'Нет', true, 5, 5, 'ок', 'Подписано', 7233, Null, true, 'нет', 25, 25, 45, 2),
+ (true, 3300, 'ИВТ', true, 5, 5, 'ок', 'Подписано', 7133, Null, true, 'нет', 26, 26, 43, 2),
+ (true, 3130, 'ИВТ', true, 5, 5, 'ок', 'Подписано', 8083, 'Заявка, Акт о внедрении', true, 'нет', 27, 27, 49, 2),
+ (true, 3400, 'Нет', true, 5, 4, 'Критически низкий уровень. Допущен под ответственность руководителя ВКР',
+ 'Подписано', 7968, 'Иниц', true, 'нет', 28, 28, 50, 2),
+ (true, 3120, 'ИВТ или ПРИ', true, 5, 5, 'ок', 'Подписано', 7940, 'Исслед', true, 'ООО "ЦИРОБЗ"', 29, 29, 40, 2),
+ (true, 2800, 'Нет (возможно)', true, 4, 4, 'Усилить работу', 'рек', 6775, 'Заявка, Акт о внедрении', true, 'нет',
+ 30, 30, 40, 2),
+ (true, 2100, 'Нет (возможно)', true, 5, 5, 'ок', 'Подписано', 7637, 'Заявка, Акт о внедрении', true, 'нет', 31,
+ 31, 40, 2),
+ (true, 2700, 'ИВТ', true, 5, 5, 'ок', 'Подписано', 8544, 'Заявка, Акт о внедрении', true, 'нет', 32, 32, 45, 2),
+ (true, 2130, 'ИВТ, ПРИ', true, 5, 5, 'ок', 'Подписано', 7166, 'Заявка, Акт о внедрении', true, 'нет', 33, 33, 51,
+ 2),
+ (true, 2110, 'ИВТ', true, 5, 5, 'ок', 'Подписано', 6075, 'Заявка, Акт о внедрении', true, 'нет', 34, 34, 52, 2),
+ (true, 3100, 'ИВТ', true, 5, 5, 'ок', 'Подписано', 7057, 'Заявка, Акт о внедрении', true, 'нет', 35, 35, 50, 2),
+ (true, 2120, 'В БГТУ на другой кафедре (38.04.01 Экономика или 27.04.05. Инноватика)', true, 5, 5, 'ок',
+ 'Подписано', 7057, 'Заявка, Акт о внедрении', true, 'нет', 36, 36, 51, 2),
+ (true, 2500, 'ИВТ', true, 5, 5, 'ок', 'Подписано', 6583, 'Заявка, Акт о внедрении', true, 'нет', 37, 37, 53, 2),
+ (true, 1300, 'ИВТ, ПРИ', true, 5, 5, 'ок', 'Подписано', 8444, 'Заявка, Акт о внедрении', true, 'нет', 38, 38, 44,
+ 2),
+ (true, 3600, 'ИВТ', true, 5, 5, 'ок', 'Подписано', 7631, 'Заявка, Акт о внедрении', true, 'нет', 39, 39, 45, 2);
diff --git a/server/src/main/resources/db.migration/V0080__Insert_base_cases_in__user_role.sql b/server/src/main/resources/db.migration/V0080__Insert_base_cases_in__user_role.sql
new file mode 100644
index 0000000..f4fda05
--- /dev/null
+++ b/server/src/main/resources/db.migration/V0080__Insert_base_cases_in__user_role.sql
@@ -0,0 +1,55 @@
+INSERT INTO vkr.user_role (user_id, role_id)
+VALUES (1, 3),
+ (2, 3),
+ (3, 3),
+ (4, 3),
+ (5, 3),
+ (6, 3),
+ (7, 3),
+ (8, 3),
+ (9, 3),
+ (10, 3),
+ (11, 3),
+ (12, 3),
+ (13, 3),
+ (14, 3),
+ (15, 3),
+ (16, 3),
+ (17, 3),
+ (18, 3),
+ (19, 3),
+ (20, 3),
+ (21, 3),
+ (22, 3),
+ (23, 3),
+ (24, 3),
+ (25, 3),
+ (26, 3),
+ (27, 3),
+ (28, 3),
+ (29, 3),
+ (30, 3),
+ (31, 3),
+ (32, 3),
+ (33, 3),
+ (34, 3),
+ (35, 3),
+ (36, 3),
+ (37, 3),
+ (38, 3),
+ (39, 3),
+ (40, 1),
+ (41, 1),
+ (42, 1),
+ (43, 1),
+ (44, 1),
+ (45, 1),
+ (46, 1),
+ (47, 1),
+ (48, 1),
+ (49, 1),
+ (50, 1),
+ (51, 1),
+ (52, 1),
+ (53, 1),
+ (40, 2);