【個人開発】引っ越しで後悔しない！~新卒エンジニアが“住む場所”の選び方を決めるアプリ「LiveSpot」を開発しました~

# はじめに - 開発のきっかけ-
　
 引っ越しは人生における大きなイベントの一つです。特に、住む場所を選ぶ際には、様々な情報を集めて比較検討する必要があります。私も引越しをする際に、どの地域に住むのが自分にとって最適なのかを判断するために、様々な情報源を頼りました。

はじめは気になっている地域の交通の便や家賃の相場、治安などの気になることを友人に聞いたり、ネットで検索したりしていましたが、せっかくの引っ越しなのでより多くの情報が知りたいと思い、地域ごとに引越しに役立つ情報がまとめてあるアプリやサイトがないかを探しましが、私が探していたようなものは見つかりませんでした。
そこで、**「ないなら自分で作ってしまおう！」** と思い立ち、開発を始めたのが、「LiveSpot」です。

URL ➡　https://www.live-spot.com/

:::note info
※全国の地域に対応したデモVer. 2を公開しました!
:::


# アプリの概要と主な機能 
　このアプリは、引っ越しを検討している方が後悔しない住まい選びをするための地域情報検索アプリです。インターネット上の情報だけでなく、実際にその地域に住んでいる人の声や、客観的なデータ（統計情報、ハザードマップなど）をまとめて確認できるのが特徴です。引っ越し前にその地域の特徴を理解し、自分に合った場所かどうかを判断する手助けをします。

 ### 地域名から簡単検索

トップ画面中央にある検索窓に興味がある地域名を入力し、「検索」ボタンをクリックします

![スクリーンショット 2024-12-25 17.36.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3967746/923426e6-6e43-2a64-956b-24261b127422.png)


### 検索結果の一覧を表示
するとこのように入力した文字を住所に含む地域の一覧が表示されます。
![スクリーンショット 2024-12-23 19.25.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3967746/fef4e629-b0a4-7538-06cc-f94786477f1b.png)


この一覧画面で表示されるのは以下の3点です
- 住所
- 家賃の相場
- 約1km以内にある近くの駅

また、画面左にある絞り込み条件を操作することで、表示されている地域からさらに絞り込むこともできます。
このページで地域ごとの概要を知ることができますが、より詳細な情報を知るためには「詳細を見る」ボタンをクリックしてください

### 地域詳細画面

地域詳細画面で知ることができる情報は以下のとおりです。

- 概要
検索結果一覧画面で表示した内容に加え、**その地域の地図**、**約5km以内の駅の一覧**と**AIによる地域レビュー**が確認できます。


![スクリーンショット 2024-12-23 19.29.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3967746/8d08175c-f5b0-db66-8011-ed447ba1251c.png)
![スクリーンショット 2024-12-23 19.30.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3967746/3f5feaf1-5195-4cf5-89e1-45018c7d4ab3.png)


- 統計情報
ここでは**人口、世帯数、部屋の広さごとの家賃の相場**をグラフで確認できます。


![スクリーンショット 2024-12-23 19.30.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3967746/518d1d8d-b448-97db-3a06-72e19c9578a1.png)


- 災害情報
ここでは土砂崩れ、洪水、高潮などの災害リスクが確認できます。LiveSpot上ではこれらの情報のみに対応していますが、より詳細な情報が気になる方は **「ハザードマップを確認する」** ボタンをクリックすると対象地域のハザードマップを表示する外部のサイトに遷移することができます。


![スクリーンショット 2024-12-23 19.45.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3967746/a9423f40-69f3-126d-0200-371f2590ec8b.png)


- レビュー
最後がレビュー画面です。ここでは、ユーザーからの意見を見ることができます。

![スクリーンショット 2024-12-23 19.49.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3967746/6a77d1e1-2c20-b0db-f05a-5baec4eb518c.png)

### 地域名から検索
少し戻りますが、トップ画面の「地域名から検索」ボタンをクリックすると以下の画像のような画面に遷移するので、気になる都道府県を選択します(現在は東京にのみ対応しています)
![スクリーンショット 2024-12-23 21.19.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3967746/6723ec01-5d91-495d-10a5-7436f9c0609f.png)

さらに気になる市区町村を選択し、「検索」ボタンをクリックします

![スクリーンショット 2024-12-23 21.21.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3967746/8f8ee7e8-c740-85bc-3111-d5c1a8fb5c12.png)

すると、その市区町村内の地域の一覧を表示できます。
![スクリーンショット 2024-12-23 21.22.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3967746/9db061f8-22b2-b299-030e-bb1d7f0c2d6d.png)

### 駅名から検索
再びトップ画面に戻り「駅名から検索」をクリックすると、画像のような画面に遷移します
![スクリーンショット 2024-12-23 21.25.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3967746/622674f6-57c8-e3f6-201f-0ea831ed8b40.png)

気になる駅のチェックボックスにチェックを入れ、「地域を検索」ボタンをクリックすると、先ほどの地域の一覧画面に遷移することができます(UIが見づらくすみません。Command (Control) + Fでも気になる駅のチェックボックスに移動できます)
![スクリーンショット 2024-12-23 21.26.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3967746/6a3f6beb-8027-a48f-1d90-9ca265d8593b.png)







### アカウント登録・ログイン機能
LiveSpotは基本的にログインせずにご利用いただけますが、**お気に入り地域登録**と**レビュー投稿**はアカウント登録とログインが必須となります。

- **アカウント登録・ログイン**

ヘッダーの「新規登録」ボタンからアカウントの登録を行なってください

![スクリーンショット 2024-12-23 20.34.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3967746/430c1920-c056-186c-0f60-4ca52aed68a7.png)

アカウント登録とログインが完了すると「マイページ」という表記に変更されます

![スクリーンショット 2024-12-23 20.39.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3967746/3b4d6d00-ca4d-1f06-29c6-a1093860e001.png)


- **お気に入り地域登録** 


この状態で先ほどと同じように地域の検索をし、右下のハートボタンをクリックすると画像のように赤い表記に変わります。
![スクリーンショット 2024-12-23 20.41.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3967746/154b867f-5cd8-1234-5972-15f4db073107.png)

この状態でヘッダーの「マイページ」をクリックします。
![スクリーンショット 2024-12-23 20.45.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3967746/58d69240-42e3-9cef-c499-961731bcffd7.png)

お気に入りタブを選択するとお気に入りに登録した地域の一覧が表示されます。また、この中で詳細を確認したい場合は地域名をクリックするとその地域の詳細画面に遷移します。



- **レビュー投稿**

ログインした状態で地域の詳細画面に遷移します

![スクリーンショット 2024-12-23 20.51.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3967746/3880991b-88db-0e38-d53d-de60c1900669.png)

「レビューを書く」ボタンをクリックするとモーダルが表示されるので、評価とコメントを記入し、「送信する」ボタンをクリックします

![スクリーンショット 2024-12-24 19.49.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3967746/5e58e9f4-1e69-d36a-d69a-35e7a4f40c81.png)


すると、地域詳細画面でコメントが反映されていることが確認できます。(現在画面をリロードしないと反映されないので修正します)

![スクリーンショット 2024-12-23 20.54.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3967746/3ba33180-e6e9-182e-0d47-0c162ded2f03.png)

「⚪︎件のレビューを見る」ボタンをクリックするとレビューの一覧確認用のモーダルが表示されます

![スクリーンショット 2024-12-23 20.52.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3967746/c6fafdc4-8696-765b-452a-8331b6c14129.png)


# 技術的に工夫したポイント
せっかくなので技術的に工夫したポイントもいくつか紹介します

- **レスポンシブデザイン**
全体的なUIもまだまだみにくい箇所が多いですが、ある程度レスポンシブ対応もしています。具体例を紹介すると、まずは**ヘッダー**です

![スクリーンショット 2024-12-24 0.10.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3967746/7f10317f-0af7-b062-bbc9-e3840b0e7fc8.png)
このように画面幅が小さい端末ではハンバーガーメニューで表示するようにしています

次は**絞り込み条件です**

![スクリーンショット 2024-12-24 0.12.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3967746/9982ec55-5e2f-be69-ea5a-1f83c61c9ff3.png)

画面幅が小さい場合はサイドバーによる表示ではなく画面右下のボタンをクリックすると画像のようなモーダルが開くようにしました




- **ページネーション**
検索結果の一覧表示画面ですが、最初に作成していたときは一度にすべての地域を表示していたので、該当地域が多い場合はデータの取得にかなり時間を要してしまいました。そこで、ページネーションを導入して1ページあたりのデータ量を制限しました

# 使用技術
- Django
- React
- PostgreSQL
- Docker
- Render
- Vercel

# ER図
![Untitled.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3967746/bb41716e-4002-25b5-82f0-dcf2fabb9fca.png)

ちなみにこの図は[dbdiagram.io](https://dbdiagram.io/home)と言うサービスを使って作成しました。このサービスを使うと画像のようなテーブルをコードから生成し、様々な形式で出力できるので個人的には使いやすいと思っています。
![スクリーンショット 2024-12-25 13.11.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3967746/f49777f8-bfa8-4fa4-d1e6-01f5f48b52e4.png)




# 改善したいポイント

- **レビュー投稿**
レビューの投稿はログインユーザーに限定はしていますが、ログイン後は同じ地域に何度も投稿できる状態となってしまっているので、同一地域へのレビューは1つに制限したいと思います


- **駅名から検索画面のUI**
トップ画面から遷移した後のUIが非常に駅を探しにくいので改善したいと思います


- **賃貸情報の追加**
本来であればアプリを作り始めたときに最初に思いついていたのですが、地域詳細画面において、その地域にある賃貸などの物件情報を載せることができればユーザーは地域の検索から物件の選択までをLiveSpot内で行うことができると思いますが、物件データがないので断念しました。


# おわりに
今回の開発は私にとっての初めての個人開発であり、企画から最低限の機能を備えたアプリのリリースまで行えたことは非常に良い経験になりました。**これからも引き続き改善は続けていくので、このアプリが少しでも引越しを検討している方のお役に立てば嬉しいです!**
また、他にも作ってみたいアプリの案はあるので、新しいアプリを作る時には今回の経験を活かしたいと思います!