Skip to content

vanyabrovary/WebBoard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ОПИСАНИЕ

Гостевая книга предоставляет возможность пользователям сайта оставлять сообщения на сайте.

ПОЛНЫЙ ТЕКСТ ТЕСТОВОГО ЗАДАНИЯ

ОПИСАНИЕ

Гостевая книга предоставляет возможность пользователям сайта оставлять сообщения на сайте. Все данные введенные пользователем сохраняются в БД MySQL. Также в БД сохраняются данные о IP-адресе пользователя, его браузере, дате написания сообщения.

ОСОБЕННОСТИ РЕАЛИЗАЦИИ

Форма добавления записи в гостевую книгу должна иметь следующие поля:

- User Name (цифры и буквы в кодировке UTF-8) – обязательное поле

- E-mail (формат e-mail) - обязательное поле

- Homepage (формат URL) – необязательное поле

- CAPTCHA (цифры и буквы латинского алфавита) – изображение и обязательное поле (http://ru.wikipedia.org/wiki/CAPTCHA)

- Text (непосредственно сам текст сообщения, HTML тэги недопустимы) – обязательное поле

- Сообщения должны выводится в виде таблицы, с возможностью сортировки по следующим полям:

- User Name, e-mail, дата добавления сообщения (как в порядке убывания, так и возрастания).

- Сообщения должны разбиваться на страницы (количество сообщений на странице задается в конфигурационном файле).

- Сортировка по умолчанию - LIFO.

ТРЕБОВАНИЯ

Необходимо выполнить задание в полном объеме, обязательно руководствуясь следующими требованиями:

- Пример должен быть полностью рабочий, то есть все части должны запускаться путем смены пути к корню сайта в конфиге виртуального хоста web-сервера Apache.

- В задании должен использоваться текстовый конфигурационный файл, в котором задаются настройки БД, параметры captcha, количество сообщений выводимых на одну страницу.

- Весь функционал для с CAPTCHA и БД должен быть оформлен отдельными классами (с конструкторами и методами) для демонстрации навыков работы с ООП.

- В задании должны использоваться прагмы strict и warnings.

- Для работы c HTML необходимо использовать систему шаблонов: Template-Toolkit (желательно), HTML::Template, XML/XSLT (допустимо), не допускается размещение HTML кода внутри скриптов.

- Для демонстрации работы с JavaScript, необходимо выполнить проверку введенных параметров (с выдачей сообщения об ошибках при необходимости).

- Для работы с БД следует использовать DBI модуль (не ORM системы).

- К заданию необходимо приложить SQL создающий необходимые для работы таблицы в БД.

- При написании задания следует обратить внимание на защиту от XSS атак и SQL–инъекций. (http://ru.wikipedia.org/wiki/Межсайтовый_скриптинг и http://ru.wikipedia.org/wiki/Инъекция_SQL).

- Приветствуется создание простейшего визуального оформления с использованием CSS.

ИНСТРУМЕНТЫ РЕШЕНИЯ

1. Apache (mod_perl или cgi) + Nginx (прокси)

2. PERL5 (POD, Critic) без тестов.

3. MySQL

4. Mojolicious

5. latest (warnings, strict),

6. TT,

7. CRUD with validation,

8. CAPTCHA,

9. DBI,

10. XSS (учтено для всех полей + HTML символы) my $safe = convert_XSS($stuff);

ЗАТРАЧЕННОЕ ВРЕМЯ

1 рабочий день

About

WebBoard perl (test task)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published