今年の集大成を詰め込んだ 図書管理ツール作ってみた
はじめに
何かを管理するのはとても大変 特に本など常に貸し借りが発生し可視化しにくいものだとなおさらです。現状ではSlackで図書を管理していますが、一目で状態がわからない どの本があるのか把握できないなどの問題があるのではないでしょうか。
それを解決するために今回作成したのが図書管理ツール
コンセプトは 'スマホにあなただけの図書館を'です
まず図書管理ツールとは
「図書館」を作ってみませんか。単なる蔵書管理だけではなく、人と本が関わる場所の価値を高めるツールとして、リブライズをご検討ください。
特徴
-
簡単にスタート
インターネットにつながるパソコンとバーコードリーダーがあればすぐに運営できます。 -
蔵書情報の登録、貸出・返却処理
管理できる蔵書数に制限がなく、数十冊から数万冊まで、どのような規模でも取り扱えます。 -
使いやすさ
小中学校で子どもが操作できるほど簡単で親しみやすいインターフェースを持っています。 -
導入支援パッケージ
自社での利用に適しているかを正式導入前に評価可能です。 -
多くの実績
2012年9月にサービスを開始し、2023年1月現在約2,500カ所の「図書館」が開設されており、自治体や企業でも多くの導入実績があります。また、新聞や雑誌、ネットメディアでの紹介事例も多数あります。 -
専用サポート窓口・動作保証
業務を止めずに運営ができるよう、動作保証を行うほか、専用のサポート窓口を用意し、不明な点がすぐに解決できる体制を整えています。 -
セキュリティ
セキュリティに配慮した設計を行い、随時最新モジュールへアップデートしています。また、セキュリティ基準をお持ちの法人さまに関して、評価項目への記載といった対応などを行います。 -
企業内システムとの連動
すでにあるシステムや社員IDを利用した貸出などに対応いたします。詳細はご相談ください。(Enterpriseプランのご加入が必要です) -
サービスの持続性・継続性
リブライズは2012年9月のサービス開始からすでに10年以上安定した運営を続けているおり、書誌データに関しては、Amazon.co.jpの情報ではなく、日販(日本出版販売)さまより許諾を受けたものを利用しております。
まあこんな感じでセキリティ サービス持続性 依存性の管理なども考えられ,そして10000冊までは無料という破格のサービスです。特に驚いたのはアマゾンのデータに依存していないという点。 主要機能を特定のコンテンツに依存させないことで安定したサービス運用ができるんだなと
一方私の場合
機能
- 検索機能
- 本の管理用編集機能(貸出中などのステータスなどを手動で)
- 本の追加機能
- 本詳細閲覧機能
- 本貸出状況管理機能
今後追加予定
- 本の詳細編集機能
- 本の削除機能
- 生徒用図書貸出ページ
- 読書記録
- 本のコメント機能 感想共有用コミニティ
背景
現状ではSlackで図書を管理していますが、一目で状態がわからない どの本があるのか把握できない
などの問題があります。また履歴もどんどん溜まっているので運用すればするほど管理がめんどくさいくなる
それを解決したいのがこのアプリ
でも
正直言ってなに一つ大手に勝っていません
アプリ性能や機能面でも現状は負けています。 でも
このアプリが勝っているところ
それは
スマホだけで管理ができる!
管理するのに膨大な時間は必要ありません。どの本が貸出中なのかを把握するこれだけでも図書管理はだいぶやりやすくなると考えています。しかも今回のコンセプトはスマホで管理が可能。わざわざブラウザを開かなくても アプリが入っているだけでど一目瞭然です。
なにが一目瞭然なのか....
誰が借りたか どの本が帰って来ていないか一目瞭然(重要)
私が力を入れたところはどの本が貸出中か一目でわかるところ。 Slackで管理している場合だと履歴が溜まっていき残るため どの本が帰って来ていないのかがとてもわかりにくい。
でもこのように条件を絞って管理できることで一目でどの本が貸出中かわかります
ここからは未実装ですが...
本を通じた交流が生まれるということ これも私が大手に勝っていることの一つです。
コメント機能を通じて図書コミニティの活性化を目指します。自分がAと思っていたことでも別の人から見たら 全く別の捉え方をしている場合もあります。その違いを知ることも良いよい学習につながってくるのではないでしょうか。
今後コメント機能を実装することで本を読むハードルをさげ 本に対する別の見方を提供することができると考えています。
最後に
特に力を入れたところ
構成
再利用性を高めた設計
commponentを作成して共通デザインを作成しました。一箇所を変更するだけで全体に反映させることができます。またtreeDesignというものを採用し どのコンポーネントにどのようなコンポーネントが使われているかわかりやすくしています。localには例えば特定のページにしか使われないようなコンポーネントを sharedには全体的に使われているコンポーネントが入っています。tokenは例外的でコンポーネントではないものの主にUIを構成する上で重要な要素(colorやtextStyle)を定義しています。
クリーンアーキテクチャを意識した設計
ここは主にfirebaseのところです。domainで抽象クラスを定義して infractureでデータベースに関する処理をかき useCaseでそのやりとりを行うと言ったものです
反省点
テストコードを全く活かせなかった テストコードを活かし保守性を高めた物にしたかったが、勉強不足で断念,
現在の課題です。
パフォーマンスを意識した設計ができなかった。現段階では登録されている本を全て一度にとって来てしまっているので個別個別に取得できるようにする必要がある。
機能を十分に作成できなかった。(だが初期段階で必要な機能の基礎の全てが詰まっている あとは応用)
参考
Discussion