はじめに
こんにちは@prg_mtと申します。
DIVE INTO CODEでエンジニア転職を目指し、4ヶ月間学習をして参りました。
今回はその集大成となるオリジナルアプリについての記事を書いてみます。
また、この記事について動画でまとめたものもありますので、よろしければご覧ください。
(動画内でamazonのアカウント情報のDBへの登録が暗号化されていないとありますが、現在は暗号化されておりますのでご安心ください。)
開発したアプリについて
今回開発したアプリ名は「Stock Roller」です。
アプリ名の由来は「日用品のストックを継続的に回していく」という部分からです。
【アプリURL】
https://stock-roller.work/ (公開停止しました。)
【Git Hub URL】
https://github.com/TomokiMatsubuchi/Stock-Rolling-App.git
アプリ制作のきっかけ
突然ですが、帰宅して手を洗おうとした際にハンドソープがなかったなんて経験ありませんか?
私にはありました。
しかも仕事から疲れて帰ってきてようやく一息つけると思った時にこの状況です。
その際の心境は「明日でいいや。明日買いに行こう」でした。
しかし、翌日になって帰宅した時にまた買い忘れていたなんて経験もありました。
上記の経験からこういうことなんとかしたいなぁ〜なんて漠然と考えていました。
アプリ作成のアイデア
私は前職で、小型スーパーの店長をやっていました。
スーパーやコンビニでは商品にもよりますが、多くの商品は売れたら自動的に売れた数量の発注が上がり、商品が入荷する仕組みになっています。
そこで、商品が売れることを消耗品の消費完了に置き換えることで、この仕組みを組み込んだアプリをなんとか開発できないかと考えました。
開発環境
- M1 MacBook air
- Ruby 3.0.1
- Ruby on Rails 6.0.6
- Postgresql 12
- JQuery
- Tailwind
- Flowbite
- Docker
主な機能
-
LINEログイン
OAuth認証によりLINEアカウントでログインしていただくことで簡単にアプリへのログインができるようになっています。
-
自動購入機能
登録された日用品の消費完了期限の1週間前になったらプログラムが自動でamazonより登録された商品を購入してくれます。
また、購入についてのステータスをLINEプッシュ通知でお知らせしてくれます。 -
お買い物メモ機能
登録された日用品を消費完了期限の早い順に6件ずつ表示し、1度のお買い物で必要な日用品をまとめて購入できるようサポートしてくれます。
特に力を入れたポイント
Seleniumdriverを使用したウェブスクレイピングによる自動購入機能です。
Rubyを用いたスクレイピングの参考文献があまりなく、主に公式リファレンスを頼りに実装していきました。
また、サイトによってHTML要素の取得が難しい場合もあり、きちんと購入まで動かすのに時間がかかりました。
→こちらの動画の11分あたりから実際にスクレイピングでの動作デモを行なっています。
最後に
今回はアプリの大まかな概要をまとめてみました。
実装した機能についての記事を書いていこうと思いますので今度ともお付き合いくだされば幸いです。(連載企画にするかも...? → 連載企画始めました!)