北海道最大級のキャンプ場&温泉案内サイト - CampFinder を作成
[サイト名] CampFinder [公開日] 2023年3月29日 [開発動機] 北海道をその日任せで自転車旅行している時に、最寄りのキャンプ場・温泉・コンビニの情報を求めたのですが、検索が煩雑な上に情報の内容も鮮度も劣り、苦労しました。自転車仲間も同じ不便さを嘆いていたことから、これを解決できるサイトを作ろうと1年前にゼロからプログラムを学び始めました。 [サイトの特徴] 「CampFinder」はGoogle map上にキャンプ場・温泉・コンビニのアイコンが並び、これをタッチすると画像が現れ、さらに詳細情報(住所、電話番号、営業期間、入場料など)が表示されます。また、サイドバーからスポットの絞り込みができ、キャンプ場、温泉、コンビニの個別表示も可能です。これにより、最寄りのスポットを検索する際の煩雑さを解消することができます。 特に、特徴的なのが各施設の” Description”の表記で、ChatGPT のAPIを用いて、数個から数十個あるGoogle 評価コメントを”Chat GPT” に読み込ませ、要約させている点。これにより情報の客観性と鮮度を自動的に得ています。要約時には悪意ある評価や過大な広告的な書き込みは無視されるよう ”Chat GPT” に指示しています。 [制作環境(サーバー環境や使用ツール)と使用言語] ・フロントエンド言語 (HTML,CSS,JavaScript) ・バックエンド言語 (Python) ・フレームワーク (Django) ・データベース (PostgreSQL) ・webサーバー (Nginx) ・クラウドサービス (AWS) [なぜPythonなのか?] バックエンド言語としてPythonを選んだ理由は二つあります。 ①Django REST Frameworkを使用することで、APIを作成してGoogle Mapsとのデータのやり取りを簡単に行えるため。 ②将来的に機械学習を利用したサービスを組み込む予定があるため、機械学習のライブラリが豊富なPythonを使えば、機械学習のモデル構築やデータの前処理を容易に行うことができるため。 以上の理由から、Pythonを選択した方が、APIの開発とGoogle Mapsとのデータ連携の効率化や将来的な機械学習の統合において有利であると考えました。 [なぜNginxなのか?] webサーバーとしてNginxを選んだ理由は二つあります。 ①CampFinderでは多くの静的コンテンツ(画像)を提供しているため、Nginxをリバースプロキシとして動作させることで、Webアプリケーションのパフォーマンスの向上を図るため。 ② Nginxは非同期イベント駆動のアーキテクチャを採用しており、多数の同時接続や高トラフィックの環境でも高いパフォーマンスを発揮するため。 以上の理由から、CampFinderのような静的コンテンツが多いサイトでは、Nginxを選択した方が、静的コンテンツの配信の最適化や高いパフォーマンスが実現できると考えました。