An open API service indexing awesome lists of open source software.

https://github.com/qunetol57/yii2_api_test

Тестовое задание на yii2 с использованием Swagger. Система автоматизированной работы с заявками.
https://github.com/qunetol57/yii2_api_test

docker docker-compose php8 yii-rest-api yii2 yii2-advanced yii2-swagger

Last synced: about 1 month ago
JSON representation

Тестовое задание на yii2 с использованием Swagger. Система автоматизированной работы с заявками.

Awesome Lists containing this project

README

        





Система автоматизированной работы с заявками. Тестовое задание на yii2 с использованием Swagger



# Краткое описание:
Любой пользователь может создать заявку.

У заявок есть 3 статуса ```0 - Новая```, ```1 - В работе```, ```2 - Закрыта```.

Заявка создается с обязательным назначением менеджера. При изменении статуса заявки сохраняется история.
Если заявка находится в статусе ```В работе``` и у нее будет заполнен комментарий - она автоматически перейдет в статус```Закрыта```,
а так же создателю заявки будет отправлено письмо.

Видимость заявок:
- Админ - видит все заявки
- Менеджер - видит только заявки назначенные на него
- Пользователь - видит только заявки созданные им

# Развертывание проекта:
1. Клонировать репозиторий
2. Необходимо запустить билд докер образа
```
docker-composer build
```
3. Запуск докер контейнеров
```
docker-composer up -d
```
4. Необходимо зайти в контейнер backend
```
docker-composer exec backend bash
```
5. Запустить инициализацию yii и установку пакетов composer
```
php-init
composer install
```
6. Необходимо заменить файл ```common/config/main-local.php``` на ```common/config/main-local-template.php```
7. Запуск миграций
```
./yii migrate
```
8. Запуск скрипта для создания пользователей
```
./yii start/create-users
```
Скрипт создаст:

Пользователя с ролью админ (логин / пароль): ```admin``` / ```12345```

Пользователей с ролью менеджер (логин / пароль): ```manager1``` / ```12345``` , ```manager2``` / ```12345```

Пользователей с ролью юзер (логин / пароль): ```user1``` / ```12345``` , ```user2``` / ```12345```

# Работа с проектом:
1. Необходимо открыть swagger, для этого перейти по ссылке http://localhost/swagger/docs/
2. В разделе "Пользователи" открыть запрос для получений токена ```/user/login```, внести данные для Basic authorization, выполнить запрос
3. Полученный токен необходимо вставить в Bearer (apiKey) авторизацию, необходимо вставлять по шаблону ```Bearer ```, например ```Bearer A4BgV7GX7Fvxw_Rz-lQ1L1TvAASN332X```