Skip to content

Tsuchiya2/cat_salvages_the_relationship

Repository files navigation

ReLINE 【"猫さん"】

https://www.cat-reline.com/

"猫さん"

サービス概要

休止状態に陥ったLINEグループに対して、ある期間休止状態が経過すると、不定期に交流のきっかけになるようなメッセージを"猫さん"が送信してくれます。そのLINE通知をきっかけに交流の発生を促してくれるサービスになります。

使用例(イメージ)

使用例のイメージ

使用画面(一部)

Webトップページ QRコード(Web) LINEアプリ
Webトップページ QRコード LINEページ
Webのトップ画面です。キャラクター画像の下にある友だち追加ボタンで友だち追加画面に遷移します。 友だち追加ボタンを押すと、Webの場合はこちらのページに遷移します。 スマートフォンで友だち追加ボタンを押す、もしくはQRコードをスマートフォンで読み取った場合はこちらのようなページに遷移します。

使用技術

バックエンド

  • Ruby 3.0.2
  • Rails 6.1.4.1
  • RSpec 3.10.1
  • LINE Messaging API
  • Heroku Scheduler

機能における主要な Gem

  • line-bot-api(LINE Messageing API)
  • sorcery(管理運営のログイン)
  • pundit(認可)

ER図

ER図

フロントエンド

  • Bootstrap 5
  • JavaScript

インフラ図

インフラ図

カバレッジ( model / system )

カバレッジ

苦労した部分

エンドポイント(URL)が1つに対して、LINE Messaging API で発生する多数のイベント(リクエスト)処理をコードに書き起こすのに苦労しました。Fat Controllerにならないように、関連する記述をlinesフォルダに切り出してみたり、Rubocopの制約の中でコードを書き直してみたりと試行錯誤を行いながら開発を進めてきました。

実際にエンジニアとして働いている方々から意見をいただいたり、書籍「パーフェクトRuby on Rails」などの学習を経て、Fat Modelにならないように注意しながら、Rubocopの規約にも引っかからないようにしながら以下の図のような処理を実装しています。

LINE Botのリアクション

執筆したQiita記事

セットアップ

  • Ruby:3.0.2
  • Rails:6.1.4.1

master.key は開発責任者が管理しております。個人で試される際は、新しいmaster.keyの用意と上記Qiitaなどを参考にして環境変数に必要な値を渡してあげてください。

# クローン後
$ bundle install
$ bin/rails db:create
$ bin/rails db:migrate
$ bin/rails db:seed
$ bin/rails s

# ルーティング確認
$ bin/rails routes

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages