Own products

  • 新規事業のアイディア創造機

Introduce

ご近所のフリーランス仲間を探せるウェブサービス「フリーランサーズ パーク」リニューアルしました!(8年ぶり2度目)

この記事の読了時間:約62

  • このエントリーをはてなブックマークに追加

気が付けばちゃんとした記事を丸2年以上も書いてないという体たらくですが、「便りがないのは元気な証拠」とばかりにわりかし元気にやっております。

さて、2011年に公開して2013年にリニューアルした、ご近所のフリーランス仲間を探せるっつーコンセプトの個人開発ウェブサービス「フリーランサーズ パーク」ですが、実はここ1年ほどソーシャルログインの調子が悪くて新規登録を停止してたんですね。

でも結構思い入れのあるサービスだったし、ちょうど Laravel を使ったウェブサービスの制作事例も欲しいと思っていたので、じっくり半年ほどかけてデザインから一新のリニューアルを行いました!

作り直すついでに、今までは「人を探す」くらいの機能しかなかったのを、「気になるユーザーに声をかける」「制作実績を発表する」「助けてほしい!とか手伝って!みたいなリクエストを掲載する」みたいな機能を追加実装して、よりコミュニケーションが築けるようなサービスを目指しました。

イマドキなら note や Qiita や Zenn なんかに投稿するような制作よもやま話を、昔ながらの WordPress 製の自サイトで公開する伝統芸。とくとご覧ください!

ご近所のフリーランス仲間を探せるウェブサービス「フリーランサーズ パーク」

「フリーランサーズ パーク」とは

ご存じ無い方も多いと思いますので、改めてこの「フリーランサーズ パーク」は、ご近所で頑張っているフリーランサー同士を結ぶ、仲間探しサービスでございます♪

あなたの郵便番号やスキルなどをご登録していただくと、「フリーランサーズ パーク」に組み込んだ Google Map 上に反映されるようになり、ご近所のフリーランサーを見つけられるという仕組みとなっています。

なお、「ご近所」とはいっても、厳密にご住所を記入していただく訳でもなく、各種アカウントから勝手に取得する訳でもなく、ただ単にご登録いただいた「郵便番号」からおおまかな緯度と経度を取得して、そこにランダムな数値を入れてバラけさせているだけなので、ご安心ください☆

具体的には、まず Google Maps API で郵便番号からのジオコーディング(住所や郵便番号などから、緯度と経度を取得するコト)を行っています。

で、コレだけだと同じ郵便番号の人は全く同じ緯度経度で登録されてしまい、地図上でマーカーが重なってしまうので、取得した緯度経度にランダムの値を付加して、なんとなーくバラけて見えるようにしている、という算段です。

住所情報が郵便番号だけなので、精密さには欠けますが、住所を特定される訳ではないので、安心してご利用くださいまし m(_ _)m

技術詳細

フレームワークに Laravel 7 を利用したので、自ずとその範囲内での話が中心にはなりますが。

以下はちょっとしたハマりどころだったり、結構時間がかかった点を備忘録がてらピックアップしたいと思います。

Bladeのレイアウト定義周り

凝り固まりまくった WordPress 脳では、しばらく Blade の extend の概念を理解するのに時間がかかりました。。

あと、もともと素の PHP ばっかり書いててテンプレートエンジン使う習慣があまりないので、ループとか条件式にわざわざ新しく Blade の書式を覚えるのがちょっとめんどくさいなーとも。

次に Laravel 使うときは、もしかしたら Blade は使わない方向で考えるかもです。

Google map API 及び Geocoding API の初期設定

ユーザーから受け取った郵便番号から住所を取得し、その住所の緯度経度をもとに地図上にユーザー情報を載せるというコンテンツが有るのですが、住所周りの処理には Google Geocoding API を、地図表示周りの処理には Google map API 使用しています。

当サービス立ち上げ当時はどちらも無料かつユーザー登録等の必要なく使用できたのですが、いまではユーザー登録の上いろんな初期設置をしないといけなくて、それが例のごとく Google の意味わからんヘルプやガイドラインに振り回されて、地味に時間を食いました。

API を叩く回数の上限設定や、使う IP の設定など、面倒でも忘れないようにしましょう!

Geocoding API のエラー処理

前述の住所周りの API は入力値に不備があったり通信に問題があったときなどそれなりエラーを返してくれるんですが、情報保存時の処理の流れが RegisterController の function register() のなかでバリデート→保存の流れになってて、それがそれぞれ別のメソッドになってるんですね。

それぞれ別なんですが、その都度 API 叩いてたら回数もったいないし、そもそも一回目の通信で問題なかったからと言って直後の通信が問題ない確証にもならないので、最初に API から得た情報をどうにかしてバリデートや保存の処理にも使い回したいんだけど、さてどうしたもんか。。

いろいろ調べた結果、一番シンプルな「初回の結果をセッションに保存して、それを使い回す」という方法で落ち着きました。

config/app.php に設定した日本語文字列が状況次第で読み込まれない or 文字化ける

これ、結局なんだったんだろうか。。

ローカル環境では問題なく日本語表記されてたんですが、本番環境にデプロイしたところ部分的に日本語の定数が読み込まれない(空文字になる)という現象に見舞われました。

また、メールの from 文の箇所ではそれが文字化けの症状になって現れて、キャッシュクリアしようが何しようが状況変わらず。。

幸い日本語で定数設定したのはサイト名くらいだったので、仕方ないから使用箇所にサイト名ベタ書きで対応しました。

本番環境への移行

上記を始め、本番にデータ持ってってから丸一日くらいあーだこーだ不具合が散見されてました。

Laravel インストールしたディレクトリにシンボリックリンクや .htaccess の設定をしてもなんかうまく行かなかったり(これはインストールするディレクトリの場所自体が間違ってた)、ユーザー登録やお問い合わせなどの「メールが送られる処理」でなぜかエラーが発生したり(よく調べたらエックスサーバーのメール設定の記述内容が間違ってた)、シンボリックリンク張ったのに strage の中に画像が保存されなかったり(一度既存のディレクトリを削除して新しく strage ディレクトリを生成→シンボリックリンク設定したら回復)、、、

こうやってまとめてみると、全部ただの凡ミスですね。。。


とまーそんな感じで新生「フリーランサーズ パーク」、ぜひお楽しみくださいっ!

フリーランサーズ パーク

Laravelなんとなーく分かった部分も多いので、次のアイディアもLaravelで実装の方向で考えてみようかな。

コーヒー系のアレにしようか、マッチング系のアレにしようか。。。

  • このエントリーをはてなブックマークに追加

コメントを投稿する

お名前

ご連絡先メールアドレス※非公開

コメント

CAPTCHA


  • このブログのRSSを購読する
  • このブログをtwitterでつぶやく
  • このブログをFacebookで共有する
  • このブログをはてなブックマークで共有する

Contact

    お名前※必須

    ご連絡先メールアドレス

    お問い合わせ内容※必須

    CAPTCHA

    captcha

    Blog parts

    Affiliate