Caution: You are browsing the legacy 1.x part of this website.
This version of symfony is not maintained anymore. If some of your projects still use this version, consider upgrading.

Master Symfony fundamentals

Be trained by SensioLabs experts (2 to 6 day sessions -- French or English).
training.sensiolabs.com

Discover SensioLabs' Professional Business Solutions

Peruse our complete Symfony & PHP solutions catalog for your web development needs.
sensiolabs.com
Jobeet

Anteriormente no Jobeet

Nós não escrevemos uma única linha de código PHP ainda, mas ontem, nós configuramos o ambiente de desenvolvimento, criamos um projeto symfony vazio e temos certeza que iniciamos com bons padrões de segurança. Se você seguiu junto, tem olhando para a sua tela deleitadamente desde então, pois ela exibe a bela página padrão do symfony para novas aplicações.

Congratulation page

Mas você quer mais. Você quer aprender o âmago da questão, todos os detalhes do desenvolvimento de aplicativos com o symfony. Então, vamos retomar a nossa viagem ao nirvana do desenvolvimento symfony.

Hoje, vamos ocupar o tempo descrevendo os requisitos do projeto Jobeet com alguns protótipos básicos.

O Lançamento do Projeto

Todo o mundo está falando sobre a crise atual. O desemprego está crescendo novamente.

Eu sei, desenvolvedores symfony não estão realmente preocupados e é por isso que você quer aprender symfony em primeiro lugar. Mas também é bastante difícil encontrar bons desenvolvedores symfony.

Onde posso encontrar um desenvolvedor symfony? Onde você pode anunciar as suas habilidades symfony?

Você precisa encontrar um bom job board. Monstruoso você diz? Pense novamente. Você precisa de um job board focado. Um onde você possa encontrar as melhores pessoas, os experts. Um onde seja fácil, rápido e divertido procurar um emprego ou propor um.

Não precisa mais procurar. Jobeet é o lugar. Jobeet é um Software de Job Board Open-Source que só faz uma coisa, mas a faz bem. É fácil de usar, personalizar, estender e adicioná-lo em seu site. Suporta múltiplos idiomas out of the box, e, naturalmente, utiliza as tecnologias Web 2.0 mais recentes para otimizar a experiência do usuário. Ele também fornece feeds e uma API para interagir com ele programaticamente.

Será que já não existe? Como um usuário, você encontrará muitos job boards como o Jobeet na Internet. Mas tente encontrar um que é Open-Source e com características ricas como as que propomos aqui.

E quem disse que levará menos de 24 horas para desenvolver com symfony? Bem, é melhor começarmos agora mesmo!

User Stories do Projeto

Antes de mergulhar precipitadamente no código, vamos descrever o projeto um pouco mais. As seções seguintes descrevem as características que queremos implementar na primeira versão/iteração do projeto, com algumas histórias simples.

O site do Jobeet possui quatro tipos de usuários:

  • admin: Ele é o dono do site e tem poder mágico
  • user: Ele visita o site para procurar um emprego ou para postar um
  • poster: Ele posta um emprego
  • affiliate: Ele re-publica alguns empregos em seu site

O projeto tem duas aplicações: a frontend (histórias F1 à F7, abaixo), onde os usuários interagem com o site, e a backend (histórias B1 à B3), onde administradores gerenciam o site.

A aplicação backend é segura e requer credenciais para acesso.

História F1: Na página inicial, os usuários vêem os últimos empregos ativos

Quando um usuário visita o site do Jobeet, ele vê uma lista dos empregos ativos. Os empregos são classificados por categoria e, em seguida, pela data de publicação (empregos mais novos em primeiro lugar). Para cada emprego, apenas a localização, a posição e a empresa são exibidas.

Para cada categoria, a lista exibe somente os 10 primeiros empregos e um link permite listar todos os empregos para uma determinada categoria (História F3).

Na página inicial, o usuário pode refinar a lista de empregos (História F2), ou postar um novo emprego (História F5).

Homepage Mockup

História F2: Um usuário pode solicitar todos os empregos de uma determinada categoria

Quando um usuário clica no nome de uma categoria ou no link "mais empregos" na página inicial, ele vê todos os empregos para essa categoria, ordenados por data.

A lista é paginada com 20 empregos por página.

The Category Page

História F3: Um usuário refina a lista com algumas palavras-chave

O usuário pode digitar algumas palavras-chave para refinar sua busca. As palavras-chave podem ser palavras encontradas nos campos do local, posição, categoria ou da empresa.

História F4: Um usuário clica em um emprego para visualizar informações mais detalhadas

O usuário pode selecionar um emprego a partir da lista para ver informações mais detalhadas.

The Job Page

História F5: Um usuário posta um emprego

Um usuário pode postar uma oferta de emprego. Um emprego é composto de várias partes de informação:

  • Empresa
  • Tipo (tempo integral, meio período, ou freelance)
  • Logo (opcional)
  • URL (opcional)
  • Cargo
  • Localização
  • Categoria (o usuário escolhe em uma lista de possíveis categorias)
  • Descrição do emprego (URLs e e-mails são automaticamente associados)
  • Como aplicar (URLs e e-mails são automaticamente associados)
  • Público (se o trabalho pode também ser publicado em sites afiliados)
  • E-mail (e-mail de quem postou)

Não há necessidade de criar uma conta para postar um emprego.

O processo é simples, com apenas dois passos: primeiro, o usuário preenche um formulário com todas as informações necessárias para descrever o emprego, então, ele valida a informação mediante a visualização da página final do emprego.

Mesmo se o usuário não tiver uma conta, um emprego pode ser modificado depois graças a uma URL específica (protegida por um token dado ao usuário quando o emprego é criado).

Cada trabalho postado ficará online por 30 dias (este tempo é configurável pelo administrador - veja a História B2). Um usuário pode voltar para reativar ou prorrogar a validade do um anúncio de emprego para mais 30 dias, mas somente quando o trabalho expirar em menos de 5 dias.

The Job Creation Page

História F6: Um usuário solicita ser um afiliado

Um usuário precisa fazer uma solicitação para se tornar um afiliado e ser autorizado a utilizar a API do Jobeet. Para se candidatar, ele deve fornecer as seguintes informações:

  • Nome
  • Email
  • URL do Website

A conta de afiliado deve ser ativada pelo administrador (História B3). Uma vez ativada, o afiliado recebe através de e-mail um token para usar com a API.

Quando se aplicar, o afiliado pode também escolher buscar empregos a partir de um sub-conjunto das categorias disponíveis.

História F7: Um afiliado recupera a lista atual dos empregos ativos

Um afiliado pode recuperar a lista dos empregos atuais chamando a API com o seu token de afiliado. A lista pode ser devolvida nos formatos XML, JSON ou YAML.

A lista contém as informações públicas disponíveis para o emprego.

Os afiliados também podem limitar o número de empregos a serem devolvidos, e refinar sua consulta, especificando uma categoria.

História B1: Um administrador configura o site

Um administrador pode editar as categorias disponíveis no site.

Ele também pode alterar algumas configurações:

  • Número máximo de empregos exibidos na página inicial
  • Linguagem do site
  • Número de dias que um emprego ficará online

História B2: Um administrador gerencia os empregos

Um administrador pode editar e remover qualquer emprego postado.

História B3: Um administrador gerencia os afiliados

O administrador pode criar ou editar afiliados. Ele é responsável pela ativação de um afiliado e também pode desativar um.

Quando o administrador ativa um novo afiliado, o sistema cria um token único para ser utilizado pelo afiliado.

Vejo você amanhã

Como para qualquer desenvolvimento web, você nunca começa codificando no primeiro dia. Você precisa reunir os requisitos em primeiro lugar e trabalhar em um protótipo do design. Isso é o que nós fizemos hoje.

Tal como ontem, o código de hoje está disponível no repositório SVN do Jobeet. Faça o checkout do release_day_02:

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

In the news

The Symfony Certification by SensioLabs

Symfony 3 Certification now available in 4,000 centers around the world!

Get certified

Upcoming training sessions