Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Описание
- Гостевая книга предоставляет возможность пользователям сайта оставлять сообщения на сайте. Все данные введенные пользователем сохраняются в БД(mssql, postgresql, mysql), так же в базе данных сохраняются данные о IP пользователя и его браузере.
- На главной странице приложения будет представлен список сообщений. И кнопка «Добавить сообщение». При нажатии на кнопку должна показаться всегда пустая форма добавления сообщения, а список сообщений скрыться.
- Вывод списка сообщений
- Сообщения должны выводится в виде таблицы/списка, с возможностью сортировки по следующим полям: дата добавления, имя пользователя и e-mail (как в порядке убывания, так и в обратном). Сама таблица/список содержит поля: дата добавления, имя пользователя, e-mail и текст. Список сообщений должен быть разбит на страницы по 25 сообщений. Таким образом необходимо реализовать постраничный пейджинг. После сортировки страница сбрасывается на первую. После добавления нового сообщения страница не сбрасывается. Состояние выбранной страницы должно сохранятся после рефреша страницы, другими словами если пользователь перешел на вторую страницу списка и потом скопировал ссылку в другой браузер список откроется тоже на второй странице.
- Добавление сообщения
- Форма добавления записи в гостевую книгу должна иметь следующие поля:
- - User Name - цифры и буквы латинского алфавита, обязательное поле
- - E-mail - формат email, обязательное поле
- - Homepage - формат url, необязательное поле
- - Text - непосредственно сам текст сообщения, HTML тэги недопустимы, обязательное поле
- Валидация вводимых данных должна быть как на стороне сервера так и клиента. При написании проекта следует обратить внимание на защиту от XSS атак и SQL –инъекций.
- Добавление сообщения происходит по нажатию на кнопку “Добавить”. Рядом находиться кнопка «Очистить» и «Отмена». Кнопки находятся под формой в один ряд.
- Действия, происходящие при нажатии кнопок
- - Кнопка «Добавить» - при нажатии на эту кнопку необходимо: провалидировать введенные пользователем данные и, если значения не верны выдать рядом с каждым полем сообщение об ошибке. Если клиентская валидация прошла успешно то данные отправляются на сервер посредством ajax. Если сервер считает, что данные тоже валидны то они сохраняются в бд и клиентская форма закрывается, показывая обновленный список сообщений.
- - Кнопка «Очистить» - при нажатии на эту кнопку необходимо очистить все поля формы
- - Кнопка «Отмена» - при нажатии на эту кнопку форма закрывается и показывается список сообщений.
- Требования
- - Фронтенд на ReactJS, Angular или Vue JS. Можно использовать typescript, requires, webpack.
- - Бэкенд на любом языке из перечисленных: c#, php, python, nodejs. Обязательно использование какого-нибудь mvc фреймворка. Организация серверной части в соответствии со стандартом REST API.
- - Объектно-ориентированный подход.
- - Не использовать готовую ORM, даже если она в составе выбранного вами фреймворка. Написать свою обертку для работы с бд.
- - Верстка должна быть адаптивной
- - CSS-стили, можно использовать препроцессор
- Сдача данного тестового задания
- Для сдачи тестового задания необходимо:
- - Предоставить код в виде zip архива без бинарных файлов.
- - Предоставить краткую step-by-step инструкцию по развертыванию приложения на локальном сервере. Данная инструкция должна содержать специфичные сведения о развертывания: что где лежит, последовательность установки.
- - Если в ходе исполнения задания вы заметили логические несоответствия об этом необходимо развернуто написать.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement