diff --git a/.env b/.env new file mode 100644 index 0000000..3c5d42d --- /dev/null +++ b/.env @@ -0,0 +1,5 @@ +PG_CONTAINER_NAME='postgres-service' +POSTGRES_USER='tech-services' +POSTGRES_PASSWORD='password' +POSTGRES_DB='tech-services' +PGDATA='/data/tech-services' \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml index 768c213..f7604da 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -6,7 +6,31 @@ services: ports: - 80:8181 -# перед сборкой контенера необходимо пересобрать каждый сервис: + postgres-service: + build: + context: postgres-service/ + # dockerfile: dockerfile + image: "postgres-service" + container_name: ${PG_CONTAINER_NAME} + environment: + POSTGRES_DB: ${POSTGRES_DB} + POSTGRES_USER: ${POSTGRES_USER} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + PGDATA: ${PGDATA} + volumes: + - db_tech-services:/data/postgres-tech-services + ports: + - "5432:5432" + restart: unless-stopped +volumes: + db_tech-services: + external: true + +# Создание тома для базы данных +# docker volume create db_tech-services + +# перед сборкой контенера необходимо пересобрать каждый сервис, +# выполнить в соответствующем каталоге для каждого java-сервиса # mvn clean package # Сборка образа: diff --git a/out/resource-service-api/src/main/docs/erd/ERD.png b/out/resource-service-api/src/main/docs/erd/ERD.png new file mode 100644 index 0000000..d5a29c1 Binary files /dev/null and b/out/resource-service-api/src/main/docs/erd/ERD.png differ diff --git a/out/resource-service-api/src/main/docs/erd/ERD.svg b/out/resource-service-api/src/main/docs/erd/ERD.svg new file mode 100644 index 0000000..0090803 --- /dev/null +++ b/out/resource-service-api/src/main/docs/erd/ERD.svg @@ -0,0 +1 @@ +Entity Relationship Diagram (ERD): education-records (учет обучений)Программы обученияid: SERIAL >>"Идентификатор"name: VARCHAR[200] >>"Наименование программы"lenght: TIME >>"Продолжительность программы обучения"study_direction: VARCHAR[80] >>"Обязательное или производственное обучения"price: VARCHAR[80] >>"Стоимость обучения"cretarea_id: INTEGER >>"Идентификатор направления обучения"program_cretareasid: SERIAL >>"Идентификатор"name: VARCHAR[200] >>"Наименование направления обучения"name_short: VARCHAR[200] >>"Сокращенное наименование направления обучения"Преподавателиid: SERIAL >>"Идентификатор"first_name: VARCHAR[80] >>"Имя"second_name: VARCHAR[80] >>"Отчество"last_name: VARCHAR[80] >>"Фамилия"tabel_number: INTEGER >>"Табельный номер"snils: VARCHAR[80] >>"СНИЛС"Курсid: SERIAL >>"Идентификатор"place: VARCHAR[10] >>"Место проведения занятий"start_date: DATE >>"Дата начала обучения"protocol_date: DATE >>"Дата протокола"protocol_number: VARCHAR[80] >>"Номер протокола"report_period: VARCHAR[80] >>"Отчетный период"teacher_id: VARCHAR[80] >>"Идентификатор преподавателя"programm_id: INTEGER >>"Идентификатор программы обучения"building_object_id: INTEGER >>"Идентификатор объекта строительства"Объекты строительстваid: SERIAL >>"Идентификатор"name_short: VARCHAR[80] >>"Сокращенное наименование"name_full: VARCHAR[80] >>"Полное наименование"code_full: VARCHAR[80] >>"Код проекта"code_short: VARCHAR[80] >>"Сокращенный код проекта"ПСКid: SERIAL >>"Идентификатор"ownership: VARCHAR[10] >>"Форма собственности ПСК"name_full: VARCHAR[120] >>"Наименование ПСК полное"name_short: VARCHAR[60] >>"Наименование ПСК сокращенное"type: VARCHAR[60] >>"Вид ПСК"inn: VARCHAR[60] >>"ИНН ПСК"Студентыid: SERIAL >>"Идентификатор"first_name: VARCHAR[80] >>"Имя обучающегося"second_name: VARCHAR[80] >>"Отчество обучающегося"last_name: VARCHAR[80] >>"Фамилия обучающегося"profession: VARCHAR[80] >>"Профессия обучающегося"category: VARCHAR[80] >>"Категория обучающегося"direction: VARCHAR[80] >>"Структурное подразделение"snils: VARCHAR[20] >>"СНИЛС"berth: DATE >>"Дата рождения"sitezenship: VARCHAR[30] >>"Гражданство"sex: VARCHAR[30] >>"Пол"psk_id: INTEGER >>"Данные о ПСК"aside_reestrdocument_type: VARCHAR[20] >>"Наименование документа о образовании"document_sery: VARCHAR[20] >>"Серия документа о образовании"document_number: VARCHAR[20] >>"Номер документа о образовании"document_reg_number: VARCHAR[20]>>"Регистрационный номер документа о образовании"document_date: DATE >>"Дата выдачи документа о образовании"first_name: VARCHAR[80] >>"Имя по докумету об образовании"second_name: VARCHAR[80] >>"Отчество по докумету об образовании"last_name: VARCHAR[80] >>"Фамилия по докумету об образовании"profession: VARCHAR[80] >>"Профессия докумету об образовании"student_id: INTEGER >>"Идентификатор студента"Реестр обученныхid: LONGSERIAL >>"Идентификатор"certificate_number: VARCHAR[80] >>"Номер удостоверения"frdo_number: VARCHAR[80] >>"Номер по ФРДО"eisot_number: VARCHAR[80] >>"Номер по ЕИСОТ"ones: INTEGER >>"Единички"courses_id: INTEGER >>"Данные о Курсе"student_id: INTEGER >>"Данные о студенте" \ No newline at end of file diff --git a/postgres-service/dockerfile b/postgres-service/dockerfile new file mode 100644 index 0000000..3b2b751 --- /dev/null +++ b/postgres-service/dockerfile @@ -0,0 +1,7 @@ +FROM postgres:latest + +LABEL author="esoe" +LABEL description="postgres image for tech-services" +LABEL version="1.0" + +COPY *.sql /docker-entrypoint-initdb.d/ \ No newline at end of file diff --git a/resource-service-api/src/main/docs/erd/erd.puml b/resource-service-api/src/main/docs/erd/erd.puml index d970459..a84a4b3 100644 --- a/resource-service-api/src/main/docs/erd/erd.puml +++ b/resource-service-api/src/main/docs/erd/erd.puml @@ -4,12 +4,21 @@ !define column(x) <&media-record> x !define table(x) entity x << (T, white) >> +' Подключаемые файлы: !include erd-course.puml !include erd-student.puml -title "Entity Relationship Diagram (ERD): education-records (учет обучений)" ' left to right direction +title "Entity Relationship Diagram (ERD): education-records (учет обучений)" + +' Памятка +' 1. Предусмотреть возможность внесения сведений об обучении по курсу отВ: +' - одна программа предполагает наличие 7 - 9 записей в реестре +' - нет возможности по реестру понять, какие в итоге программы были прочитаны +' 2. Предусмотреть возможность сопоставления должности и программы, для +' - назначения тестирований на платформе ЕИСОТ + ' Исходные документы entity "Реестр обученных" as repository diff --git a/resource-service-api/src/main/resources/static/content/images/ERD.png b/resource-service-api/src/main/resources/static/content/images/ERD.png new file mode 100644 index 0000000..d5a29c1 Binary files /dev/null and b/resource-service-api/src/main/resources/static/content/images/ERD.png differ diff --git a/resource-service-api/src/main/resources/static/content/images/ERD.svg b/resource-service-api/src/main/resources/static/content/images/ERD.svg new file mode 100644 index 0000000..0090803 --- /dev/null +++ b/resource-service-api/src/main/resources/static/content/images/ERD.svg @@ -0,0 +1 @@ +Entity Relationship Diagram (ERD): education-records (учет обучений)Программы обученияid: SERIAL >>"Идентификатор"name: VARCHAR[200] >>"Наименование программы"lenght: TIME >>"Продолжительность программы обучения"study_direction: VARCHAR[80] >>"Обязательное или производственное обучения"price: VARCHAR[80] >>"Стоимость обучения"cretarea_id: INTEGER >>"Идентификатор направления обучения"program_cretareasid: SERIAL >>"Идентификатор"name: VARCHAR[200] >>"Наименование направления обучения"name_short: VARCHAR[200] >>"Сокращенное наименование направления обучения"Преподавателиid: SERIAL >>"Идентификатор"first_name: VARCHAR[80] >>"Имя"second_name: VARCHAR[80] >>"Отчество"last_name: VARCHAR[80] >>"Фамилия"tabel_number: INTEGER >>"Табельный номер"snils: VARCHAR[80] >>"СНИЛС"Курсid: SERIAL >>"Идентификатор"place: VARCHAR[10] >>"Место проведения занятий"start_date: DATE >>"Дата начала обучения"protocol_date: DATE >>"Дата протокола"protocol_number: VARCHAR[80] >>"Номер протокола"report_period: VARCHAR[80] >>"Отчетный период"teacher_id: VARCHAR[80] >>"Идентификатор преподавателя"programm_id: INTEGER >>"Идентификатор программы обучения"building_object_id: INTEGER >>"Идентификатор объекта строительства"Объекты строительстваid: SERIAL >>"Идентификатор"name_short: VARCHAR[80] >>"Сокращенное наименование"name_full: VARCHAR[80] >>"Полное наименование"code_full: VARCHAR[80] >>"Код проекта"code_short: VARCHAR[80] >>"Сокращенный код проекта"ПСКid: SERIAL >>"Идентификатор"ownership: VARCHAR[10] >>"Форма собственности ПСК"name_full: VARCHAR[120] >>"Наименование ПСК полное"name_short: VARCHAR[60] >>"Наименование ПСК сокращенное"type: VARCHAR[60] >>"Вид ПСК"inn: VARCHAR[60] >>"ИНН ПСК"Студентыid: SERIAL >>"Идентификатор"first_name: VARCHAR[80] >>"Имя обучающегося"second_name: VARCHAR[80] >>"Отчество обучающегося"last_name: VARCHAR[80] >>"Фамилия обучающегося"profession: VARCHAR[80] >>"Профессия обучающегося"category: VARCHAR[80] >>"Категория обучающегося"direction: VARCHAR[80] >>"Структурное подразделение"snils: VARCHAR[20] >>"СНИЛС"berth: DATE >>"Дата рождения"sitezenship: VARCHAR[30] >>"Гражданство"sex: VARCHAR[30] >>"Пол"psk_id: INTEGER >>"Данные о ПСК"aside_reestrdocument_type: VARCHAR[20] >>"Наименование документа о образовании"document_sery: VARCHAR[20] >>"Серия документа о образовании"document_number: VARCHAR[20] >>"Номер документа о образовании"document_reg_number: VARCHAR[20]>>"Регистрационный номер документа о образовании"document_date: DATE >>"Дата выдачи документа о образовании"first_name: VARCHAR[80] >>"Имя по докумету об образовании"second_name: VARCHAR[80] >>"Отчество по докумету об образовании"last_name: VARCHAR[80] >>"Фамилия по докумету об образовании"profession: VARCHAR[80] >>"Профессия докумету об образовании"student_id: INTEGER >>"Идентификатор студента"Реестр обученныхid: LONGSERIAL >>"Идентификатор"certificate_number: VARCHAR[80] >>"Номер удостоверения"frdo_number: VARCHAR[80] >>"Номер по ФРДО"eisot_number: VARCHAR[80] >>"Номер по ЕИСОТ"ones: INTEGER >>"Единички"courses_id: INTEGER >>"Данные о Курсе"student_id: INTEGER >>"Данные о студенте" \ No newline at end of file diff --git a/resource-service-api/src/main/resources/static/content/md/hello.md b/resource-service-api/src/main/resources/static/content/md/hello.md index 853a52b..b36eb66 100644 --- a/resource-service-api/src/main/resources/static/content/md/hello.md +++ b/resource-service-api/src/main/resources/static/content/md/hello.md @@ -1,9 +1,28 @@ # RESOURCE-SERVICE-API : HELLO.MD -# Структура базы данных сервиса : SCHEME -## TABLE N1: # Описание api -## /hello +## domain:port/hello Возвращает текущую страницу описания сервиса -## /api/content - Возвращает данные таблиц в *.xml формате \ No newline at end of file + +## domain:port/content/* + статический контент сервиса, + вспомогательные файлы для оформления или наполнения страниц + +## domain:port/api/content + Возвращает данные таблиц в *.xml формате + +# Структура базы данных сервиса : SCHEME + +![image entity relationship diagram](content/images/ERD.svg "entity relationship diagram") + +## Памятка + 1. Предусмотреть возможность внесения сведений об обучении по курсу "Охрана труда, пункт В" (отВ): + - одна программа предполагает наличие от 7-ми до 9-ти записей в реестре + - нет возможности по реестру понять, какие в итоге подпункты были включены в протокол + - нет возможности сгенерировать протокол на основании внесенных в реестр данных + 2. Предусмотреть возможность сопоставления должности и программы, для + - назначения тестирований на платформе ЕИСОТ + 3. Подключить контейнер postgres к микросервисам + + +