ドトール1000円ガチャをつくってみた(React+Chakra UI+Firebase+GitHub Actions)

2023/02/08に公開

こんなWebアプリをつくりました。

https://doutor-gacha.niharu.dev/

ガチャを回すと、1000円以内のドトールメニューの組み合わせを出してくれます。
ミラノサンドやデザートはドリンクとセットでお安くなります。

ソースコードはGitHubで公開しています。
https://github.com/niharu/doutor-gacha

経緯

作りたいWebアプリがあったのですが、開発が難航しており心が折れかけていました。

とりあえず簡単なものでも作って成功体験を得るために、以前話題になったサイゼリヤ1000円ガチャの類似サービスでもいっちょ作ってみるか!と思い立ちました。

松屋1000円ガチャマクドナルドガチャなど、類似サービスは既にいくつかあるのですが、ドトール好きなので何となくドトールにしました。

技術要素

React

フロントエンドはReactにしました。言語はTypeScriptです。
Next.jsにするか迷いましたが、まあシンプルなアプリなのでReactのみにしました。

Chakra UI

UIフレームワークにはChakra UIを使っています。
さくっと良い感じの見た目にしてくれるので助かりました。

Firebase

Firebaseでサーバーレスにしています。
Firebase Hostingでホスティングして、Cloud Firestoreにデータを置いています。

GitHub Actions

GitHub Actionsでデプロイを自動化しています。
Firebaseで構築すると、GitHub Actionsとの連携もほぼ自動でしてくれます。便利。

メニューについて

スクレイピング

そんなに数もないですが、公式メニューを手打ちするのが面倒だったので、Pythonでスクレイピングしてデータを取得しました。

データ一括登録

Cloud Firestoreはデータ一括登録する機能が無いので、以下の記事を参考にして一括で登録しました。

https://lyla.tokyo/import_data_to_firestore/

Firebase Admin SDKを使ってドキュメントを登録しています。

おわりに

Firebaseを使ってサーバーレスにすることで、非常にお手軽にアプリを公開できました。

冒頭にも書きましたが、ソースコードはGitHubで公開しています。
プルリクエストorスターくれたら泣いて喜びます。😭

Discussion