@ -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 @@ |
|||||||
|
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 @@ |
|||||||
|
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 @@ |
|||||||
|
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 @@ |
|||||||
|
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 @@ |
|||||||
|
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 @@ |
|||||||
|
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 @@ |
|||||||
|
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 +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 |