LoginSignup
25
10

More than 1 year has passed since last update.

【個人開発】日用品を自動で購入してくれるアプリを作りました。

Last updated at Posted at 2022-12-30

はじめに

こんにちは@prg_mtと申します。
DIVE INTO CODEでエンジニア転職を目指し、4ヶ月間学習をして参りました。
今回はその集大成となるオリジナルアプリについての記事を書いてみます。

また、この記事について動画でまとめたものもありますので、よろしければご覧ください。
(動画内でamazonのアカウント情報のDBへの登録が暗号化されていないとありますが、現在は暗号化されておりますのでご安心ください。)

開発したアプリについて

今回開発したアプリ名は「Stock Roller」です。
アプリ名の由来は「日用品のストックを継続的に回していく」という部分からです。
スクリーンショット 2022-12-30 17.25.17.png

【アプリURL】
https://stock-roller.work/ (公開停止しました。)
【Git Hub URL】
https://github.com/TomokiMatsubuchi/Stock-Rolling-App.git

アプリ制作のきっかけ

スクリーンショット 2022-12-30 17.06.09.png
突然ですが、帰宅して手を洗おうとした際にハンドソープがなかったなんて経験ありませんか?
私にはありました。
しかも仕事から疲れて帰ってきてようやく一息つけると思った時にこの状況です。
その際の心境は「明日でいいや。明日買いに行こう」でした。
しかし、翌日になって帰宅した時にまた買い忘れていたなんて経験もありました。

上記の経験からこういうことなんとかしたいなぁ〜なんて漠然と考えていました。

アプリ作成のアイデア

私は前職で、小型スーパーの店長をやっていました。
スーパーやコンビニでは商品にもよりますが、多くの商品は売れたら自動的に売れた数量の発注が上がり、商品が入荷する仕組みになっています。
スクリーンショット 2022-12-30 17.05.54.png
そこで、商品が売れることを消耗品の消費完了に置き換えることで、この仕組みを組み込んだアプリをなんとか開発できないかと考えました。

開発環境

  • M1 MacBook air
  • Ruby 3.0.1
  • Ruby on Rails 6.0.6
  • Postgresql 12
  • JQuery
  • Tailwind
  • Flowbite
  • Docker

主な機能

  • LINEログイン
    OAuth認証によりLINEアカウントでログインしていただくことで簡単にアプリへのログインができるようになっています。
    btn_login_base copy.png

  • LINEプッシュ通知
    登録された日用品の消費完了期限の1週間前から毎日12時にプッシュ通知でお知らせが入ります。
    LINE_image.png

  • 自動購入機能
    登録された日用品の消費完了期限の1週間前になったらプログラムが自動でamazonより登録された商品を購入してくれます。
    また、購入についてのステータスをLINEプッシュ通知でお知らせしてくれます。

  • お買い物メモ機能
    登録された日用品を消費完了期限の早い順に6件ずつ表示し、1度のお買い物で必要な日用品をまとめて購入できるようサポートしてくれます。
    スクリーンショット 2022-12-30 17.23.55.png

特に力を入れたポイント

Seleniumdriverを使用したウェブスクレイピングによる自動購入機能です。
Rubyを用いたスクレイピングの参考文献があまりなく、主に公式リファレンスを頼りに実装していきました。
また、サイトによってHTML要素の取得が難しい場合もあり、きちんと購入まで動かすのに時間がかかりました。

こちらの動画の11分あたりから実際にスクレイピングでの動作デモを行なっています。

最後に

今回はアプリの大まかな概要をまとめてみました。
実装した機能についての記事を書いていこうと思いますので今度ともお付き合いくだされば幸いです。(連載企画にするかも...? → 連載企画始めました!)

追記

連載企画

25
10
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
10