Задание
для определение профессиональной пригодности кандидата на должность веб-разработчика проекта «Будет!»

Цель работы

Определить способность кандидата решать поставленные задачи, оценить навыки проектирования, качество кода и документации.

Описание задачи

Необходимо спроектировать и запрограммировать функционал «ленты» новостей.

Необходимо сделать как публичный интерфейс для просмотра, так и административный интерфейс для добавления, редактирования и удаления новостей. Регистрация администраторов не нужна. Учетные данные администратора должна присутствовать в системе изначально.

Данные новости (все обязательны для заполнения пользователем, кроме картинки):

Для не авторизованного пользователя необходимо сделать вывод всех новостей на страницу в порядке убывания даты выхода.

Выводить по пять новостей на странице. Если новостей больше, то появляется постраничная навигация (страницы: 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).

P.S.

Желаем успешного выполнения!