開発の事例
事例 ~農産物収穫情報管理システム~
農園を営むお客さま向けに、本日はどの畑で何が収穫できるかをホームページにて情報発信するシステムをご依頼いただきました。ご要望は、第一に最小予算で、第二に要件詳細も提案してほしいという内容です。ホームページは WordPress で構成されていたため、独自プラグインの開発という手法で行うことといたしました。
また、最小予算に応じるため、アジャイル進行とし完成時点で初レビューというスピード案件となりました。
●契約形態:請負契約
●納期:なるはや ※受注から5日目に納品検収を完了。
システム環境
- 開発及び本番環境はレンタルサーバー上で稼働する WordPress で行う。
- 開発言語はPHP、WordPressプラグインとして実装する。
- マスタ情報は既存WPデータベースに新規テーブルを利用し初期データをCSVインポート。
- HTML出力関数は WordPress を使用した公開ページで使用する。
- シェルターミナルは使用不可。FTPで実ファイルを編集。
- データベースへは adminer で操作。
開発工程
- データベースにテーブル作成
- マスター登録
- 管理者用UI作成
- 収穫情報API作成
- HTML出力関数作成
- 統合テスト

管理者用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 に寄せられる課題の事例を見る