# BIKE_PARKING_APP
## アプリ概要
バイクの駐輪場検索を便利にするサービスです。
検索したワードから緯度経度を算出し、その周辺1km以内の駐輪場を検索できます。
また、現在地周辺の駐輪場も検索できるので、外出先での急な駐輪場検索にも対応しております。
※独学で開発しました。
## 使用技術
- フロントエンド
- HTML/CSS
- Javascript
- tailwind
- バックエンド
- Ruby: 2.6.6
- Rails: 6.1.0
- インフラ・開発環境
- MySQL: 5.7
- Nginx
- Puma
- Docker/docker-compose
- AWS(EC2・RDS・S3・ACM・VPC・Route53・ALB)
- CircleCI(CI/CD)
- テスト・静的コード解析
- Rspec
- Rubocop
## 機能一覧
- ユーザーに関する機能
- ユーザー登録、ログイン、ログアウト、ユーザー情報編集機能
- 簡単ログイン機能
- 投稿数に応じてポイントを付与する機能(今後開発予定)
- 管理者用機能
- 投稿に関する機能
- 投稿一覧表示、投稿機能、投稿詳細表示、投稿編集、投稿削除機能
- 投稿検索機能
- 画像投稿機能
- 画像プレビュー機能
- 投稿に対する位置情報保存、位置情報取得機能
- 現在地から近い駐輪場を検索する機能
- 検索時のソート機能(収容台数が多い順、1時間当たりの駐輪料金が安い順、近い順)
- バイクの排気量ごとに検索をフィルタリングする機能(今後開発予定)
- お気に入り機能(Ajax)
- お気に入り登録した記事一覧表示機能
## 今後の開発予定
- ページ遷移を早くするために、Vue.jsを用いてのアプリケーションのSPA化を行う
- 投稿数に応じてポイントを付与する機能の実装(たまったポイントはバイク用品の購入時に使用できることを想定)
- バイクの排気量ごとに検索をフィルタリングする機能の実装
## 開発背景
私は趣味でツーリングをするのですが、ツーリング時の駐輪場を探すのにいつも手間取っていました。具体的には以下の点によって手間取っていました。
- GoogleMapで駐輪場と検索しても自転車の駐輪場や月極の駐輪場などが出てしまい、本当に欲しい時間貸の駐輪場が探せない。
- 日本二輪車普及安全協会の全国バイク駐輪場案内を使用すると、検索機能が不十分(具体的には値段の安い順や収容台数順での並び替えが出来ない)
- バイク駐輪場&ツーリングスポット検索というアプリ(現在ではアプリが削除されている)を使用すると、マンションの居住者専用の駐輪場や、不正確な情報が掲載されてしまっていて使い勝手がよくない。
以上の問題点があるため、ツーリング時の駐輪場探しが不便でした。
そこで、このようなアプリを開発することでツーリング時の駐輪場検索が少しでも楽になるようにと考えております。
## 工夫した点
- スマホでの使用が主となるはずなので、レスポンシブデザインを意識
- 既存のアプリの問題点を解決するために、管理者が承認ずみの投稿しか表示されないようにした。
- 検索オプションを追加(現在地から近い順・収容台数が多い順・駐輪料金が安い順)することで、既存のアプリやwebサイトよりも利便性を高くした。
- テストとデプロイを効率化するために、CircleCIを用いてCI/CDパイプラインの構築を行った。
- リージョンによる遅延を解消するために東京リージョンのあるEC2を使用。 → 現在はコスト面を考慮して、herokuに変更。
- EC2からherokuに変更しても読み込み速度が落ちないように、gasで定期的にherokuのdynoにアクセスをするスクリプトを組んだ。
- bulletを使用して、 N+1問題を解決した。
## 現時点での問題点
- 投稿者の投稿ありきのアプリケーションなので、データ数が圧倒的に少ない。
→投稿者が投稿してくれるような仕組み作り(投稿数に応じてポイントが付与され、そのポイントをバイク用品の購入時などに使用できるようなもの)を実装予定。
- 現在地の取得に時間がかかる。