- Symfony >= 4.4 | PHP без фреймворка
- PHP >= 7.3
- PostgreSQL >= 9.6
- Composer (в случае использования сторонних bundle)
- Выложить на Github
- В readme описать инструкцию для развертывания приложения локально
- Описание REST API (swagger или текстовый файл)
Реализовать REST API приложение "Сервис создания/исполнения заказов" на любые работы (исполнение услуг, поставка товаров, выполнение работ и т.д.)
- Заказчик:
- Создание заказа
- Выбор Исполнителя заказа из списка поданных заявок
- Простановка готовности заказа после исполнения
- Исполнитель:
- Выбор заказа
- Подача заявки со сроком и суммой исполнения
Переход статусов сущностей реализовать при помощи паттерна FSM (Finite-state machine)
- Опубликован:
- технический статус, переходит сразу в "Прием заявок"
- Прием заявок:
- Поиск исполнителей до определенного времени при создании заказа, переход в "Рассмотрение заявок"
- Заказчик может перевести вручную в "Рассмотрение заявок"
- Рассмотрение заявок (выбор исполнителя):
- Заказчик выбирает заявку на исполнение заказа, переход в "Ожидание исполнения заказа"
- Ожидание исполнения заказа:
- Заказчик вручную переводит в "Завершен" после исполнения заказа
- Завершен
- Подана:
- Переходит в "Принята" если Заказчик выбрал заявку на исполнение в "Рассмотрении заявок"
- Переходит в "Отклонена" если заявка не выбрана на исполнение
- Принята:
- Переходит в "Выполнена" после перехода Заказа в статус "Завершен"
- Выполнена
- Отклонена
- Получение списка Заказов:
- Заказчик:
- Видит только свои Заказы
- Исполнитель:
- Видит все заказы
- Может видеть Заказы на которые он подал заявки
- Может видеть Заказы на исполнение
- Заказчик: