Skip to content

nog-dai/booknos_flask

Repository files navigation

flask_first_app

概要

  • 社内の書籍を管理するにあたって以下の機能を満たしたアプリを作成したい
  • できるだけ機能を複雑にしない
  • できるだけ工数のかからない方法にする

機能メモ

  • 社内の書籍の一覧表示
    • 書籍の貸し出し状況も把握できるようにする
    • 絞り込み検索機能を含む
    • 並び替え機能を含む
      • 発売日順
      • 更新日順
      • 五十音順
  • 書籍の登録・削除
  • ベーシック認証などは実装せず、SGのルールで御殿山IPからの接続を許可する
  • ユーザー情報は持たない
    • 借りるタイミングで自分の名前を都度入力する
      • 故にセッション管理や認証機能不要
    • 管理者権限のようなものを実装しない
      • 本の登録、削除、貸し出し状況の変更(借りている人のリセット)の操作を全員ができる状態でよし
  • 同じ本の重複による機能制御はしない
    • 同じ本が何冊あるかの総数はカラムに格納するが、それをもとにした機能分岐は実装しない

ページ

  • 固定ヘッダー

    • 一覧ページのタブを表示
    • 登録ページのタブを表示
  • 本の一覧ページ

    • 1ページ30冊程度のページネーション
    • タイトルクリックで詳細ページに移動
  • 本の詳細情報ページ

    • 「借りる」ボタン配置
      • 名前を入力するモーダルもしくはページを表示
    • 冊数を増減するボタン配置
      • 「0」にした場合は論理削除として扱う
        • レコードは削除しないが一覧表示には出さない
    • その時点で本を借りている人の名前を表示する
  • 本の登録ページ

    • ISBNコードから本を登録する
      • 未登録の場合は本の冊数を追加入力して登録
      • 登録済みの場合は、本の詳細ページのリンクを表示し、総冊数を増やすように案内

    もしくは

    • 本の情報を手動入力して登録するフォームも配置

DB設計

  • リレーショナル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 日時 返却したタイミングで日時を挿入

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published