Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,7 @@ build/

### VS Code ###
.vscode/

### LOGS ###
./application.log
./hibernate.log
25 changes: 17 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,21 @@
# CaseLabProject
Ссылка на стартовый postman с эндпоинтами для входа/регистарации: https://www.postman.com/case-lab-2023/workspace/team-workspace/collection/30684908-18fb0e09-82af-40ec-b509-59158a984589?action=share&creator=30684908

Когда начинаете выполнять задачу, в google доке напротив неё пишете своё имя.
Ссылка на google документ с ТЗ: https://docs.google.com/document/d/1NoXTgT-kpQUOy9dmZnyT1L4Q3qsXYdHGp5AjlA9WbNE/edit?usp=drivesdk
## Документация

Swagger - http://localhost:8082/api/swagger-ui/index.html
### OpenApiSpecification (Swagger) - (http://localhost:8082/api/swagger-ui/index.html)

Подключиться к БД по данным из application.yaml
- запустить приложение для создания таблиц
- запустить скрипты из resources.sql
- в таблицу ролей добавить ROLE_USER и ROLE_ADMIN
## Для frontend отдела:

### Как запустить локально у себя на пк?

#### 1) Установите Docker и Docker compose.

#### 2) Загрузите себе файл [docker-compose.yml](docker-compose.yml) и перейдите в директорию с ним.

#### 3) В командной строке введите:

```
docker-compose -p case-lab-backend up -d
```

Приложение начнет работать по адресу http://localhost:8082
3,063 changes: 0 additions & 3,063 deletions application.log

This file was deleted.

32 changes: 32 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
version: '3.9'

services:
# Сервис для разворачивания контейнера с базой данных
database:
image: postgres:latest
pull_policy: missing
restart: on-failure
volumes:
- /var/lib/postgresql/data
environment:
- POSTGRES_DB=case_lab_db
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=0000

# Сервис для разворачивания контейнера с приложением
webapi:
image: olegprog2020/case-lab-backend:1.0.0
pull_policy: missing
restart: always
volumes:
- /webapi
ports:
- "8082:8082"
depends_on:
- database
environment:
- SPRING_DATASOURCE_URL=jdbc:postgresql://database:5432/case_lab_db
- SPRING_DATASOURCE_USERNAME=postgres
- SPRING_DATASOURCE_PASSWORD=0000
- JWT_SECRET=984hg493gh0439rthr0429uruj2309yh937gc763fe87t3f89723gf
- JWT_LIFETIME=30m
102 changes: 0 additions & 102 deletions hibernate.log

This file was deleted.

7 changes: 6 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
</parent>
<groupId>com.example</groupId>
<artifactId>Case-Lab-Project</artifactId>
<version>0.0.1-SNAPSHOT</version>
<version>1.0.0</version>
<name>Case Lab Project</name>
<description>Case Lab Project</description>
<properties>
Expand Down Expand Up @@ -91,6 +91,11 @@
<artifactId>h2</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
<version>4.25.0</version>
</dependency>

<!--JWT-->
<dependency>
Expand Down
17 changes: 8 additions & 9 deletions src/main/resources/application.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,34 +3,33 @@ server:
servlet:
context-path: /api
jwt:
secret: 984hg493gh0439rthr0429uruj2309yh937gc763fe87t3f89723gf
lifetime: 30m
secret: ${JWT_SECRET:984hg493gh0439rthr0429uruj2309yh937gc763fe87t3f89723gf}
lifetime: ${JWT_LIFETIME:30m}
spring:
output:
ansi:
enabled: always
mvc:
pathmatch:
matching-strategy: ant_path_matcher
sql:
init:
mode: always
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://localhost:5432/CaseLab
username: root
password: 123
url: ${SPRING_DATASOURCE_URL:jdbc:postgresql://localhost:5432/CaseLab}
username: ${SPRING_DATASOURCE_USERNAME:root}
password: ${SPRING_DATASOURCE_PASSWORD:123}
jpa:
openInView: true
show-sql: false
generateDdl: true
generateDdl: false
database: postgresql
databasePlatform: org.hibernate.dialect.PostgreSQLDialect
properties:
hibernate:
enable_lazy_load_no_trans: true
main:
allow-circular-references: true
liquibase:
enabled: true
springdoc:
swagger-ui:
path: /swagger-ui.html
Expand Down
10 changes: 10 additions & 0 deletions src/main/resources/db/changelog/db.changelog-master.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
databaseChangeLog:
- include:
file: ./migrations/db.changelog-create-tables.sql
relativeToChangelogFile: true
- include:
file: ./migrations/db.changelog-create-check-constraints.sql
relativeToChangelogFile: true
- include:
file: ./migrations/db.changelog-insert-roles.sql
relativeToChangelogFile: true
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
-- changeset minen: 34

ALTER TABLE "department" ADD CONSTRAINT record_state_check CHECK (record_state IN ('DELETED', 'ACTIVE'));
ALTER TABLE "users" ADD CONSTRAINT record_state_check CHECK (record_state IN ('DELETED', 'ACTIVE'));
ALTER TABLE "document_constructor_type" ADD CONSTRAINT record_state_check CHECK (record_state IN ('DELETED', 'ACTIVE'));
ALTER TABLE "application" ADD CONSTRAINT record_state_check CHECK (record_state IN ('DELETED', 'ACTIVE'));
ALTER TABLE "application_item" ADD CONSTRAINT record_state_check CHECK (record_state IN ('DELETED', 'ACTIVE'));
ALTER TABLE "document" ADD CONSTRAINT record_state_check CHECK (record_state IN ('DELETED', 'ACTIVE'));

ALTER TABLE "application" ADD CONSTRAINT application_status_check CHECK (application_status IN ('WAITING_FOR_ANSWER', 'ACCEPTED', 'DENIED', 'DRAW', 'NOT_ENOUGH_VOTES'));

ALTER TABLE "application_item" ADD CONSTRAINT application_item_status_check CHECK (status IN ('ACCEPTED', 'DENIED', 'PENDING'));
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
-- liquibase formatted sql

-- changeset minen:1700080749857-1
CREATE TABLE "application" ("id" BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL, "application_status" VARCHAR(255), "creation_date" TIMESTAMP WITHOUT TIME ZONE, "deadline_date" TIMESTAMP WITHOUT TIME ZONE, "name" VARCHAR(255), "record_state" VARCHAR(255), "result_date" TIMESTAMP WITHOUT TIME ZONE, "creator_id" BIGINT, "document_id" BIGINT, CONSTRAINT "application_pkey" PRIMARY KEY ("id"));

-- changeset minen:1700080749857-2
CREATE TABLE "application_item" ("id" BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL, "comment" VARCHAR(255), "create_time" TIMESTAMP WITHOUT TIME ZONE, "record_state" VARCHAR(255), "status" VARCHAR(255), "vote_time" TIMESTAMP WITHOUT TIME ZONE, "application_id" BIGINT, "department_id" BIGINT, "user_id" BIGINT, CONSTRAINT "application_item_pkey" PRIMARY KEY ("id"));

-- changeset minen:1700080749857-3
CREATE TABLE "auth_user_info" ("id" BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL, "email" VARCHAR(255), "password" VARCHAR(255), "user_id" BIGINT, CONSTRAINT "auth_user_info_pkey" PRIMARY KEY ("id"));

-- changeset minen:1700080749857-4
CREATE TABLE "department" ("id" BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL, "name" VARCHAR(255), "record_state" VARCHAR(255), "serial_key" VARCHAR(255), CONSTRAINT "department_pkey" PRIMARY KEY ("id"));

-- changeset minen:1700080749857-5
CREATE TABLE "document" ("id" BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL, "creation_date" TIMESTAMP WITHOUT TIME ZONE, "name" VARCHAR(255), "record_state" VARCHAR(255), "update_date" TIMESTAMP WITHOUT TIME ZONE, "application_id" BIGINT, "user_id" BIGINT, "document_constructor_type_id" BIGINT, CONSTRAINT "document_pkey" PRIMARY KEY ("id"));

-- changeset minen:1700080749857-6
CREATE TABLE "document_constructor_type" ("id" BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL, "name" VARCHAR(255), "prefix" VARCHAR(255), "record_state" VARCHAR(255), CONSTRAINT "document_constructor_type_pkey" PRIMARY KEY ("id"));

-- changeset minen:1700080749857-7
CREATE TABLE "field" ("id" BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL, "name" VARCHAR(255), "document_constructor_type_id" BIGINT, CONSTRAINT "field_pkey" PRIMARY KEY ("id"));

-- changeset minen:1700080749857-8
CREATE TABLE "file" ("id" BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL, "name" VARCHAR(255), "path" VARCHAR(255), "size" BIGINT, "type" VARCHAR(255), "document_id" BIGINT, CONSTRAINT "file_pkey" PRIMARY KEY ("id"));

-- changeset minen:1700080749857-9
CREATE TABLE "personal_user_info" ("id" BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL, "birth_date" date, "first_name" VARCHAR(255), "last_name" VARCHAR(255), "patronymic" VARCHAR(255), "user_id" BIGINT, CONSTRAINT "personal_user_info_pkey" PRIMARY KEY ("id"));

-- changeset minen:1700080749857-10
CREATE TABLE "roles" ("id" INTEGER GENERATED BY DEFAULT AS IDENTITY NOT NULL, "name" VARCHAR(255), CONSTRAINT "roles_pkey" PRIMARY KEY ("id"));

-- changeset minen:1700080749857-11
CREATE TABLE "users" ("id" BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL, "position" VARCHAR(255), "record_state" VARCHAR(255), "username" VARCHAR(255), "department_id" BIGINT, CONSTRAINT "users_pkey" PRIMARY KEY ("id"));

-- changeset minen:1700080749857-12
ALTER TABLE "department" ADD CONSTRAINT "uk_gkrfp4eq0fpuprjhcfr6ebepa" UNIQUE ("serial_key");

-- changeset minen:1700080749857-13
ALTER TABLE "document_constructor_type" ADD CONSTRAINT "uk_hn3pboxeicghr1yr5fjdpkxgb" UNIQUE ("name");

-- changeset minen:1700080749857-14
ALTER TABLE "users" ADD CONSTRAINT "uk_r43af9ap4edm43mmtq01oddj6" UNIQUE ("username");

-- changeset minen:1700080749857-15
CREATE TABLE "document_field_value" ("document_id" BIGINT NOT NULL, "value" VARCHAR(255), "field_id" BIGINT NOT NULL, CONSTRAINT "document_field_value_pkey" PRIMARY KEY ("document_id", "field_id"));

-- changeset minen:1700080749857-16
CREATE TABLE "users_roles" ("user_id" BIGINT NOT NULL, "roles_id" INTEGER NOT NULL);

-- changeset minen:1700080749857-17
ALTER TABLE "application_item" ADD CONSTRAINT "fk2kbwiy41en330c4g2klf5k8cp" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON UPDATE NO ACTION ON DELETE NO ACTION;

-- changeset minen:1700080749857-18
ALTER TABLE "users_roles" ADD CONSTRAINT "fk2o0jvgh89lemvvo17cbqvdxaa" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON UPDATE NO ACTION ON DELETE NO ACTION;

-- changeset minen:1700080749857-19
ALTER TABLE "document" ADD CONSTRAINT "fk44725n9linud4cn2b1rsmavia" FOREIGN KEY ("application_id") REFERENCES "application" ("id") ON UPDATE NO ACTION ON DELETE NO ACTION;

-- changeset minen:1700080749857-20
ALTER TABLE "application_item" ADD CONSTRAINT "fk6bx6cfj8x3j56iyx29xuo04pg" FOREIGN KEY ("department_id") REFERENCES "department" ("id") ON UPDATE NO ACTION ON DELETE NO ACTION;

-- changeset minen:1700080749857-21
ALTER TABLE "field" ADD CONSTRAINT "fk9lltoi3ln21d8vwdtqtsh0hip" FOREIGN KEY ("document_constructor_type_id") REFERENCES "document_constructor_type" ("id") ON UPDATE NO ACTION ON DELETE NO ACTION;

-- changeset minen:1700080749857-22
ALTER TABLE "users_roles" ADD CONSTRAINT "fka62j07k5mhgifpp955h37ponj" FOREIGN KEY ("roles_id") REFERENCES "roles" ("id") ON UPDATE NO ACTION ON DELETE NO ACTION;

-- changeset minen:1700080749857-23
ALTER TABLE "application_item" ADD CONSTRAINT "fkctur2ak1b9qdajbydimjuhtui" FOREIGN KEY ("application_id") REFERENCES "application" ("id") ON UPDATE NO ACTION ON DELETE NO ACTION;

-- changeset minen:1700080749857-24
ALTER TABLE "users" ADD CONSTRAINT "fkfi832e3qv89fq376fuh8920y4" FOREIGN KEY ("department_id") REFERENCES "department" ("id") ON UPDATE NO ACTION ON DELETE NO ACTION;

-- changeset minen:1700080749857-25
ALTER TABLE "application" ADD CONSTRAINT "fki95jn4ckqwei6b60ul2i4guqa" FOREIGN KEY ("document_id") REFERENCES "document" ("id") ON UPDATE NO ACTION ON DELETE NO ACTION;

-- changeset minen:1700080749857-26
ALTER TABLE "application" ADD CONSTRAINT "fkisve5ylfrsd9grn23dsjobldx" FOREIGN KEY ("creator_id") REFERENCES "users" ("id") ON UPDATE NO ACTION ON DELETE NO ACTION;

-- changeset minen:1700080749857-27
ALTER TABLE "document" ADD CONSTRAINT "fkjj68k88ipvowy4iyp6u0hmhto" FOREIGN KEY ("document_constructor_type_id") REFERENCES "document_constructor_type" ("id") ON UPDATE NO ACTION ON DELETE NO ACTION;

-- changeset minen:1700080749857-28
ALTER TABLE "document" ADD CONSTRAINT "fkm19xjdnh3l6aueyrpm1705t52" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON UPDATE NO ACTION ON DELETE NO ACTION;

-- changeset minen:1700080749857-29
ALTER TABLE "document_field_value" ADD CONSTRAINT "fkmknk9ujo0crfl7ra3h317224q" FOREIGN KEY ("field_id") REFERENCES "field" ("id") ON UPDATE NO ACTION ON DELETE NO ACTION;

-- changeset minen:1700080749857-30
ALTER TABLE "document_field_value" ADD CONSTRAINT "fkp8w74cynljpis1wmw1r6es8nd" FOREIGN KEY ("document_id") REFERENCES "document" ("id") ON UPDATE NO ACTION ON DELETE NO ACTION;

-- changeset minen:1700080749857-31
ALTER TABLE "file" ADD CONSTRAINT "fkqo5bd7l92rst6ysfqvep4uitu" FOREIGN KEY ("document_id") REFERENCES "document" ("id") ON UPDATE NO ACTION ON DELETE NO ACTION;

-- changeset minen:1700080749857-32
ALTER TABLE "auth_user_info" ADD CONSTRAINT "fkqy9huojykj3ny3cij36a8i3ko" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON UPDATE NO ACTION ON DELETE NO ACTION;

-- changeset minen:1700080749857-33
ALTER TABLE "personal_user_info" ADD CONSTRAINT "fkrxeurxh5pjpn92a98owxd2lj0" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON UPDATE NO ACTION ON DELETE NO ACTION;

Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
-- changeset minen: 35

INSERT INTO roles (name)
VALUES ('ROLE_ADMIN'),
('ROLE_USER');
15 changes: 0 additions & 15 deletions src/main/resources/sql/Check.sql

This file was deleted.

3 changes: 0 additions & 3 deletions src/main/resources/sql/data.sql

This file was deleted.