Skip to content
Caution: You are browsing the legacy symfony 1.x part of this website.

День 2: Собственно проект

Symfony version
Language
ORM

Ранее на Jobeet

Мы ещё не написали не единой строки PHP, но вчера, мы создали среду, пустой проект symfony и убеделись, что начали с хорошими настройками безопасности. Если вы за всем следили, то сейчас вы должно быть с восхищением смотрите на экран, т.к. на нём показывают стандартную страницу приложений symfony.

Страница приветствия

Но вы жаждете большего. Вы хотите изучить все самые мелкие детали о разработке приложений на symfony. Итак, продолжим наше путешествие к нирване разработчиков на symfony.

Сегодня мы уделим немного времени описанию требований проекта Jobeet и создадим несколько скетчей.

Соль проекта

Все сегодня говорят о кризисе. Сокращения вновь зверствуют с большей силой.

Я знаю, что разрабочики на symfony не слишком то заинтересованы и изучение symfony у них на первом месте. Но ведь это очень трудно найти хорошего разработчика на symfony.

Где бы найти такого разрабочика? Кому мы предложить свои знания по symfony?

Вам нужно найти хорошую доску объявлений о работе. Тоже мне, монстр? Подумайте ещё раз. Вам нужна определённая доска объявлений. Такая, где вы сможете найти лучших людей, экспертов. Такую, где можно легко, быстро и весело искать работу или же сотрудника.

Хватит искать! Jobeet - это то самое место. Jobeet - это Open-Source доска объявлений по поиску работы, которая делает лишь одну вещь, но зато как она это делает! Она проста в использовании, настройке, расширении и встраивании в ваш сайт. Она сразу же поддерживает несколько языков и конечно же использует последние тенденции технологии Web 2.0 для лучшей работы пользователя. Она так же предоставляет ленты и API для взаимодействия с ней программно.

А может она уже есть? Как пользователь вы сможете найти кучу таких досок, подобных Jobeet, на просторах интернета. Но попробуйте найти среди них Open-Source и богатую на функционал, который мы вам предлагаем.

Пользовательские истории проекта

Прежде чем окунуться с головой в код, давайте немного опишем проект. Следующие части расскажут нам о возможностях, которые мы хотим внедрить в первую версию/итерацию проекта и расскажем мы это от лица пользователей.

Jobeet рассчитан на 4 типа людей:

  • Админ: Он владеет сайтом и обладает магической силой
  • Пользователь: Он бродит по сайту в поисках работы или же хочет предложить поработать
  • Работодатель: Он создаёт вакансию
  • Компаньон: Он копирует некоторые вакансии на свой сайт

У проекта есть 2 приложения: фронтенд(frontend) (истории F1 - F7, о них ниже), где пользователь общается с сайтом, а так же бэкенд(backend) (истории B1 - B3), в котором админы управляют сайтом.

Бэкенд защищён и требует определённых права для доступа.

История F1: на главной странице пользователь видит последние доступные вакансии

Когда пользователь заходит на Jobeet, то он видит список текущих вакансий. Вакансии сортируются по категориям, а затем уже по дате публикации (первыми публикуются новые вакансии). Для каждой вакансии отображается лишь место, должность и компания.

Для каждой категории отображается список из 10 вакансий, а так же ссылка, позволяющая посмотреть все вакансии в данной категори (История F3).

На главной странице пользователь может подкорректировать список вакансий (История F2) или создать новую вакансию (История F5).

Скетч главной страницы

История F2: пользователь может запросить все вакансии из категории

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

Список разбивается на страницы по 20 вакансий.

Страница категорий

История F3: Пользователь изменяет список при помощи ключевых слов.

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

История F4: Пользователь кликает по вакансии, чтобы узнать подробности

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

Страница вакансии

История F5: Пользователь может создать вакансию

Пользователь может создать вакансию. Вакансия состоит из нескольких едениц информации:

  • Комания
  • Тип (полный рабочий день, по совместительству или удалённая)
  • Логотип (не обязательно)
  • Ссылка (не обязательно)
  • Должность
  • Местоположение
  • Категория (пользователь можешь выбрать из списка доступных)
  • Описание работы (ссылки и email'ы прописываются автоматически)
  • Как попасть на собеседование (ссылки и email'ы прописываются автоматически)
  • Публичный доступ (может ли вакансия быть получена сайтами-партнёрами)
  • Email (email создателя вакансии)

Нет никакой нужды заводить аккаунт для создания работы.

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

Даже если у пользователя нет аккаунта, вакансия в дальнейшем может быть изменена, благодаря особой ссылке (защищённой ключём, который выдаётся пользователю после заведения вакансии).

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

Страница заведения вакансии

История F6: пользователь хочет стать партнёром

Пользователь может сделать запрос на партнёрство, чтобы использовать API Jobeet. Для этого ему нужно указать следующее:

  • Имя
  • Email
  • Ссылка на сайт

Партнёрский аккаунт должен быть активирован администратором (История B3). После активации партнёр получает ключ для использования с API через email.

Партнёрский аккаунт должен быть активирован администратором (История B3). После активации партнёр получает ключ для использования с API через email.

История F7: партнёр получает список текущих активных вакансий

Партнёр может получать текущий список вакансии при помощи API, используя партнёрский ключ. Данный список может быть получен в формате XML, JSON или YAML.

Список содержит публикуемую информацию для вакансии.

Партнёр так же может установить ограничение на количество получаемых вакансий, а так же изменить запрос, выбирай лишь вакансии определённой категории.

История B1: Администратор настраивает веб-сайт

Администратор может определять категории, доступные на сайте.

Так же он может поменять:

  • Максимальное количество отображаемых вакансий на странице
  • Язык сайта
  • Срок активности вакансии

История B2: Администратор управляет вакансиями

Администратор может подправить или удалить вакансию

История B3: Администратор управляет партёрской программой

Администратор может создавать или редактировать партнёром. Он ответственный за активацию партнёра, но может его и отключить.

Когда админ заводить нового партнёра, система создаёт уникальный ключ, которым партнёр будет пользоваться.

Увидимся завтра!

Как и в любой веб-разработке, никогда не начинаешь программировать в первый же день. Вам сперва нужно собрать требования и поработать над дизайн-скетчами. Что мы сегодня и проделали.

Как и вчера, сегодняшний код доступен в SVN. Проверь тэг release_day_02:

$ svn co http://svn.jobeet.org/tags/release_day_02/ jobeet/

This work is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License license.