本に関するクイズを作り、みんなで共有するWEBサービスです。
使い方紹介: gif ※ 2分半ほどの長さです。
このアプリ作成者(私)は、読書をするのが好きです。
せっかく読書をしても、読んだままとなってしまい、その知識が定着しないのが悩みでした。
知識を定着させるには、その知識に関する問題(クイズ)を作るのが有効と言われています。しかし、本に関するクイズを作るサービスが見つかりませんでした。
このサービスは、私が作りたかったサービスです。
詳細な機能の企画に関しては、企画書をご参照ください。
issueを用いて実装したい機能の管理を行っております。 https://github.com/kumackey/book-output/issues
今後追加したい機能に関しては【機能要件】として表示しております。
データベース設計については以下のように記事を書きました。
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