2. 2日目: このプロジェクトについて

  • この記事は Symfony 1.4 向けのオリジナルの Jobeet Tutorial の一部分です。
1 日目は、まだコードを一行も書いていませんが、環境のセットアップと、空の Symfony プロジェクトを作成しました。
今日はプロジェクトの仕様について詳しく扱います。最初にコードに飛び込む前に、もう少しプロジェクトについて説明してみましょう。
以下のセクションでは、いくつかの単純なストーリーでプロジェクトの最初のバージョンで実装する機能について説明します。

2.1. ユーザーストーリー

Jobeet の ウェブサイトは、4 つのユーザータイプがあります。

  • 管理者(ウェブサイトを所有し、管理している)
  • ユーザー(仕事を探してウェブサイトを訪問します)
  • 投稿者(ジョブを投稿する為にウェブサイトを訪問します)
  • アフィリエイト(彼のウェブサイト上でジョブを再発行します)
元のチュートリアルでは、2 つのアプリケーションを作る必要がありました。
ユーザがウェブサイトと対話するフロントエンドとウェブサイトを管理者が管理するバックエンドです。
もはや Symfony 2.3.2 を使用してこのようなことはしないでしょう。
一つだけのアプリケーションを持ち、その中に管理者のために隔離されセキュリティで保護されたセクションを持つでしょう。

2.1.1. ストーリー F1: ホームページでは、ユーザーは最新の有効なジョブを閲覧します

ユーザーが Jobeet のウェブサイトに来るとき、彼はアクティブなジョブのリストを見ています。ジョブは、カテゴリ別に並べられ、且つ、新しいジョブを最初にして公開日順に並べられています。
それぞれのジョブは場所、可能な役職、および、会社名のみが表示されます。
各カテゴリでは、最初の 10 個のジョブがリストに表示されます。そして、指定されたカテゴリ(ストーリー F2 )のすべてのジョブを表示する一つのリンクを表示します。
ホームページでは、ユーザーは、ジョブリスト(ストーリー F3)を絞り込むか、新しいジョブ(ストーリー F5 )を投稿することができます。

2.1.2. ストーリー F2:ユーザーが特定のカテゴリ内のすべてのジョブを問い合わせることができます

ユーザーはカテゴリ名やホームページの「more jobs」リンクをクリックすると、日付順に並べられたこのカテゴリのすべてのジョブを見ることが出来ます。
リストはページごとに20件のジョブでページ分割されています。

2.1.3. ストーリー F3:ユーザーは複数のキーワードでリストを絞込みます

ユーザはいくつかのキーワードで絞込み検索できます。場所、役職、カテゴリ、会社名欄にある単語をキーワードとすることが出来ます。

2.1.4. ストーリー F4:ユーザーはより詳細な情報を表示する為、ジョブをクリックします

ユーザは、より詳細な情報を表示する為に、リストからジョブを選択することができます。

2.1.5. ストーリー F5:ユーザーは、ジョブを投稿します

ユーザーは、ジョブを投稿することができます。ジョブは、複数の情報から構成されます。

  • 会社
  • タイプ(フルタイム、パートタイムもしくはフリーランス)
  • ロゴ(オプション)
  • URL(オプション)
  • 役職
  • 場所
  • カテゴリ(ユーザーは、選択可能なカテゴリのリストから選びます)
  • 仕事の説明(URLとメールが自動的にリンクされます)
  • 応募方法(URLとメールは自動的にリンクされます)
  • 公開(アフィリエイトのウェブサイト上でもジョブを公開することが出来るかどうか)
  • Eメール(投稿者の電子メール)
手続きは 2 つのプロセスのみです。まず、ユーザーはジョブを説明するために、必要なすべての情報をフォームに入力した後、最終的なジョブページをプレビューすることにより、情報を検証します。
ジョブを投稿するアカウントを作成する必要はありません。
ジョブは(作成されたときにユーザに与えられたトークンによって保護された)特定の URL のみで変更することが出来ます。
各ジョブは 30 日間有効です(これは管理者によって設定されます)。
ユーザーは戻ってきて再度アクティブにするか、 5 日未満で期限切れとなる場合のみ、ジョブの期間の検証を 30 日以上に広げることが出来ます。

2.1.6. ストーリーF6:ユーザーがアフィリエイトになるために実施すること

ユーザーがアフィリエイトになり、且つ、 Jobeet API を使用することを承認されるために、次のような情報を提供する必要があります。

  • 名前
  • E メール
  • ウェブサイトの URL
  • Name
  • Email
  • Website URL

アフィリエイトのアカウントは管理者(ストーリー B3 )によってアクティブ化されなければなりません。アクティブ化した後は、アフィリエイトは API で利用するトークンを電子メールで受け取ります。

2.1.7. ストーリー F7:アフィリエイトは現在有効なジョブのリストを取得します

アフィリエイトは、自分のアフィリエイトトークンを使用して API を呼び出して、現在のジョブリストを取得できます。リストは、 XML 、 JSON や YAML 形式で返すことができます。
アフィリエイトは、返されるジョブ数を制限することが出来、また、カテゴリを指定することでクエリを絞り込むことができます。

2.1.8. ストーリー B1:管理者はウェブサイトを設定します

管理者はカテゴリを編集し、ウェブサイト上で有効にできます。

2.1.9. ストーリー B2:管理者はジョブを管理します

管理者は投稿されたジョブを編集、削除することができます。

2.1.10. ストーリー B3:管理者は、アフィリエイトを管理します

管理者は、アフィリエイトの作成または編集ができます。管理者は、アフィリエイトをアクティブ化する責任があり、また、それを無効にすることができます。
管理者は新しいアフィリエイトをアクティブ化すると、システムは、アフィリエイトが使用する一意のトークンを作成します。
開発者は、初日からコードを書き始めることはありません。まず、プロジェクトの要件を収集する必要があり、プロジェクトがどのように動作するようになっているかを理解する必要があります。
今日はここまでです。では、また明日!

Note

Creative Commons License

このチュートリアルは、クリエイティブ・コモンズ・ライセンス 表示 - 継承 3.0 非移植 (CC BY-SA 3.0) のもとでライセンスされています。 翻訳の元にしたオリジナルはこちらです。 Symfony2 Jobeet http://www.intelligentbee.com/blog/tag/symfony2-jobeet/.