LoginSignup
8
4

More than 1 year has passed since last update.

AWS / CircleCI / Docker を使ったアプリの完成

Last updated at Posted at 2022-01-06

プロフィール

・実務未経験の27歳
・大学院卒業 〜 現在まで約2年フリーターとして就業中
・週3, 4勤務
・プログラミングスクール卒業生

目標にしていたAWS、Docker、CircleCIの導入ができたので一旦これでポートフォリオの完成にしようと思います。インフラの勉強むずい!

ポートフォリオについて

機能一覧

日々の運動習慣を記録できるアプリで、機能は大きく分けて三つあります。

  1. 運動した時間や走行距離などをグラフとして描画できる機能
  2. 基本的なCRUD機能を持つつぶやき投稿(つぶやきの新規作成、編集、削除、一覧表示)
  3. つぶやき投稿に対するいいね機能
  4. つぶやき投稿に対するコメント機能
  5. フォロー・フォロワー機能

テストユーザーの使用例

  • ランニング → 走行距離・走行時間
  • 筋トレ → 筋トレ部位・筋トレ時間

上記のように、ユーザーは「ランニング」と「筋トレ」に分けて運動を記録することができます。
それらのデータを使って三種類のグラフを描画します。

screenshot.png

使用した技術

  • サーバーサイド言語:Ruby
  • データベース:PostgreSQL
  • インフラ:AWS(EC2, RDS, Internet Gateway, Route53, ELB, Certificate Manager ), Docker&docker-compose, CircleCI
  • ソース管理:Git
  • フロント:HTML, CSS, JS
  • テストフレームワーク:RSpec

使用したgem (一部抜粋)

  • chart.js (グラフの描画)
  • gon (RailsとJavascriptの連携)
  • kaminari (ページネーション)
  • rspec-rails (テスト)
  • capybara (UIテスト用のフレームワーク)
  • factory_bot_rails (テスト用のサンプルデータ作成)
  • rubocop (コード解析)
  • launchy (デバック)
  • pry-rails (デバック)

ER図

こちらの画像はdrawio使って作成しました。
ER図.drawio.png

インフラ構成図

開発はdocker上で行いました。git pushするとCircleCIが起動し、RSpecとRubocopを使ったテストを実行させるように設定しています。
またAWSを導入しており、独自ドメインの取得およびhttps化まで行っています。
こちらの画像もdrawio使って作成しました。
インフラ構成図.drawio.png

終わりに

今後は画像投稿機能やレスポンシブデザインも取り入れていきたいです。
あとはRSpecの更なる充実!

8
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
4