@ -0,0 +1,85 @@
@@ -0,0 +1,85 @@
|
||||
@startuml |
||||
left to right direction |
||||
actor "Пользователь" as user |
||||
note top of user : Основной пользователь приложения - обучаемый |
||||
actor "Администратор" as admin |
||||
note top of admin : Администратор учебного центра (загрузка контента) |
||||
actor "Монитор" as monitor |
||||
note top of monitor : Заказчик, проверяющий результаты обучений и тестирований |
||||
|
||||
rectangle exam-service { |
||||
usecase "Создание курса" as courseCreate |
||||
usecase "Создание теста" as testCreate |
||||
courseCreate <-- admin |
||||
testCreate <-- admin |
||||
|
||||
usecase "Назначение задания" as target |
||||
target <-- admin |
||||
|
||||
usecase "Подробный просмотр результатов" as resultsView |
||||
monitor --> resultsView |
||||
|
||||
usecase "Авторизация" as auth |
||||
rectangle "Авторизация" as examServiceAuth { |
||||
usecase "Внесение сведений об организации" as organization |
||||
usecase "Внесение сведений о должности" as position |
||||
usecase "внесение кода действующей учетной записи" as code35 |
||||
auth ..> organization |
||||
auth ..> position |
||||
auth ..> code35 |
||||
} |
||||
|
||||
usecase "Просмотр перечня доступных курсов" as task |
||||
usecase "Просмотр статусов о прохождении курса" as status |
||||
usecase "Изучение контента курса" as learn |
||||
rectangle "Обучение" as examServiceLearn { |
||||
usecase "Просмотр текста" as text |
||||
usecase "Скачивание документов" as doc |
||||
usecase "Просмотр изображений" as image |
||||
usecase "Просмотр видео" as video |
||||
learn ..> text |
||||
learn ..> doc |
||||
learn ..> image |
||||
learn ..> video |
||||
|
||||
text <.. courseCreate |
||||
doc <.. courseCreate |
||||
image <.. courseCreate |
||||
video <.. courseCreate |
||||
} |
||||
|
||||
usecase "Прохождение проверки знаний" as test |
||||
rectangle "Проверка знаний" as examServiceTest { |
||||
usecase "Просмотр вопросов и доступных ответов" as quiz |
||||
usecase "Выбор ответов" as answer |
||||
usecase "Отправка ответов в базу" as postAttampt |
||||
test ..> quiz |
||||
test ..> answer |
||||
test ..> postAttampt |
||||
|
||||
quiz <.. testCreate |
||||
answer <.. testCreate |
||||
postAttampt <.. testCreate |
||||
} |
||||
|
||||
user --> auth |
||||
user --> task |
||||
user --> learn |
||||
user --> test |
||||
user --> status |
||||
monitor --> status |
||||
|
||||
examServiceTest <.. target |
||||
examServiceLearn <.. target |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
} |
||||
|
||||
@enduml |
@ -0,0 +1,28 @@
@@ -0,0 +1,28 @@
|
||||
components: |
||||
schemas: |
||||
position: |
||||
type: object |
||||
required: |
||||
- id |
||||
- name |
||||
- organization |
||||
properties: |
||||
id: |
||||
type: integer |
||||
name: |
||||
type: string |
||||
organization: |
||||
type: object |
||||
properties: |
||||
id: |
||||
type: integer |
||||
organization: |
||||
type: object |
||||
required: |
||||
- id |
||||
- name |
||||
properties: |
||||
id: |
||||
type: integer |
||||
name: |
||||
type: string |
@ -0,0 +1,9 @@
@@ -0,0 +1,9 @@
|
||||
openapi: '3.0.3' |
||||
info: |
||||
title: exam-api |
||||
description: API for exam |
||||
termsOfService: 'http://localhost:100/hello' |
||||
version: '1.0' |
||||
servers: |
||||
- url: http://localhost:100 |
||||
|
@ -0,0 +1,45 @@
@@ -0,0 +1,45 @@
|
||||
openapi: '3.0.3' |
||||
info: |
||||
title: exam-api |
||||
description: API for exam |
||||
termsOfService: 'http://localhost:100/hello' |
||||
version: '1.0' |
||||
servers: |
||||
- url: http://localhost:100 |
||||
paths: |
||||
/hello: |
||||
get: |
||||
responses: |
||||
'200': |
||||
description: OK |
||||
/api/v1/organizations: |
||||
get: |
||||
responses: |
||||
'200': |
||||
description: OK |
||||
content: |
||||
application/json: |
||||
schema: |
||||
$ref: "./components.yaml#/components/schemas/organization" |
||||
description: Get all organizations |
||||
post: |
||||
summary: repo.createOrganization() Возвращает полный список организаци в базе |
||||
description: Создание новой должности |
||||
requestBody: |
||||
content: |
||||
application/json: |
||||
schema: |
||||
type: object |
||||
required: |
||||
- name |
||||
properties: |
||||
name: |
||||
type: string |
||||
responses: |
||||
'200': |
||||
description: OK |
||||
content: |
||||
application/json: |
||||
schema: |
||||
$ref: "./components.yaml#/components/schemas/organization" |
||||
|
@ -0,0 +1,43 @@
@@ -0,0 +1,43 @@
|
||||
package gsp.technologies.main.api.organization; |
||||
|
||||
import org.slf4j.Logger; |
||||
import org.slf4j.LoggerFactory; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.http.HttpStatus; |
||||
import org.springframework.http.MediaType; |
||||
import org.springframework.http.ResponseEntity; |
||||
import org.springframework.web.bind.annotation.CrossOrigin; |
||||
import org.springframework.web.bind.annotation.GetMapping; |
||||
import org.springframework.web.bind.annotation.PostMapping; |
||||
import org.springframework.web.bind.annotation.RequestBody; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
import gsp.technologies.main.api.position.PositionEntity; |
||||
|
||||
@RestController |
||||
@RequestMapping(path = "/api/v1/organizations") |
||||
public class OrganizationController { |
||||
private static final Logger log = LoggerFactory.getLogger(OrganizationController.class); |
||||
|
||||
@Autowired |
||||
private OrganizationRepository organizationRepo; |
||||
|
||||
@CrossOrigin |
||||
@GetMapping("") |
||||
public ResponseEntity<?> getOrganizations() { |
||||
log.info("GET /organizations"); |
||||
return new ResponseEntity<>(organizationRepo.findAll(), HttpStatus.OK); |
||||
} |
||||
|
||||
@CrossOrigin |
||||
@PostMapping(path = "", |
||||
consumes = MediaType.APPLICATION_JSON_VALUE, |
||||
produces = MediaType.APPLICATION_JSON_VALUE) |
||||
public ResponseEntity<?> saveOrganization(@RequestBody OrganizationEntity organization) { |
||||
log.info("POST /organization, organization: {}", organization); |
||||
organizationRepo.save(organization); |
||||
return new ResponseEntity<>(organization, HttpStatus.CREATED); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,22 @@
@@ -0,0 +1,22 @@
|
||||
package gsp.technologies.main.api.organization; |
||||
|
||||
import jakarta.persistence.Entity; |
||||
import jakarta.persistence.GeneratedValue; |
||||
import jakarta.persistence.GenerationType; |
||||
import jakarta.persistence.Id; |
||||
import lombok.AllArgsConstructor; |
||||
import lombok.Builder; |
||||
import lombok.Data; |
||||
import lombok.NoArgsConstructor; |
||||
|
||||
@Data |
||||
@AllArgsConstructor |
||||
@NoArgsConstructor |
||||
@Builder |
||||
@Entity |
||||
public class OrganizationEntity { |
||||
@Id |
||||
@GeneratedValue(strategy=GenerationType.AUTO) |
||||
private Long id; |
||||
private String name; //наименование организации
|
||||
} |
@ -0,0 +1,9 @@
@@ -0,0 +1,9 @@
|
||||
package gsp.technologies.main.api.organization; |
||||
|
||||
import org.springframework.data.jpa.repository.JpaRepository; |
||||
import org.springframework.stereotype.Repository; |
||||
|
||||
@Repository |
||||
public interface OrganizationRepository extends JpaRepository<OrganizationEntity, Long> { |
||||
|
||||
} |
@ -0,0 +1,12 @@
@@ -0,0 +1,12 @@
|
||||
package gsp.technologies.main.api.organization; |
||||
|
||||
import org.springframework.stereotype.Service; |
||||
|
||||
@Service |
||||
public class OrganizationService { |
||||
private final OrganizationRepository repo; |
||||
|
||||
public OrganizationService(OrganizationRepository repo) { |
||||
this.repo = repo; |
||||
} |
||||
} |
After Width: | Height: | Size: 211 KiB |
Before Width: | Height: | Size: 218 KiB |
After Width: | Height: | Size: 143 KiB |
@ -1,16 +1,2 @@
@@ -1,16 +1,2 @@
|
||||
# Учебный центр ООО "ГСП-Технологии" |
||||
Предлагаем Вам пройти оценку знаний по основным рабочим компетенциям. |
||||
|
||||
# Порядок прохождения проверки знаний |
||||
Укажите пожалуйста наименование компании где Вы работаете и свою должность, чтобы мы могли сформировать набор необходимых для Вас курсов |
||||
|
||||
**Нажав кнопку "перейти к курсу", Вы:** |
||||
* попадете на основную страницу курса, где сможете повторить необходимый материал; |
||||
* сможете перейти далее к проверке знаний. |
||||
|
||||
# Мы не собираем и не храним Ваши персональные данные |
||||
**Для подтверждения прохождения необходимых тестов - Вам нужно запомнить цифры указанные в верхней части экрана.** |
||||
|
||||
Они являются Вашим идентификатором в системе и по ним можно будет в последствии узнать результаты прохождения Вами курсов. |
||||
|
||||
Этот код Вам будет необходим при заезде на вахту, для подтверждения готовности исполнять свои основные должностные обязанности. |
||||
# Пояснения для пользователей |
||||
- Запомни номер своей учетной записи!!! |
@ -1 +1,27 @@
@@ -1 +1,27 @@
|
||||
# hello |
||||
# Курс: Охрана труда |
||||
|
||||
## диаграмма usecase |
||||
Устанавливает роли и основные способы использования приложения |
||||
|
||||
![диаграмма usecase](/hello/pictures/usecase.png) |
||||
|
||||
## Структура фреймов интерфейса |
||||
Определяет основные элементы пользовательского интерфейса приложения |
||||
|
||||
![структура фреймов интерфейса](/hello/pictures/states.png) |
||||
|
||||
## Структура базы данных |
||||
Устанавливает состав и структуру таблиц используемых для хранения данных приложения |
||||
|
||||
![структура базы данных](/hello/pictures/erd.png) |
||||
|
||||
## Посмотрите поучительное видео про медоедов! |
||||
<!-- <video src='/content/courses/1/video/Медоеду похер.mp4' width=180/> --> |
||||
|
||||
<video controls src="/content/courses/1/video/001.mp4" title="Title"></video> |
||||
|
||||
## Документы на скачивание |
||||
[скачать](/content/courses/1/download/7.xlsx) |
||||
|
||||
## документ на просмотр в новой вкладке |
||||
<a href="/content/courses/1/docs/horstman_k_sovremennii_javascript_dlya_neterpelivih_2021.pdf" target="_blank">javascript_dlya_neterpelivih_2021 в новой вкладке</a> |
After Width: | Height: | Size: 211 KiB |
After Width: | Height: | Size: 164 KiB |
After Width: | Height: | Size: 143 KiB |
After Width: | Height: | Size: 211 KiB |
After Width: | Height: | Size: 143 KiB |