Help us understand the problem. What is going on with this article?

サイゼリヤ1000円ガチャをつくってみた(Heroku + Flask + LINEbot)

More than 1 year has passed since last update.

Progateを一度やった程度のプログラミング初心者ですが、
何かWebアプリケーションを作りたいなぁと思い、Flaskを学ぶついでに
サイゼリヤのメニューから1000円以内で組合せを出してくれるガチャを作りました。

(*2019.04.01追記 2018.9月時点のグランドメニューのみとなります。メニューの更新に対応する予定はございません)

2019.5.10追記

Twitterで紹介頂いたようで、たくさんの方から反応を頂いていてびっくりしております!
メニューが古いままだと、何かと店舗側にもご迷惑をおかけしそうだったので、
本日時点でのグランドメニューに更新させていただきました。

非公式であることをご了承の上、店舗ではマナーを守って楽しんで頂ければ本望です!
(たくさん注文して食べ残す・・・などが起こらないことを祈ってます)

また、Tweetボタンやガチャ条件を絞る機能など、諸々ご意見いただきましたので
参考にしながらゆったり実装できたらな、と思っていますのでよろしくお願いいたします。

できたもの

Webアプリ

サイゼリヤ1000円ガチャ
スクリーンショット 2018-09-22 21.39.14.png

LINEbot

上限50人のプランなので、登録できないかもしれません。
内容はWebアプリ版と同じです。

友達に追加
linebotQRcode

結構意外な組み合わせでも1000円以下で、改めてサイゼコスパ高!ってなりますね。

どちらもHeroku無料枠でデプロイしているのでアクセスに時間がかかるときがあります。
(30分でスリープしてしまうため)まぁ非公式なのでお楽しみ程度ということで。

モチベーション

Webアプリ作成の勉強のためにFlaskとSQL使ってみたかった。
LINEbotはちょこちょこ使っていて、インターフェースとして良いなぁと感じていたので
データベースを使って何かをするbotで簡単なもの、ということでガチャかなと。

なんでサイゼリヤかというと、単純に好きだからっていうのもあるんですが、
けっこう「サイゼリヤで何を頼むか」っていうのがネット記事でもネタになってるんですよね↓
実用性+ネタで面白そうだと感じたためです。

参考
* 【対決】とにかく周りをビビらせろ!「サイゼリヤ通ぶり選手権」!
* 「サイゼリヤ」で1人千円以内で完璧に飲むための極楽メニュー【ヒョイ飲み】
* 【せんべろ企画】千円握りしめて「サイゼリア」で飲み会してみた

使ったもの

  • Heroku
  • LINE Messaging API
  • Flask
  • SQLAlchemy(SQLite)

ソースコードはgithubに置いてあります。
メニューはグランドメニューで100種類ちょっとなので手打ちでcsv→dbに入れました。
本当は勉強がてらスクレイピングしたかったんですが、画像データだったので・・・。

参考にしたページ

:star: Flask チュートリアル
めちゃくちゃ参考にした。
一度通してやるだけで掲示板的なWebアプリを作れます。
SQLAlchemyの使い方やHerokuへのデプロイまで解説してくれています。

また、SQLの叩き方などは以下を参考にしました。
* 【PythonのORM】SQLAlchemyで基本的なSQLクエリまとめ
* カラムに格納された値のデータ型の確認

HerokuとLINEbotの繋ぎこみはこちら
* LineBot(MessageApi)を試してみる-heroku版

感想

初心者でもこんなに簡単につくれるんだ!と思いました。
特にHerokuやLineAPIなどのインフラがあるおかげで、Pythonのコードを少し学ぶだけで
ある程度形にできるちゃうところが凄い。

ガチャで出たメニューを実際に頼んでみた、みたいな人が現れるといいな笑

estie
テクノロジーの力で、世界を自由に、楽しく。
https://www.estie.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした