Local'sは飲食店の情報を共有するアプリです。
好きな飲食店の情報を投稿したり、他のユーザーが投稿した飲食店が自分の好みとどれだけマッチしたお店かを知ることができるアプリです。
ゲストログインで簡単にログインできます。
※ mobile用UI
技術 | バージョン | 選定理由 |
---|---|---|
Ruby | 3.0.3 | 日本語のドキュメントが豊富で初学者に適切だと考えたため。 |
Ruby on Rails | 6.1.4 | 日本語のドキュメントが豊富で、且つバックエンドをAPIとして効率よく構築できるため。 |
RSpec | 5.1.0 | 単体テスト、機能テストを行うため。実務で使用される頻度が高いと考えたため。 |
Rubocop | 1.25.1 | コードの可読性を高めるため。 |
技術 | バージョン | 選定理由 |
---|---|---|
nuxt | 2.15.8 | SPAで開発するため。効率よくコードがかけるため。 |
vuetify | 2.6.1 | UIを効率よく構築するため。 |
jest | 27.4.4 | store周りのテストを行うため。 |
ESLint | 8.9.0 | コードの可読性を高めるため。 |
※ AWSに関しては主要なサービスをピックアップ
技術 | バージョン | 選定理由 |
---|---|---|
AWS | / | 他社よりもシェアが高く実務で使用する可能性が高いため。 |
ECS(Fargate) | 1.4.0 | オートスケーリング等、管理の手間を減らすため。 |
MySQL(RDS) | 8.0 | データベースとして使用するため。 |
S3 | / | ALBのログを保存、投稿画像の保存のため。 |
VPC Endpoint(PrivateLink) | / | AWSのサービス間の通信をインターネットを介さずに行うため。 |
SSM | / | コンテナ内の環境変数を管理するため。 |
Docker/Docker-compose | 20.10.12 / 1.29.1 | コンテナを使用することで環境構築を効率化するため。 |
Terraform | 1.0.0 | インフラの構築をコード化し、構築、削除を容易にするため。 |
CircleCI | 2.1 | 自動でテスト、デプロイを実行することで、手間を省くため。 |
※ 極力インスタンスをプライベートサブネットに配置することで不要なアクセスを減らしている。
※ ALBを通すことで常時SSL化を行っている。
※ CircleCIを用いてプルリクをしっかり作成し、いきなり本番環境へpushを行わないように工夫している。
機能 | 仕様 | ログイン必須 |
---|---|---|
サインアップ、ログイン、ログアウト機能 | トークン認証でサインアップ、ログイン、サインアウトできる | ☓ |
画像拡大機能 | 写真をクリックすると拡大されて表示 | ☓ |
画像スクロール機能 | 投稿詳細ページにてswiperを用いて画像をスライドして閲覧可能 | ☓ |
カテゴリー検索機能 | 投稿をカテゴリー別で検索ができる | ☓ |
グラフ表示機能 | vue-chartjsを用いて投稿に対して評価したユーザーの年代別いいね率を表示 | ☓ |
GoogleMap表示機能 | 投稿の店名、最寄り駅からお店の位置をGoogleMapで表示 | ☓ |
フォロー、フォロワー一覧表示 | ユーザーのフォロー、フォロワーがリストになって閲覧可能 | ☓ |
ゲストログイン機能 | リンクをクリックするとguestアカウントが生成され、ログインできる。サインアウト後生成されたゲストアカウントは削除される | ☓ |
投稿ソート機能 | 投稿を最新順 or また行きたい率の降順でソートできる ※3/8実装 | ☓ |
フォロー、アンフォロー機能 | 各ユーザーをフォロー、アンフォローができる | ○ |
パスワード変更機能 | パスワードとパスワード確認を入力すると編集ができる | ○ |
プロフィール編集機能 | ユーザー名、プロフィール画像、自己紹介、メールアドレスの変更ができる | ○ |
投稿機能 | 店名、最寄り駅、写真、コメント、カテゴリーの投稿作成、削除ができる | ○ |
画像投稿機能 | RailsのActiveStorageを使って複数画像の投稿ができる | ○ |
ユーザー削除機能 | ユーザーの削除ができる | ○ |
ブックマーク機能 | 自分以外のユーザーの投稿をブックマークできる | ○ |
いいね機能 | 自分以外のユーザーの投稿に「また行きたい!」というプラスの評価ができる | ○ |
悪いね機能 | 自分以外のユーザーの投稿に「う〜ん」というマイナスの評価ができる | ○ |
管理機能 | 管理者権限を持ったユーザーはすべての投稿とユーザー削除できる。またカテゴリーデータの追加、削除をすることができる。ポートフォリオとして閲覧者に機能を使っていただくために一時的に権限がなくても使用できるようにしています。 ※3/10実装 | ○ |
マッチ度機能 | ユーザーが飲食店に求める事柄とお店の評価ポイントを比較してその飲食店がユーザーの好みにどれだけマッチしているかを表示 ※3/14実装 | ○ |
※ パフォーマンス向上やUI/UXの向上、機能追加は随時行っています。
- コミット間隔を開けすぎたことが原因で、エラーの対処の際に時間がかかってしまった。
- 本番環境へのデプロイを後回しにしたことで、いざデプロイした際に発生したエラーの所在を発見できず、開発期間が伸びてしまった。
- 開発序盤は公式ドキュメントではなく、2次情報から情報を得てしまっていて課題解決に時間がかかってしまった。