はじめに
実務経験1年3ヶ月のWebエンジニアです!
昔思い描いていたサービスをリリースすることができました!
個人開発の広告を兼ねて投稿します!
※5分で読めます。
サービス概要
ガルバとキャバ
なぜそのサービスを作ろうと思ったのか
大学4年の頃、同じサークルの友人がキャバクラで働いており、「こんなサービスあったらいいなー」という話をしていたのを聞いていました。エンジニアになって8ヶ月ぐらい経った頃、ふと思い出して作り出しました。
主な機能
検索機能
現在地から近い順にキャストを検索することができます。
その他にも、県名、最寄駅、金額、店舗の種類、営業しているかどうかなどの任意項目があります。
現在地から10km以内でキャストを検索するため、geocorderというライブラリを使用しました。
トーク機能
LI●Eとほぼ同じUIで、キャストとユーザーがトークすることができます。
リアルタイムで送った内容が反映されるよう、Action Cableを使いました。Websocketは実務で経験していなかった部分なので、個人開発で実装できてよかったです。
技術スタック
カテゴリ | 技術 |
---|---|
フロントエンド | Next.js 14.1.3 / React 18 / TypeScript 5 |
バックエンド | Ruby 3.2.2 / Ruby on Rails 7.0.4(APIモード) |
データベース | PostgreSQL 15.5 |
セッションストレージ | redis |
環境構築 | Docker |
インフラ | Vercel / Render / AWS S3 / AWS SES |
その他 | Tailwind / shadcnUI/ rubocop / devise / alba / Actioncable等 |
インフラ構成図
選定理由
バックエンド
最初Go言語で作ろうとしましたが、JWT認証作ったところでリリースに1年ぐらいかかりそうだったので、実務で使用しているRailsに乗り換えました。
個人開発ならRailsが1番だなと作り終わって思いました。
フロント
実務でVueを使っていますが、流行りのNextjsに興味があったので使いました!
Vueとは違って、調べるとすぐに求めている情報が出てくるので助かりました!
CSSフレームワークは初め、ChakuraUIを使っていましたがカスタマイズが思うようにいかずshadcnUIに乗り換えました。
英断でした。これ以外使う気になりません!YES!ゼロランタイム!!
インフラ
Nextjsを使っている以上自分の中ではvercel以外選択肢がありませんでした。初めてのデプロイも、画面表示するまでに1日かかりませんでした。サイコー!!
APIはFly.ioとRenderで悩みましたが、「CLIよりGUIや!!」と使いやすさで選びました。ただ、RenderはDBが3ヶ月で無料プランが切れるのに対して、Fly.ioは3GB(?)ぐらいまで無料だったので時間があるときに乗り換えるかもしれません。
外部サービス
画像の格納先にAWS S3を選びました!過去に実装したことがあったので使いました!
メールについては当初SendGridを使う予定でしたが、最近法人しか使えないよう仕様が変わったみたいです。
泣く泣くAWS SESにしましたが案外簡単に実装できてよかったです。
その他
Google アナリティクスも入れて、どれぐらいの人がサイト見てくれているか監視しています👁
今後、どうやったらユーザーが増えるかも学んでいきたいです。
最後に
実務経験1年3ヶ月で学んだ技術力とプライベートの時間をフルに使い、構想に2ヶ月、実装に3~4ヶ月でリリースすることができました👏
Push通知などの機能実装したいため本番リリースはまだですが、基本機能リリースできただけですごい達成感...😭
未経験のとき、「実務に入ったたら、どのくらいのサービスが作れるようになるのかなー」と思っていました。
PRUMで1年ちょっと経験を積むと、これぐらいのサービスが作れるようになります。
気になった方は、「ガルバとキャバ」と「PRUM」で調べてみてください!!!
ここまで読んでいただき、ありがとうございました🙌