/webdev-task-3

Задача «Павел слишком занят»

Primary LanguageJavaScript

Задача «Павел слишком занят»

Перед выполнением задания внимательно прочитайте:

Основное задание

Билли безумно рад, что ему помогли сделать REST-API сервиса для путешественников. Однако, ему снова требуется помощь. Реализовывать веб-интерфейс для этого сервиса должен был Паша, друг Билли, но он, к сожалению, не отвечает в Telegram'е. И Билли, как обычно, попросил помощи у вас.

Предполагается, что реализованный интерфейс будет взаимодействовать с REST-API, написанным вами в предыдущей задаче. Чтобы было проще работать с ним, выложите его во внешний мир при помощи now.

Требования

Общие:

  • В качестве веб-сервера использовать Express
  • Использовать чистый DOM-API, клиентские фреймворки запрещены
  • Страница полностью интерактивна, при взаимодействии пользователя с сервисом она не перезагружается

Функциональные:
main

  • Поисковое поле:
    • Вся фильтрация должна происходить в браузере, без взаимодействия с сервером
    • На странице отображаются только те места, которые подходят под введенный пользователем запрос
    • Фильтрация должна учитывать состояние контролла "все"/"посетить"/"посещённые"
  • Форма создания места
  • Список мест:
    • Имеется кнопка "очистить список"
    • Имеется контрол "все"/"посетить"/"посещённые". В зависимости от состояния показываются только соответствующие места
  • Элемент списка:
    • Состоит из названия, контроллов перемещения (можно сделать drag and drop) и чекбокса
    • При нажатии на чекбокс непосещённого места, оно помечается как посещённое, и наоборот
    • При наведении на место появляются контроллы для редактирования и удаления hover
    • При нажатии на "редактирование" появляется инпут с текущим названием и контролы для сохранения и отмены изменений
      edit

pasha