観賞魚のWikiを自作する日記シリーズ 〜要件定義〜
はじめに
先日作るとは思い立ったものの、どう言う機能が必要か、どう言ったページがあるといいかがいまだにふわっとしている。
勢いでアカウント部分だけ適当に作ったものの、それで本当にいいのかもわからない。
そこで、今日は要件定義について考えてみようと思う。
今回作るものの概要
今回作るものは多人数編集型の飼育方法が載った観賞魚の図鑑である。
図鑑の形式はmarkdown。
荒らし対策のために編集にはログインを必要とし、できればバージョンも管理したい。(編集履歴を残す)
一番上に写真が何枚かあって、その下に本文、一番下に記事へのコメントがあるといいなと思っている。
こんな具合の2種の魚がいたとして、その魚のデータには
みたいにタグとして情報を持たせる。
タグはユーザーが自由に追加できるものとする。
大まかにはこのようなところだろうか。
これをできるだけミニマムに作っていって、後で少しずつリッチにしていく方針で行こうと思う。
必要な機能
- アカウント登録
- ログイン
- ログアウト
- 退会
- deleted_userになるが、作成・編集した図鑑は当たり前ながら残る。書いたコメントは消える。
- 同じメアドで再登録ができる。
- 図鑑投稿
- 図鑑検索
- tagと魚名での検索。
- 新着図鑑の表示
- 図鑑へコメント
- 図鑑の編集
- ユーザーの書いた図鑑・編集した図鑑の一覧をユーザーのページに表示
ミニマムに行くとこの辺に絞られるのじゃないだろうか。
APIの仕様
- jsonを返し、成功時はステータスに200、失敗時は一律400を返す。
失敗時はjsonにエラーキーとして単語とメッセージ(例えば投稿失敗なら{ error_key: title, message: too short } )を入れ、なぜ失敗したかをフロントに伝達する。
RestfulっぽいAPIにしたいので、post, put, get, deleteを使い分ける。新規作成-post
- 編集-put
- 表示-get
- 削除-delete
一つのAPIごとにGitHubのWikiにドキュメントとして使い方を残していく(できれば)。
ページのデザイン(おおまか)
必要なページ
- top
- 図鑑ページ
- userページ
上にバー的なものを作る。
バーにはログイン/ログアウトぼたん、アカウント作成ボタン、アカウント設定ボタン、記事投稿ボタン、ロゴ を置く。
左に新着記事やカテゴリを置いたサイドバーを設置する。
以上が大まかな設計図である。
早速作っていこうと思う(続く)