Определить способность кандидата решать поставленные задачи, оценить навыки проектирования, качество кода и документации.
Необходимо спроектировать и запрограммировать функционал «ленты» новостей.
Необходимо сделать как публичный интерфейс для просмотра, так и административный интерфейс для добавления, редактирования и удаления новостей. Регистрация администраторов не нужна. Учетные данные администратора должна присутствовать в системе изначально.
Данные новости (все обязательны для заполнения пользователем, кроме картинки):
Заголовок
Дата
Анонс
Полный текст
Картинка (jpeg или gif, размеры картинки не более 300 пикселов по высоте или ширине)
Для не авторизованного пользователя необходимо сделать вывод всех новостей на страницу в порядке убывания даты выхода.
Выводить по пять новостей на странице. Если новостей больше, то появляется постраничная навигация (страницы: 1 2 3).
Формат вывода списка новостей:
<a href="[ПЕРЕХОД НА ДЕТАЛЬНОЕ ПРЕДСТАВЛЕНИЕ]"><h1>[ДАТА] — [ЗАГОЛОВОК]</h1></a>
<div>[АНОНС]</div>
Формат вывода детальной страницы новости:
<h1>[ДАТА] - [ЗАГОЛОВОК]</h1>
<div>[КАРТИНКА]</div>
<div>[ПОЛНЫЙ ТЕКСТ]</div>
Программный код должен быть написан с использованием объектно ориентированного подхода кандидатом лично, за исключением предлагаемых к использованию библиотек. Каждый созданный элемент программного кода (класс, функция, переменная, константа) должен быть документирован по правилам phpDocumentor (http://manual.phpdoc.org/).
Необходимо создать файл install.php, который отвечает за создание необходимых таблиц в базе данных и наполнение их начальными данными.
Скрипты должны работать
независимо от глубины вложенности папки их содержащей
(например %DOCUMENT_ROOT%/news и %DOCUMENT_ROOT%/somedir/news).
Все файлы задания в архивированном виде следует отправить на адрес электронной почты portal (a) budet.ru
В письме необходимо указать количество времени, затраченного на изучение необходимого материала и непосредственно выполнение задания.
В качестве абстракции уровня работы с базой данных предлагается использование ORM Doctrine (http://www.doctrine-project.org/projects/orm/2.0/docs/en).
Желаем успешного выполнения!