[ポートフォリオ]自転車の自動予約システム

もともとはgithubに書いていましたが、こちらでも。

目次

  • 作成の経緯と成果
  • アプリについての説明
  • 今後の開発予定

作成の経緯と成果

作成の経緯

  • 「コミュニティサイクル」という自転車のレンタルサービスを利用して通勤をしているが、毎朝自転車をレンタルするたびにアプリを操作するのが面倒だった
  • 自転車が置いてあるポートに自転車がないことが多々あり、最寄りのポート以外のポートの自転車の残数状況を確認し、予約できなかった時にどこにいけばいいのかを知りたかった
  • 自動予約を最寄りのポートにセットしているが、これが失敗した時にその通知メールが欲しかったのと、他のポートに自転車がある場合はその通知メールから自転車を予約できるようにしたかった
    *コミュニティサイクルについて
    https://docomo-cycle.jp/

成果

  • 自転車のレンタル作業を自動化させることで、毎朝自転車を借りるたびにアプリを操作する手間をなくすことができた
  • 周辺のポートの自転車の残数状況を平日7:00~10:00の間記録し、自転車の予約を確実に行える時間を分析するためのデータを揃えることができた(分析はこれから。少なくとも1ヶ月はデータを溜めたいのと、天気によって残数が大きく異なるのでデータに天気の情報も入れたい)
  • 最寄りのポートで自転車の自動予約ができなかった時には周辺の自転車ポートの空き自転車状況と、該当のポートへの予約を行うためのURLを載せたメールを送ることによって、自転車の再予約の手間を軽減することができた

アプリについての説明

全体像

Untitled_New_Diagram_-_Cacoo

自動予約について

  • 指定した時間に、指定したポートに対して自動予約を行う機能

動き

  • seleniumとheadlessモードのchromeでブラウザを操作して、コミュニティサイクルのページにアクセスし、予約を行う処理をrake taskにまとめている
  • heroku scheduler(cronのようなもの)が実行時間になると上記のrake taskを実行する

周辺ポートの予約状況調査について

  • seleniumとheadlessモードのchromeでブラウザを操作して、コミュニティサイクルのページからポート名と自転車残数を取得する処理をrake taskにまとめている
  • heroku scheduler(cronのようなもの)が実行時間になると上記のrake taskを実行する

予約失敗メールからの空きポートへの予約について

  • 上記の自動予約が失敗するとgmailに他のポートの自転車の空き状況と、予約のためのURLが記載してあるメールが飛んでくる

  • 予約可能ポートあり
周辺の予約可能ポート一覧です_-_sloth1990nori_gmail_com_-_Gmail
  • 予約可能ポートなし
予約可能な自転車はありませんでした_-_sloth1990nori_gmail_com_-_Gmail

今後の開発予定

  • 取得している周辺ポートの自転車残数状況を画面で見られるようにする
  • 画面から任意のポートに予約を行えるようにする
  • APIを使って自転車残数データに天気情報を入れる

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です