Skip to content

rako/shelfport

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ShelfPort

本に関する情報を一つに

機能概要(最低限の予定)

  1. [完了] 読みたい本を追加するときにその引用などを追加できるような機能がある。これによって、いつどこで見た情報によって読みたくなったのかを思い出せるようにする。
  2. 借りている本のリストを図書館毎に表示する。これによって、貸出期限をスケジュール表に書いたり、図書館毎の HP に行っていつ返さないといけないかを見なくて済むようにする。
  3. 本をいつから読み始めていつ読み終わったのかを記録することで、追加機能で本の紹介記事で本当に本を読んだのかを確認できるようにする。

追加予定機能(Issue に移行中)

  • カーリルの図書館 APIを使い、自分の行きつけの図書館かつ自身の住んでいる都道府県内の図書館に本があるか表示する。
  • 英語多読タグかセクションを作る。海外の ISBN について調べていないため、案のみ。多読タグで絞り込んだ際に、総語数を表示できるようにしたらいいかもしれない。
  • モバイルネイティブアプリは決まっていない。
  • Amazon の拡張機能として商品ページのどこかに表示出来るようにする。
  • SNS 系の類はつけない予定。他人と比較するものではなく、過去の自分との比較をしてほしいから。その代わり、本をピックアップして簡単な記事を書けるようにする機能を付ける予定。
  • 鍵を付けてプライベート機能を実装する予定。
  • バーコード読み取り等の入力によって、登録されると読み始めた日が記録される。これは、技術書の読書術から発想を引用した。

技術スタック(予定)

技術領域 技術名
フロントエンド React
バックエンド Django
データベース PostgreSQL
インフラ AWS
Web サーバー Nginx/Gunicorn
SSL 証明書 Let's Encrypt

書誌データAPIに国立国会図書館のを使いたいが、書影データが同時に送られてこないことと出力形式がJSONでないことが難点であり、書誌データと書影データの非同期処理をしようとしたらGunicornでは対応していない。GoogleAPIで書誌データを引っ張ってくるようにするが、網羅性が少し低いため変更予定。

技術選定の理由

  • Validation や、XSRF などのセキュリティを考えるのに余計な時間や労力を使いたくないから。セキュリティは好きだが、最新情報を得ながら開発するのには厳しい。
  • 上記と似たような理由だが、認証機能などの権限周りも全て完成されている方が良い。
  • Python を講義や競プロで使用しており、一番使用歴が長いから。
  • 歴史があり、エコシステムが大きく、質問を投げやすいと思ったから。Django をテーマに Web アプリ開発をする書籍が複数あったため。また、他のフレームワークに行く際に、アーキテクチャの考え方が活かせると思ったから。
  • AWS と PostgreSQL は書籍が扱っているため、それに沿った。NoSQL は触ったことあるが、SQL の練習として RDBMS を採用することにした。

About

本に関する情報を一つに

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published