DmitriyRudenskiy / resolventagroup_test

Тестовое задание компании ООО «Резольвента»

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Тестовое задание компании ООО «Резольвента»

Требуется разработать небольшой веб сервис, который будет отвечать за расчет рабочего расписания сотрудников. Расписание работника компании Сервер на вход получает период дат и id работника в качестве get параметров: userId, startDate, endDate В ответ сервер должен отправить рабочее расписание работника в формате JSON. В расписание не должны попасть:  праздничные дни  отпускные дни сотрудника  обеденный перерыв  время до начала рабочего дня и после рабочего дня  время корпоратива: 10.01.2018 15:00 - 11.01.2018 00:00. Пример ответа:

GET http://localhost/schedule?startDate=2018-01-01&?endDate=2018-01-14&userId=1

{
    schedule: [{
            day: '2018-01-09',
            timeRanges: [{
                    start: '1000',
                    end: '1300'
                },
                {
                    start: '1400',
                    end: '1900'
                }
            ]
        },
        {
            day: '2018-01-10',
            timeRanges: [{
                    start: '1000',
                    end: '1300'
                },
                {
                    start: '1400',
                    end: '1500'
                }
            ]
        },
    ]
}

Для исключения из рабочего расписания праздничных дней используйте любой открытый API источник (например, Google calendar API).

Работу с базой данных реализовывать не обязательно, однако, подумайте, как вы будете хранить информацию о графике работы и отпуске сотрудника. В качестве индивидуальных данных работника используйте следующие параметры (или любые подобные):

Работник №1 • Отпуск два раза в год (11.01 - 25.01) и (01.02 - 15.02). • График (10:00 - 13:00 [обед] 14:00 - 19:00).

Работник №2 • Отпуск один раз в год (01.02 - 01.03). • График (09:00 - 12:00 [обед] 13:00 - 18:00).

###Требования и пояснения к задаче • Код должен быть написан в ОО стиле, быть чистым и хорошо читаться. • Обязательно должна быть инструкция по запуску сервиса. • При выполнении задания можно использовать любое открытое ПО (фреймворки, компоненты). • Плюсом будет покрытие кода автоматическими тестами и выполнение дополнительного задания.

Дополнительное задание: Добавить endpoint, который по тем же входным параметрам вернет нерабочее расписание работника (в том же формате, что и рабочее расписание)

About

Тестовое задание компании ООО «Резольвента»


Languages

Language:PHP 100.0%