【整理向】Symfony2 Jobeet Day 2: The Project

原创 2013年12月03日 15:25:46

    We have not written a single line of code yet, but, in Day 1, we setup the environment and created an empty Symfony project.

    This day is about the project specifications. Before diving into the code head-first, let’s describe the project a bit more. The following sections describe the features we want to implement in the first version/iteration of the project with some simple stories.

User Stories

   The Jobeet website will have four type of users: admin (owns and manages the website), user (visits the website looking for a job), poster (visits the website to post jobs) and affiliate (re-publishes jobs on his website).

    In the original tutorial, we had to make two applications, the frontend, where the users interact with the website, and the backend, where admins manage the website. Using Symfony 2.3.2, we would not do this anymore. We will have only one application and, in it, a separate secured section for admins.

Story F1: On the homepage, the user sees the latest active jobs

    When a user comes to Jobeet website, he sees a list of active jobs. The jobs are sorted by category and then by publication date – newer jobs first. For each job, only the location, the position available and the company are displayed.

    For each category, the list shows the first 10 jobs and a link that allows to list all the jobs for a given category (Story F2).

    On the homepage, the user can refine the job list (Story F3) or post a new job (Story F5).

Story F2: A user can ask for all the jobs in a given category

   When a user clicks on a category name or on a “more jobs” link on the homepage, he sees all the jobs for this category sorted by date.

   The list is paginated with 20 jobs per page.

Story F3: A user refines the list with some keywords

   The user can enter some keywords to refine his search. Keywords can be words found in the location, the position, the category or the company fields.

Story F4: A user clicks on a job to see more detailed information

   The user can select a job from a list to see more detailed information.

Story F5: A user posts a job

   A user can post a job. A job is made of several pieces of information:

  • Company
  • Type (full-time, part-time or freelance)
  • Logo (optional)
  • URL (optional)
  • Position
  • Location
  • Category (the user chooses in a list of possible categories)
  • Job description (URLs and emails are automatically linked)
  • How to apply (URLs and emails are automatically linked)
  • Public (wether the job can also be published on affiliate websites)
  • Email (email of poster)

    The process has only two steps: first, the user fills in the form with all the needed information to describe the job, then validates the information by previewing the final job page.

    There is no need to create an acount to post a job. A job can be modified afterwards thanks to a specific URL (protected by a token given to the user when the job is created).

    Each job post is online for 30 days (this is configurable by admin). A user can come back to re-activate or extend the validity of the job for an extra 30 days, but only when the job expires in less than 5 days.

Story F6: A user applies to become an affiliate

   A user needs to apply to become an affiliate and be authorized to use Jobeet API. To apply, he must give the following information:

  • Name
  • Email
  • Website URL

   The affiliate account must be activated by the admin (Story B3). Once activated, the affiliate receives a token to use with the API via email.

Story F7: An affiliate retrieves the current active job list

   An affiliate can retrieve the current job list by calling the API with his affiliate token. The list can be returned in the XML, JSON or YAML format. The affiliate can limit the number of jobs to be returned and, also, refine his query by specifying a category.

Story B1: An admin configures the website

   An admin can edit the categories available on the website.

Story B2: An admin manages the jobs

   An admin can edit and remove any posted job.

Story B3: An admin manages the affiliates

   The admin can create or edit affiliates. He is responsible for activating an affiliate and can also disable one. When the admin activates a new affiliate, the system creates a unique token to be used by the affiliate.

As a developer, you never start coding from the first day. Firstly, you need to gather the requirements of your project and understand how your project is supposed to work. That’s what you have done today. See you tomorrow!

mysql binlog日志自动清理及手动删除-ghan

达人科技 2017-01-04 16:38 说明: 当开启MySQL数据库主从时,会产生大量如mysql-bin.00000* log的文件,这会大量耗费您的硬盘空间。 mysql-bin....
  • u011277123
  • u011277123
  • 2017年01月12日 08:48
  • 76

Symfony2快速指南(一)

Symfony2快速指南(一)刚转入互联网公司不久,街道的第一个项目就是为一个权限管理系统制作一个权限配置工具,要求使用symfony2这个框架,之前没有接触过使用框架,更没有接触到php。所以这个项...
  • u011801189
  • u011801189
  • 2015年05月10日 10:37
  • 767

symfony2中的经典查询

这是symfony2中的连表查询 $sql = 'SELECT g FROM AppBundle:Goods g, AppBundle:GoodsRelate...
  • zxjiayou1314
  • zxjiayou1314
  • 2016年04月15日 18:39
  • 962

symfony2快速指南(二)

symfony2中的Bundlesymfony在它的第二版中引入了Bundle的概念,根据我现在粗浅的理解,这里的bundle可以看做是你所创建的web service的一个抽象。另外bundle还可...
  • u011801189
  • u011801189
  • 2015年05月17日 09:25
  • 843

[整理]代码编辑神器sublime text 2一些必不可少的插件

中文原文:一些必不可少的sublime text 2插件 整理自:Essential Sublime Text 2 Plugins and Extensions 请尊重版权,转载请注明来源,多谢!...
  • dachylong
  • dachylong
  • 2014年11月18日 16:24
  • 1253

【手把手教】windows下成功安装symfony2框架教程,并创建symfony应用

废话少说,这一刻大家等得太久了,直接入正题。 【前期准备】 1、安装PHP开发环境,推荐 phpstudy集成工具,配有好多种组合,比如:php+apache+mysql、php+nginx+my...
  • xiao_hu520
  • xiao_hu520
  • 2017年03月24日 17:59
  • 1565

Linux内核【链表】整理笔记(2)

关于链表我们更多时候是对其进行遍历的需求,上一篇博文里我们主要认识了一下和链表操作比较常用的几个内核API接口,其入参全都是清一色的struct list_head{}类型。至于链表的遍历,内核也有一...
  • wjlkoorey
  • wjlkoorey
  • 2016年07月24日 11:00
  • 583

为Symfony2和Redis正名,基于PHP的10亿请求/周网站打造

摘要:Octivi当下网站每周请求数已达10亿次,然而出人意料的是,他们仍然使用着Symfony2这个通常被认为低性能的PHP Framework。除此之外,他们更使用了Redis作为主要储存。 ...
  • aw344
  • aw344
  • 2015年07月22日 13:17
  • 1308

symfony2中mysql和mongodb的增删改查总结

预定义文中用到的变量: $em = $this->getDoctrine()->getEntityManager(); $repository = $em->getRepository(‘Acme...
  • zxjiayou1314
  • zxjiayou1314
  • 2016年01月13日 19:24
  • 1028

ZOJ3758:Singles' Day(快速素数判定法)

Singles' Day(or One's Day), an unofficial holiday in China, is a pop culture entertaining holiday on...
  • libin56842
  • libin56842
  • 2014年03月03日 21:56
  • 2499
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【整理向】Symfony2 Jobeet Day 2: The Project
举报原因:
原因补充:

(最多只允许输入30个字)