迷子猫掲示板 Meow

OVERVIEW

全国の迷子猫情報を共有できるアプリです。

URL: https://meow-bbs-for-finding-lost-cats.onrender.com
GitHub: https://github.com/Ruka1101/lost_cats

※初回のページ表示に30秒ほどかかります。


概要

全国の迷子猫情報を共有できるアプリです。
自分の猫と思われる情報を見つけた場合、投稿者とメールでやり取りが可能です。

以下の機能を備えています。

・ユーザー管理機能(devise)
 新規登録、ログイン/ログアウト、パスワード変更、ユーザー情報変更

・迷子猫情報投稿機能
 詳細情報、画像添付(CarrierWave)

・迷子猫情報閲覧機能
 発見場所をGoogleMap上に表示(Google Map API)、投稿者にメール送信(ActiveMailer)
 投稿者は、投稿の閲覧・編集・削除が可能
 投稿者以外は、投稿の閲覧・投稿者へのメール送信が可能

・発見場所検索機能
 全ての投稿から発見場所を絞り込むことが可能


開発の経緯

一大事で困っている方々を助けられるようなアプリを作りたいという思いがあり、思い付いたのが迷子猫掲示板でした。

私の飼い猫は、殺処分寸前のところを兄が引き取ってきた保護猫でした。
このように運良く引き取り手が見つかる保護猫もいますが、現状として保護猫の約半数が殺処分されてしまっていると聞きます。
そのような背景があり、迷子猫掲示板を開発したいという思いが強くなりました。

よく迷子猫のポスターを見かけますが、既に遠くまで行ってしまっていた場合、飼い主が情報を得ることは困難になります。
その点、全国に迷子猫情報を共有できるWeb掲示板であれば、より広範囲の人々に情報を拡散できます。

加えて、地図上で発見場所の表示など、Webならではの利点が多く、従来の捜索方法よりも迷子猫を発見できる可能性が高まると考えました。


こだわり

フールプルーフな開発を心掛けました。
具体的には、新規投稿や投稿者へのメール送信などの入力情報が誤っていた場合、必須情報にはnull制約を付与してエラーを発生させ、どのように修正すればいいのかを示すエラー文を表示するようにしました。


使用した技術

フロントエンド:HTML, CSS, JavaScript
サーバーサイド:Ruby, Ruby on Rails
DB:SQLite (Dev), PostgreSQL (Prod)
インフラ/その他:Git, GitHub, Render, Google Map API


使用した技術の選定理由

Webアプリの全体像の理解をより深めるため、DBとのやり取りが必要なアプリを作成しました。

初めてのサーバーサイドを含めた開発だったため、プログラミング言語とフレームワークは公開情報の多いRuby、Ruby on Railsを採用しました。

Renderの仕様としてSQLiteに対応していないため、本番環境のみPostgreSQLを採用しています。

また、迷子になってから間もなければ、発見場所の位置情報は有益な情報になると考えたため、Google Map APIを取り入れました。

日々エラーと格闘し、開発に1か月以上要してしまいましたが、どうにか形にすることができました。

フロントエンドとバックエンドを並行して開発したことにより、各言語の連携や、RailsのMVCモデルなどの理解が深まったと感じています。