kumackey / book-output

0 stars 0 forks source link

BookOutPut

スクリーンショット 2020-03-12 5 46 05

https://bookoutput.work/

本に関するクイズを作り、みんなで共有するWEBサービスです。

使い方紹介: gif ※ 2分半ほどの長さです。

動機

このアプリ作成者(私)は、読書をするのが好きです。

せっかく読書をしても、読んだままとなってしまい、その知識が定着しないのが悩みでした。

知識を定着させるには、その知識に関する問題(クイズ)を作るのが有効と言われています。しかし、本に関するクイズを作るサービスが見つかりませんでした。

このサービスは、私が作りたかったサービスです。

詳細な機能の企画に関しては、企画書をご参照ください。

企画書

要件定義

issueを用いて実装したい機能の管理を行っております。 https://github.com/kumackey/book-output/issues

今後追加したい機能に関しては【機能要件】として表示しております。

現在の主要機能

ER図

er_bookoutput (3)

データベース設計については以下のように記事を書きました。

クイズアプリにおけるデータベース設計のアンチパターン

GoogleBooksAPIだけで本リソースの取得をする設計を行い、失敗した話

コードのアピールポイント

技術的な核心となっている箇所については、記事を書きました。

【Ruby on Rails】Google Books APIを叩く際の5つのTips

accepts_nested_attributes_forを使わずに複数リソースを同時登録する(クイズアプリを例に)

インフラ

素早くリリースが行え、継続的な改善・保守がしやすいクラウドでインフラを構築しました。 クラウドインフラとして現在のデファクトスタンダードであるAWSを選択しました。

AWS: VPC / EC2 / RDS / S3 / ElastiCache / Route53 / IAM / ACM

ファイアウォールやsshのポート番号をデフォルトからずらすなど、セキリュティには注意しました。

開発の流れ

基本的な開発の流れとしては以下の通りで、チーム開発を想定した流れを意識しました。

デプロイ手順書

開発環境

チーム開発での開発環境構築を想定し、Docker,docker-composeを使用いたしました。

Dockerfile, docker-compose.yml

確認手順は以下の通りです。

$ git clone git@github.com:kumackey/book-output.git

$ docker-compose build

$ docker-compose run web rails db:create db:migrate db:seed

$ docker-compose up -d