Требуется разработать приложение для заказа корпоративной еды. Каждый день сотрудники компании выбирают, что изволят откушать завтра. Сейчас мы используем Яндекс.Формы. Дешево и сердито. Это не может продолжаться бесконечно. Продемонстрируйте свои способности, сделайте этот процесс более удобным!
У нас есть несколько поставщиков еды с доставкой. В каждый отдельно взятый период используется только один поставщик. Меняем активного поставщика, когда приедается и хочется чего-то нового.
Код будет использован в реальной деятельности только в случае успешной сдачи тестового задания и выходе вас на работу в компанию.
Результат выполнения тестового задания ожидаем в виде двух ссылок: Ссылка на работающий код задания, размещенной на хостинге. Ссылка на репозиторий с исходным кодом (github/gitlab).
При сложностях с размещением на хостинге и/или наличии опасений про потенциально бесплатную работу на тестовом задании допустимо продемонстрировать работу кода и исходники на своем компьютере в процессе zoom-сессии собеседования.
Срок выполнения тестового задания – одна календарная неделя с момента получения ссылки на документ.
Yii2 на бэке.
Справочники и поля:
- Сотрудники: Имя
- Поставщики: Название, Активный
- РазделМеню: Поставщик, Название
- Блюдо: РазделМеню, Название, Состав (строка), Цена
- Заказ: Дата, Сотрудник, Блюдо
- Редактирование всех справочников.
- Формирование отчета “Заказ поставщику на дату”: Блюдо, Количество, Цена, Стоимость, Общая стоимость по отчету
- Формирование отчета “Заказ сотрудников на дату”: Сотрудник, Перечень заказанных блюд с количеством, ценой и общей стоимостью
- Формирование отчета “Заказы сотрудников за месяц”: Сотрудник, Сумма заказов за календарный месяц, Сумма всех заказов всех сотрудников за календарный месяц
- Выбор себя из списка сотрудников.
- Выбор даты, на которую заказывается еда. По-умолчанию - следующий рабочий день.
- Меню, разбитое на разделы. В разделах - блюда с составом и ценой.
- Возможность заказа произвольного любого блюда в произвольном количестве.
- Кнопка “Отправить заказ”, нажимаемая по завершении формирования заказа.
- VueJS на фронте.
- Удобно использовать на мобильных устройствах.
- Интерфейс не провоцирующий отрицательные эмоции пользователя.
- Повелитель еды может менять заказ любого сотрудника вручную.
- Некоторые блюда могут быть временно недоступными для заказа.
- Сотрудник может сохранять свои предпочтения в еде и ограничивать ими возможный выбор.
- “Мне повезет” – автозаказ еды на дату, учитывая предпочтения и предыдущие заказы на этой неделе.
- Сотрудник может смотреть, что было им заказано на выбранную дату.
- Контроль времени заказа – заказ на завтра можно оформить до 12:30 сегодня
- Уведомления – напоминания сотруднику, что нужно сделать заказ на завтра, если он еще не сделан
В текущей реализации выполнено из опциональных пунктов: 4, 5, 8, 9
Находясь в корне проекта, выполнить команду docker compose up -d
после чего, зайти в контейнер php и при помощи команд composer i
и ./yii migrate
установить нужные пакеты и применить миграции соответственно. Далее в браузере открыть url 127.0.0.1:8081/. Вход на админа (он же повелитель еды) admin 1234. После входа в верхнем меню появятся три доп пункта: Списки, Отчёты и Кабинет.