Веб-приложение доступно по ссылке: https://infinite-lake-31577.herokuapp.com/login
Представим ситуацию, что мы планируем вечернику, и нам необходимо опросить друзей на предмет того, примут ли они в ней участие или нет, и какие напитки они предпочитают. Предлагается создать для этого небольшой сайт, который будет содержать в себе форму для ответа на наш вопрос и сохранять полученные данные в базе данных, дополнительно информируя организаторов о новых ответах по электронной почте.
Для доступа к страницам сайта необходимо предварительно авторизоваться через vk.com. Из социальной сети мы будем брать данные, необходимые для удобной идентификации человека, который прошел опрос: имя и фото.
Сама авторизация будет немедленно запрашиваться при переходе на любую страницу сайта, если человек не выполнил вход. Если человек не проходил наш опрос до этого, он должен будет заполнить форму, где вверху будет приглашение содержащее его настоящее имя («Здравствуйте, Иван Иванович!») и два выпадающих списка: первый о том, придет он или нет, а второй - с разнообразными напитками.
Каждый из этих списков должен содержать приглашение ко вводу, но форма будет считаться правильно заполненной, только если он произвел свой выбор (выбрал что то отличное от «выберите пожалуйста»).
Проверку правильности данных нужно проводить, следуя MVC в описании модели на сервере по нажатию кнопки «отправить ответ» на форме.
В случае если данные неправильные (не выбран ответ хотя бы на один вопрос), контроллер должен перерисовать отображение и выделить каким-либо образом то, что необходимо исправить.
Если же при переходе на страницу для ответа наша база данных уже будет содержать ответ на вопрос от данного человека, то пользователь должен увидеть страницу с предложением удалить его старый ответ и ответить на вопросы заново, в случае согласия его старый ответ немедленно удаляется, и он переправляется на страницу с формой. Система должна автоматически отправлять email уведомления при любых действиях пользователей (ответ на вопрос или удаление старого ответа) на email организатора (должен быть задан в файле конфигурации).
Кроме этого в файле конфигурации также должна быть возможность указать id организатора на сайте vk.com.
После авторизации организатор будет переправляться (всегда) на страницу со списком всех ответов в базе.
Элемент списка содержит аватар и имя пользователя ответившего на вопрос и два его выбора.