diff --git a/TASK.md b/TASK.md index 83bc7e8..9da51e5 100644 --- a/TASK.md +++ b/TASK.md @@ -117,3 +117,44 @@ - Корректная работа без интернета - Ввод неверных данных - Успешный вход + + +## Задание 2. Режим работы “Комната для переговоров” (~4 часа) +**Дедлайн сдачи артефактов: 25.02 в 19:00** + +Предыстория: + +На текущем этапе компания принимает решение установить специальные устройства непосредственно у переговорных комнат — планшеты, которые будут служить отдельной точкой доступа к системе бронирования. +Цель установки таких устройств — упростить и ускорить процесс резервирования переговорных комнат для сотрудников прямо на месте, без необходимости использования мобильных телефонов или компьютеров. Такие устройства предназначены показать расписание переговорки в реальном времени и дать возможность мгновенно забронировать комнату на оставшееся время текущего дня, если она свободна. +Новые устройства работают в режиме специальной роли — «Комната для переговоров». При этом их функционал ограничен по сравнению с мобильным приложением и ориентирован именно на просмотр расписания и быструю бронь. + +drawing +drawing + + + +Цель: реализовать новую роль устройства — «Комната для переговоров», предназначенную для устройств, расположенных непосредственно у переговорных комнат. Эта роль должна позволять просматривать расписание переговорной комнаты и быстро бронировать её на остаток текущего дня при условии, что переговорка свободна. + +Требования: +- Реализовать новую роль “Комната для переговоров”: + - Добавить в систему новую роль — «Комната для переговоров». Пользователи, обладающие этой ролью, будут иметь ограниченный набор разрешённых действий и уникальный интерфейс, отличающийся от ролей обычных сотрудников. + - Обеспечить разграничение прав и функционала приложения в зависимости от роли пользователя, сохраняя при этом существующую структуру ролей и добавляя новую роль «Комната для переговоров» без нарушения текущей логики. +- Реализовать просмотр расписания переговорной комнаты: + - На экране устройства должен отображаться актуальный календарь бронирований текущей переговорной комнаты на сегодня и ближайшие 3 дня. + - Интерфейс должен быть максимально информативным и обновляться автоматически с заданной периодичностью (например, раз в 1 минуту или мгновенно, при использовании сокетов). +- Добавить функцию мгновенного бронирования: + - В случае, если переговорная комната свободна на остаток текущего дня, должно быть доступно мгновенное бронирование до конца этого дня. + - Кнопка «Забронировать» должна быть явной и активной только если помещение сейчас свободно. Бронирование возможно только на текущее дату. + - При нажатии на кнопку происходит мгновенное бронирование на пользователя данной комнаты через API, и обновление интерфейса. В случае, если комната уже забронирована - выводится соответствующее сообщение. + - Кнопка “Освободить” должна быть явной и активной только если помещение сейчас забронировано и занято. По нажатию на данную кнопку текущая бронь удаляется. +- Обработать ошибки. В случае отсутствия связи с сервером или ошибок при бронировании, интерфейс должен отображать соответствующее сообщение об ошибке и при этом сохранять доступ к просмотру расписания. +- Адаптировать интерфейс. Необходимо учесть, что рядом с кабинетами зачастую расположены планшеты в альбомной ориентации. + +**Для прохождения на код-ревью, в приложение должны выполняться следующие сценарии:** +- Работа без интернета +- Ввод неверных данных +- Успешный вход +- На экране отображается и обновляется в течение 1 минуты статус бронирования комнаты +- Существуют и работают кнопки действий (забронировать и освободить) +- На экране отображается расписания комнаты +