- 社内の書籍を管理するにあたって以下の機能を満たしたアプリを作成したい
- できるだけ機能を複雑にしない
- できるだけ工数のかからない方法にする
- 社内の書籍の一覧表示
- 書籍の貸し出し状況も把握できるようにする
- 絞り込み検索機能を含む
- 並び替え機能を含む
- 発売日順
- 更新日順
- 五十音順
- 書籍の登録・削除
- 本の検索は googleのAPIにISBNコードをパラメータとして付与することで実現できる
- "https://www.googleapis.com/books/v1/volumes?q=isbn:" + isbn_code
- 本の検索は googleのAPIにISBNコードをパラメータとして付与することで実現できる
- ベーシック認証などは実装せず、SGのルールで御殿山IPからの接続を許可する
- ユーザー情報は持たない
- 借りるタイミングで自分の名前を都度入力する
- 故にセッション管理や認証機能不要
- 管理者権限のようなものを実装しない
- 本の登録、削除、貸し出し状況の変更(借りている人のリセット)の操作を全員ができる状態でよし
- 借りるタイミングで自分の名前を都度入力する
- 同じ本の重複による機能制御はしない
- 同じ本が何冊あるかの総数はカラムに格納するが、それをもとにした機能分岐は実装しない
-
固定ヘッダー
- 一覧ページのタブを表示
- 登録ページのタブを表示
-
本の一覧ページ
- 1ページ30冊程度のページネーション
- タイトルクリックで詳細ページに移動
-
本の詳細情報ページ
- 「借りる」ボタン配置
- 名前を入力するモーダルもしくはページを表示
- 冊数を増減するボタン配置
- 「0」にした場合は論理削除として扱う
- レコードは削除しないが一覧表示には出さない
- 「0」にした場合は論理削除として扱う
- その時点で本を借りている人の名前を表示する
- 「借りる」ボタン配置
-
本の登録ページ
- ISBNコードから本を登録する
- 未登録の場合は本の冊数を追加入力して登録
- 登録済みの場合は、本の詳細ページのリンクを表示し、総冊数を増やすように案内
もしくは
- 本の情報を手動入力して登録するフォームも配置
- ISBNコードから本を登録する
- リレーショナルDB
- せっかくなのでAurora MySQL バージョン3で試してみたい
books
テーブル
カラム名 | メモ | 型 | 説明 |
---|---|---|---|
id | primary | 整数 | 連番 |
title | NOT NULL | 文字列 | 本のタイトル(サブタイトルは連結) |
auther | 文字列 | 著者(複数名の場合は連結) | |
published_at | 日付 | 発売日 | |
description | 文字列 | あらすじ、解説 | |
isbn_code_10 | 文字列 | 10桁ISBN | |
isbn_code_13 | 文字列 | 13桁ISBN | |
thumbnail_small | 文字列 | 小サイズサムネイル画像URL | |
thumbnail | 文字列 | サムネイル画像URL | |
total | NOT NULL, default 1 | 整数 | 本の総冊数 |
updated_at | NOT NULL | 日時 | データ最終更新日時 |
rental
テーブル
カラム名 | メモ | 型 | 説明 |
---|---|---|---|
id | primary | 整数 | 連番 |
book_id | foreign key | 整数 | 借りた本のid |
name | NOT NULL | 文字列 | 借りる時に入力した名前 |
rentaled_at | NOT NULL | 日時 | 借りた日付 |
returned_at | default NULL | 日時 | 返却したタイミングで日時を挿入 |