サービスの概要
【サイト名】
Fodeli Online
【コンセプト】
フードデリバリー配達員の情報交換や交流を目的としたサービス
【サービスの開発に至るまでの背景】
私自身、2社フードデリバリーで働いていた経験があり、出来高制ということもあり、注文が来なくて稼げない時期がありました。
一般的な会社だったら上司に仕事のコツを教えて貰えたりすると思いますが、完全個人のこの仕事では基本的には自分でコツを見つけていくしかありません。
そんな中で、配達員同士がもっと気軽に情報交換ができるサービスがあったらいいなと考え、このサービスを開発することにしました。
アプリケーションの機能
ユーザー登録機能
■ ログイン機能
■ ログイン情報の保持
■ ユーザー情報編集機能
■ プロフィール画像変更機能(carrierwave)
■ 検索機能
ツイートの投稿機能
■ 投稿一覧表示機能
■ 投稿詳細表示機能
■ 画像投稿機能(carrierwave)
■ コメントの投稿と削除機能
■ いいね機能(Ajax)
■ 検索機能
ページネーション機能(Kaminari)
オープンチャット機能
■ コメントの投稿と削除機能(Ajax)
■ 地域別絞り込み機能
個人チャット機能
■ コメントの投稿と削除機能(Ajax)
DB テーブルのリレーション管理
DB トランザクション制御機能
通知機能(フォロワーがツイートした時など)
フォロー機能(Ajax)
単体テスト機能(Rspec)
統合テスト機能(Rspec)
技術的ポイント
・RSpecで Model, Request, System テスト記述(計 258examples)
・Ajaxを用いた非同期処理(フォロー/未フォロー、ツイートに対するいいね機能などの切り替え表示)
・Bootstrapによるレスポンシブ対応
・Rubocopを使用したコード規約に沿った開発
・15 個のモデルをそれぞれ関連付けて使用
設計
画面設計(モックアップ)
DB設計(ER図)
AWS(インフラ)構成図
使用技術
Ruby 2.5.7
Ruby on Rails 5.2.3
PostgreSQL 11.14
Nginx
Puma
Docker/Docker-compose
Rspec
Bootstrap
Rubocop
AWS
■ VPC
■ EC2
■ RDS
■ Route53
■ ALB
■ SES
開発の流れ
一人擬似チーム開発の練習
チーム開発の練習として
【issue作成 → branch作成 → プルリク → マージ】
この流れで開発を進めました。(合計32issue)
push前にテストとリンターでコードのチェック
Rspecで書いたテストがパスしたら、Rubocopでコードのチェックをし、修正が必要ならコードの修正。
その後、再度テストがパスしたらpushを実行しています。
開発環境から本番環境へデプロイまでの流れ
【開発環境】
dockerコンテナ起動→コーディング→githubにpush
【本番環境】
EC2にSSHでログイン→githubからpull→dockerコンテナ起動
アプリケーションのデモ動画
ユーザー関連
動画内容
■ユーザー新規登録登録
■ログイン&ログアウト
■プロフィール画面の紹介
■プロフィール編集機能
■パスワード再設定
■ユーザーをフォロー
ツイート関連
動画内容
■ツイートの投稿と削除
■画像投稿
■コメント機能
■いいね機能
■検索機能
チャット関連
動画内容
■個人チャット機能の紹介
■オープンチャット機能の紹介
参考にした教材
Rails
Ruby
HTML&CSS
ITの基礎
Linux
git
docker
AWS