![]() |
|
Practical symfonyДень 2: Собственно проект |
|
You are currently reading "Practical symfony" which is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License license.

|
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License. |
Мы ещё не написали не единой строки PHP, но вчера, мы создали среду, пустой проект symfony и убеделись, что начали с хорошими настройками безопасности. Если вы за всем следили, то сейчас вы должно быть с восхищением смотрите на экран, т.к. на нём показывают стандартную страницу приложений symfony.

Но вы жаждете большего. Вы хотите изучить все самые мелкие детали о разработке приложений на symfony. Итак, продолжим наше путешествие к нирване разработчиков на symfony.
Сегодня мы уделим немного времени описанию требований проекта Jobeet и создадим несколько скетчей.
Все сегодня говорят о кризисе. Сокращения вновь зверствуют с большей силой.
Я знаю, что разрабочики на symfony не слишком то заинтересованы и изучение symfony у них на первом месте. Но ведь это очень трудно найти хорошего разработчика на symfony.
Где бы найти такого разрабочика? Кому мы предложить свои знания по symfony?
Вам нужно найти хорошую доску объявлений о работе. Тоже мне, монстр? Подумайте ещё раз. Вам нужна определённая доска объявлений. Такая, где вы сможете найти лучших людей, экспертов. Такую, где можно легко, быстро и весело искать работу или же сотрудника.
Хватит искать! Jobeet - это то самое место. Jobeet - это Open-Source доска объявлений по поиску работы, которая делает лишь одну вещь, но зато как она это делает! Она проста в использовании, настройке, расширении и встраивании в ваш сайт. Она сразу же поддерживает несколько языков и конечно же использует последние тенденции технологии Web 2.0 для лучшей работы пользователя. Она так же предоставляет ленты и API для взаимодействия с ней программно.
А может она уже есть? Как пользователь вы сможете найти кучу таких досок, подобных Jobeet, на просторах интернета. Но попробуйте найти среди них Open-Source и богатую на функционал, который мы вам предлагаем.
Так, а кто там сказал что это займёт меньше 24х часов на symfony? Пора бы нам уже начать!
Прежде чем окунуться с головой в код, давайте немного опишем проект. Следующие части расскажут нам о возможностях, которые мы хотим внедрить в первую версию/итерацию проекта и расскажем мы это от лица пользователей.
Jobeet рассчитан на 4 типа людей:
У проекта есть 2 приложения: фронтенд(frontend) (истории F1 - F7, о них ниже), где пользователь общается с сайтом, а так же бэкенд(backend) (истории B1 - B3), в котором админы управляют сайтом.
Бэкенд защищён и требует определённых права для доступа.
Когда пользователь заходит на Jobeet, то он видит список текущих вакансий. Вакансии сортируются по категориям, а затем уже по дате публикации (первыми публикуются новые вакансии). Для каждой вакансии отображается лишь место, должность и компания.
Для каждой категории отображается список из 10 вакансий, а так же ссылка, позволяющая посмотреть все вакансии в данной категори (История F3).
На главной странице пользователь может подкорректировать список вакансий (История F2) или создать новую вакансию (История F5).

Когда пользователь жмёт на имя категории или на "ещё вакансии" на главной странице, то он может увидеть все вакансии категории, отсортированные по дате.
Список разбивается на страницы по 20 вакансий.

Пользователь может ввести ключевые слова для изменения результатов поиска. Ключевые слова ищутся в местоположении, должности, категории и имени компании.
Пользователь может выбрать вакансию и списка, чтобы увидеть больше информации.

Пользователь может создать вакансию. Вакансия состоит из нескольких едениц информации:
Нет никакой нужды заводить аккаунт для создания работы.
Процесс прямолинеен и содержит 2 шага: сначала пользователь заполняет форму всей необходимой информацией для описания вакансии, а затем проверяет информацию на странице предпросмотра.
Даже если у пользователя нет аккаунта, вакансия в дальнейшем может быть изменена, благодаря особой ссылке (защищённой ключём, который выдаётся пользователю после заведения вакансии).
Каждая вакансия активна 30 дней (это настраивается админом - смотрите Историю B2) Пользователь может вернуться и активировать вновь или дополнить информацию по вакансии на ещё 30 дней, но лишь если до истечения срока вакансии осталось 5 дней.

Пользователь может сделать запрос на партнёрство, чтобы использовать API Jobeet. Для этого ему нужно указать следующее:
Партнёрский аккаунт должен быть активирован администратором (История B3). После активации партнёр получает ключ для использования с API через email.
Партнёрский аккаунт должен быть активирован администратором (История B3). После активации партнёр получает ключ для использования с API через email.
Партнёр может получать текущий список вакансии при помощи API, используя партнёрский ключ. Данный список может быть получен в формате XML, JSON или YAML.
Список содержит публикуемую информацию для вакансии.
Партнёр так же может установить ограничение на количество получаемых вакансий, а так же изменить запрос, выбирай лишь вакансии определённой категории.
Администратор может определять категории, доступные на сайте.
Так же он может поменять:
Администратор может подправить или удалить вакансию
Администратор может создавать или редактировать партнёром. Он ответственный за активацию партнёра, но может его и отключить.
Когда админ заводить нового партнёра, система создаёт уникальный ключ, которым партнёр будет пользоваться.
Как и в любой веб-разработке, никогда не начинаешь программировать в первый же день. Вам сперва нужно собрать требования и поработать над дизайн-скетчами. Что мы сегодня и проделали.
Как и вчера, сегодняшний код доступен в SVN. Проверь тэг release_day_02:
$ svn co http://svn.jobeet.org/tags/release_day_02/ jobeet/
If you find a typo or an error, please register and open a ticket.
If you need support or have a technical question, please post to the official user mailing-list.