プロフィール
・実務未経験の27歳
・大学院卒業 〜 現在まで約2年フリーターとして就業中
・週3, 4勤務
・プログラミングスクール卒業生
目標にしていたAWS、Docker、CircleCIの導入ができたので一旦これでポートフォリオの完成にしようと思います。インフラの勉強むずい!
ポートフォリオについて
機能一覧
日々の運動習慣を記録できるアプリで、機能は大きく分けて三つあります。
- 運動した時間や走行距離などをグラフとして描画できる機能
- 基本的なCRUD機能を持つつぶやき投稿(つぶやきの新規作成、編集、削除、一覧表示)
- つぶやき投稿に対するいいね機能
- つぶやき投稿に対するコメント機能
- フォロー・フォロワー機能
テストユーザーの使用例
- ランニング → 走行距離・走行時間
- 筋トレ → 筋トレ部位・筋トレ時間
上記のように、ユーザーは「ランニング」と「筋トレ」に分けて運動を記録することができます。
それらのデータを使って三種類のグラフを描画します。
使用した技術
- サーバーサイド言語: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使って作成しました。
インフラ構成図
開発はdocker上で行いました。git pushするとCircleCIが起動し、RSpecとRubocopを使ったテストを実行させるように設定しています。
またAWSを導入しており、独自ドメインの取得およびhttps化まで行っています。
こちらの画像もdrawio使って作成しました。
終わりに
今後は画像投稿機能やレスポンシブデザインも取り入れていきたいです。
あとはRSpecの更なる充実!