アプリ概要
ユーザーは福岡市内のパン屋を探したり、口コミ投稿やお気に入り保存ができます。また、店舗側は店舗情報充実や口コミへの返信ができるアプリです。

- ユーザー側
- 福岡市にあるパン屋を検索できる
- パン屋への口コミを点数付きで投稿・編集・削除できる
- お気に入りのお店、行ってみたいお店をマイページで管理できる
- 店舗側
- メニューやお店のこだわり・思いを公開できる
- 店舗情報充実
- 口コミへの返信
このアプリを作った背景
自分が困ったり、残念に思った経験と、パン屋業界の状況を踏まえて「こんなものがあればもっとパン屋業界が良くなるのでは」と考えたため。
私の経験
- 「え!あそこのパン屋さん潰れちゃったの!!??好きだったのに…。」という残念な経験
- 「パン好きだし、良いパン屋さん探したいけど、ググってもいまいち出てこない…。でもインスタでいちいち探すのは面倒。。」という困り事
パン屋業界の状況
2019年の倒産件数は31件。前年比2.1倍となり過去最多を更新した。負債規模別では、「5000万円未満」が22件と、小規模倒産が7割を占めた。
帝国データバンクより引用
思ったこと
パン屋さんを求めている人と、パン屋さんのどちらも困ってる状況なんだったら、どうにかしたい!!
と思い、双方に下記のようなメリットのあるサービスを作ることを決めました。
- ユーザー側
- どんなパン屋さんがどこにあるか、どんなメニューがあるか分かる
- パン屋側
- 自店舗の認知を広められる(=マーケティングの場)
- 私の野望
- パン屋の思いや創業背景も伝えられる仕様にすることで、ユーザーにパン屋により親しみを持ってもらう(=ユーザーとパン屋の距離を縮める)
【補足】食べログやホットペッパーなど、大手グルメサイトは既にありますが、それらのメインターゲットは収益面から見ても「予約ができる飲食店」かと思われるので、そこに該当しないパン屋には、特化サイトを作る意義があると考えました。
機能
- 新規登録機能(ユーザー・店舗)
- ログイン・ログアウト機能
- 検索機能(キーワード・エリア・パンの種類)
- 口コミ投稿・編集・削除機能
- お気に入りリスト、行ってみたいリストへの登録・削除機能
- 検索結果、レビュー、お気に入りリストの並び替え機能
- マイページ機能
- 店舗管理機能
- ページネーション機能
新規登録機能
ユーザー・店舗それぞれに対する新規登録機能。
ログイン・ログアウト機能
ユーザー・店舗それぞれに対するログイン・ログアウト機能。
検索機能
キーワード検索、エリア検索、パンの種類検索の3種類が可能。
また。上記3種類のAND条件での検索も可能。
口コミ投稿・編集・削除機能
ユーザーは、口コミの投稿・編集・削除ができる。
店舗は自店舗への口コミに対してのみ、返信可能。返信は編集・削除可。
お気に入りリスト、行ってみたいリストへの登録・削除機能
お気に入り登録・行ってみたい登録の2種類があり、ボタン1つで登録・削除が可能。
並び替え機能
検索結果一覧、レビュー一覧、お気に入り・行ってみたいリスト一覧の並び替えができる。
フロント側で並び替えを行っているため、通信は必要なく高速な並び替えを実現。
マイページ機能
お気に入りリスト・行ってみたいリスト・自分のレビューの3種類の一覧を確認できる。
ユーザー情報の編集・削除も可能。
店舗管理機能
店舗情報の登録・編集・削除ができる。
ページネーション機能
検索結果一覧・レビュー一覧・お気に入り・行ってみたいリストの4か所で、ページネーション機能を実装。
ポイント
- すべて非同期通信(SPA)。
- アトミックデザインを意識したコンポーネント管理。
- GitHubでコミットやプルリクを使用しながら開発。
- CSSクラス名はBEM記法を実践。
- Laravel Sanctumを用いた認証機能。
- ログインユーザーに合わせて、同じぺージでも表示するコンポーネントを変更。
- 並び替え機能により、目的に応じた検索性を向上。
- 口コミ投稿等をモーダルで実装し、よりシームレスなUXに。
- ぱっと見ても使いやすく分かりやすいUIにすることを意識。
- レスポンシブ対応済。
使用技術等
- フロントエンド:TypeScript, React, HTML, Sass
- バックエンド:PHP, Laravel
- DB:PostgreSQL
- インフラ:AWS(EC2 | Route53 | RDS)
- ソースコード管理:GitHub
環境
- TypeScript 4.1.3
- React 16.14.0
- Laravel 8.22.1
- PHP 7.3.26
- PostgreSQL 12.5
※ER図

ローンチした際のマネタイズ方法
主に2つを考えています。
- 広告収入
- バナー広告
- 店舗からの収入(こちらは店舗数が充実してから)
- フリープラン、スタンダードプラン、プレミアムプランなどプランを作成し、スタンダードプランとプレミアムプランの場合は課金を必要とする
- プランごとに、メニュー掲載可能数、おすすめ店舗として表示される数を変える
- プランによって利用可能機能を制限<例:スタンプカード機能(未実装)、クーポン発行機能(未実装)>
- フリープラン、スタンダードプラン、プレミアムプランなどプランを作成し、スタンダードプランとプレミアムプランの場合は課金を必要とする