開発の事例

事例 ~農産物収穫情報管理システム~

農園を営むお客さま向けに、本日はどの畑で何が収穫できるかをホームページにて情報発信するシステムをご依頼いただきました。ご要望は、第一に最小予算で、第二に要件詳細も提案してほしいという内容です。ホームページは WordPress で構成されていたため、独自プラグインの開発という手法で行うことといたしました。

また、最小予算に応じるため、アジャイル進行とし完成時点で初レビューというスピード案件となりました。

●契約形態:請負契約
●納期:なるはや ※受注から5日目に納品検収を完了。

システム環境

  • 開発及び本番環境はレンタルサーバー上で稼働する WordPress で行う。
  • 開発言語はPHP、WordPressプラグインとして実装する。
  • マスタ情報は既存WPデータベースに新規テーブルを利用し初期データをCSVインポート。
  • HTML出力関数は WordPress を使用した公開ページで使用する。
  • シェルターミナルは使用不可。FTPで実ファイルを編集。
  • データベースへは adminer で操作。

開発工程

  1. データベースにテーブル作成
  2. マスター登録
  3. 管理者用UI作成
  4. 収穫情報API作成
  5. HTML出力関数作成
  6. 統合テスト

管理者用UIの画面キャプチャ

管理者用UIの画面キャプチャ

管理者用UI仕様

  • 独自PHP画面を用意する
  • 各品種ごとに ON/OFF ボタン
  • checkbox にて1回押すごとにis_pickable 1/0 切替
  • checkbox変更時は非同期通信で即時更新する
  • 1回の非同期通信で更新する対象は1レコードのみとする
  • 更新失敗時は元の表示に戻し、エラーメッセージを表示する
  • 失敗時は「更新に失敗しました」などの固定文言を表示する
  • 詳細エラーは利用者に出さず、エラーログに記録する
  • 開発環境は無いため、本番環境のみ
  • 「全OFF」ボタンは不要(品種は30程度なので問題ない)
  • 更新後に即APIへ反映
  • WPログインしていなくても操作可能
  • CSRF対策は、WordPress を読み込んだ上で nonce を使用する
  • 更新系は POST のみ
  • APIは GET のみ

収穫情報API(公開)仕様

[返却条件]

  • WordPress プラグイン内の処理として、GETリクエストにJSONを返す
  • GETリクエストのみ返却
  • 文字コードはUTF-8
  • 収穫場所ごとにグループ化して返す
  • 1つの品種が複数エリアに属する場合、該当する各配列にそれぞれ含める
  • 並び順は sort_order ASC, id ASC
  • キャッシュは無し
  • データなし → 200 OK で空データ
  • APIは常にキーを返す
  • 各キーの値は配列とする
  • 該当データがない場合は空配列を返す
  • システムエラー → 500
  • URL不正 → 404

お客さまの声

完成後のイメージだけ漠然とお伝えするだけの無茶な発注にも関わらず、快く引き受けてくれただけでなく、想像を超えるでき映えに正直びっくりしました。

studio317 に寄せられる課題の事例を見る