Тестовое задание
Для react разработчика
Цели

Создайте простой календарь планирования встреч для конференц-зала в вашем офисе:

  • Показать запланированные встречи;
  • Отфильтровать встречи для конкретного члена команды;
  • Добавить новые встречи;
  • Удалить встречи;

Стек технологий

  • JavaScript (ES6, ES next) с Babel транспайлером (при необходимости);
  • React, Redux
  • CSS pre/post processor Sass;
  • любой сборщик модулей Webpack;
  • любые другие технологии, которые вам нравятся;

Описание

  • Вы создаете приложение-планировщик собраний для одной комнаты собраний.
  • В вашем приложении должно быть два экрана: экран «Календарь» и экран «Создание события»;
  • Экран «Календарь» состоит из предварительно определенной таблицы с 5 днями (пн-пт) для столбцов и 9 временными интервалами (10: 00-18: 00, по одному часу каждый) для строк;
  • Есть команда из нескольких человек, которые могут принимать участие во встречах (вы можете жестко закодировать список членов команды в своем коде).
  • Одна встреча может занять всего 1 час и получить одну ячейку в экране «Календарь»;

Требования к основным функциям

  • На экране «Календарь» пользователь должен иметь возможность видеть все встречи, запланированные для конференц-зала;
  • Пользователь должен иметь возможность фильтровать встречи по лицам;
  • Чтобы создать новую встречу, пользователь должен нажать кнопку «Новое событие +» на экране «Календарь», после чего он должен быть переведен на экран «Создать событие». На этом экране пользователь должен ввести название встречи, выбрать участников (может быть несколько), выбрать день (пн-пт), выбрать время (10: 00-18: 00);
  • Встреча может быть успешно создана, если и только если временной интервал для этого дня и времени свободен. В противном случае должна отображаться панель ошибок.
  • После успешного создания события пользователь должен вернуться на экран «Календарь», где уже должно отображаться новое событие.
  • Чтобы удалить собрание, пользователь должен щелкнуть значок удаления рядом с названием собрания на экране «Календарь», а затем подтвердить свое действие в диалоговом окне подтверждения.

Требования к дополнительным функциям


  • Реализуйте пользовательский интерфейс на основе различных пользовательских интерфейсов по вашему выбору, например: Bootstrap и т.д.
  • Реализовать возможность изменения дня / времени встречи с помощью техники перетаскивания в представлении «Календарь».
Ваше приложение должно быть основано на каркасах, представленных ниже, но дизайн может отличаться:

Критерии приемки

Код оформить на GitHub с толковым readme.md (образец), ссылку прислать на в телеграм https://t.me/max_bel_od, в сообщении укажите ваш опыт работы с данными технологиями.