A Python Web Application for Checking vaccine slots by pincodes and auto slot booking.

Overview

CoWIN Vaccine Slot Monitoring and Auto Booking (With Auto Capcha Solver)

View Demo · Report Bug · Request Feature

Maintained

About The Project

new_cowin

The Dashboard is developed using Bokeh and python 3.5+. This dashboard is useful for you if you are looking for something which will help you to book the vaccine slot once slots become available. Other Vaccine Finders will notify you once slots become available but you will still need to login to the portal and book the slot manually. This dashboard will look for slot availability continuously and will send the OTP itself once slots become available.

There are two modes available i.e Auto and Manual mode. In Manual mode, user will need to stay alert to enter the OTP manually.

And in Auto mode, user will need to do some installation and configuration as given here, so that script can detect the otp and will book the slot automatically. Auto Mode May not work all the time as this is a experimental feature

If you Like my work, you can Buy me a coffee (or more likely a beer)

Buy Me A Coffee

If this Dashboard has helped you to book your appointment then please don't forget to leave comment here.

Why this project

Being software developer I always try to automate things which are important to me. I really struggled to book the slot on cowin portal and other vaccine finder scripts did not helped me at all. So I wanted to do build something which will not just look for vaccine availability but also help me in automating the otp sending and slot booking tasks.

How this app different from other applications

Other apps/scripts expects you to feed otp every 15 minutes or something which is really not the cool idea. When you use this application, you don't need to feed otp's continuously rather this app will keep on searching for availability and will send otp only when there is slot available. In Auto mode if you have configured things properly then you don't even need to stay near to your laptop provided your phone is always connected to wifi or mobile data

Getting Started

Prerequisites

  • Docker: Click here to install Docker

If you don't want to use Docker then you will need python 3.5+ installed on your system and then clone this repository using into cowin-app folder using git clone https://github.com/suraj-deshmukh/CoWin-Vaccine-Slot-Monitoring-and-Auto-Booking.git cowin-app and install prequisites using pip install -r cowin-app/requirements.txt

Prior Gmail Settings and SMS Forwarder App Configuration for Auto Mode(Not required for Manual Mode)

Gmail App Password

You will need to generate gmail application password to use auto mode. The application password can be generated from here. This application password is different from you login password

Enable IMAP

Follow only Step 1 from this link

Android

You will need to install SMS Forwarder - Auto forward SMS to PC or Phone from google play store

Once you install above app from google play store. Follow below steps.

  1. Open SMS Forwarder - Auto forward SMS to PC or Phone App. Click on bottom-right plus icon like below

plus

  1. Enter your email id under Set up recipients as shown in below screenshot
drawing
  1. Enter Your OTP to register/access CoWIN is text under Rule for text as shown in below screenshot.
drawing
  1. Scroll down to More Settings and enter cowin under Filter Name and click on edit button to edit Email Subject and type [SMSForwarder] new otp %t and click on ok. Refer below image for the same.
drawing
drawing

Finally Click on SAVE button on top-right corner. You can always enable or disable this filter.

Usage for Docker

Auto Mode
  • Open Command Prompt and run docker run --pull always -p 5100:5100 -e PYTHONUNBUFFERED=1 -e TZ=Asia/Kolkata suraj20/cowin-vaccine-monitoring-n-booking-dashboard:latest --args "[email protected]" "app_password_here". The argument --pull always makes sure you are pulling latest image from docker hub.
  • Open browser and type http://localhost:5100/cowin-app.
Manual Mode
  • Open Command Prompt and run docker run --pull always -p 5100:5100 -e PYTHONUNBUFFERED=1 suraj20/cowin-vaccine-monitoring-n-booking-dashboard:latest. The argument --pull always makes sure you are pulling latest image from docker hub.
  • Open browser and type http://localhost:5100/cowin-app.

Usage for non Docker

Auto Mode
  • Make sure your system clock has set to IST(Indian Standard Time)
  • Clone this repo into folder 'cowin-app'
  • Change directory to the folder where you cloned this repository and then run bokeh serve --port 5100 cowin-app/ --args "[email protected]" "app_password_here"
  • Open browser and type http://localhost:5100/cowin-app.
Manual Mode
  • Clone this repo into folder 'cowin-app'
  • Change directory to the folder where you cloned this repository and then run bokeh serve --port 5100 cowin-app/
  • Open browser and type http://localhost:5100/cowin-app.

I recommend using docker option to run this dashboard. The docker option will make sure you always run latest image with latest features and bug fixes.

How to use

  1. Enter your name, select state, select districts, enter pincodes(incase of mulitple pincodes use csv format like 411001,411002 etc)associated with selected district only, 10 digit registered mobile number and reference ids(incase of mulitple ids use csv format like 12345678911234,12345678911111 etc. You will get this reference ids from cowin portal.
  2. Other Fields like date, dose number, age group,vaccine fee and vaccine type have default values. This are self explanatory fields and change as per your requirement.
  3. Select Mode. There are two modes i.e Auto and Manual. Select the one as per your choice
  4. For Dose 2, select the vaccine that you received on dose 1.

How does it work

  1. Enter all the details as explained above and the click on Submit Information button. All fields except OTP and Captcha one will be disabled.
  2. Once you click on Submit Information button, Start button will get enabled and then you can start the background process in seperate thread. The background thread will then monitor the given picodes continuously for slots availability as per the given filters. Once slots becomes available in any of the center in given pincodes, script will send otp to registered mobile number and background thread will stop checking for slots. You will get message as OTP sent successfully pn Reg Mob No. Please enter the OTP within 3 minutes. The center details for which slots are availbale will get populated under Center Name as shown below session
  3. If you have selected Manual mode then enter the OTP received on registered mobile number and click on Submit OTP. If otp is correct then you will get message on dashboard as below

Screenshot from 2021-06-06 22-37-15 (copy)

  1. If selected mode is Auto mode then user will not have to enter otp manually. The SMS Forwarder Application will forward the sms on given gmail id and python script has incoming email monioring code to check incoming emails related to cowin otp. Once script detects otp email it then parse the otp and book the slots directly. User will need to keep the mobile phone connected to wifi or mobile data all the time for SMS Forwarder to work

Demo

auto.mp4

To Do

  • Validations on input fields
  • Resend OTP option
  • Resend Captcha if captcha verfication fails.

How to Contribute to this repo

Follow this

Learn the basics of Python. These tutorials are for Python beginners. so even if you have no prior knowledge of Python, you won’t face any difficulty understanding these tutorials.

01_Python_Introduction Introduction 👋 Python is a modern, robust, high level programming language. It is very easy to pick up even if you are complet

Milaan Parmar / Милан пармар / _米兰 帕尔马 245 Dec 30, 2022
Discover and load entry points from installed packages

Entry points are a way for Python packages to advertise objects with some common interface. The most common examples are console_scripts entry points,

Thomas Kluyver 69 Jul 05, 2022
A collection of python exercises to help your learning path!

How to use Step 1: run this command git clone https://github.com/TechPenguineer/Python-Exercises.git Step 2: Run this command cd Python-Exercises You

Tech Penguin 5 Aug 05, 2021
HSPyLib is a Python library that will elevate your experience to another level.

HomeSetup Python Library - HSPyLib Your mature python application HSPyLib is a Python library that will elevate your experience to another level. It r

Hugo Saporetti Junior 4 Dec 14, 2022
A Microsoft reward automator, designed to work headless on a raspberry pi

MsReward A Microsoft reward automator, designed to work headless on a raspberry pi. Tested with a pi 3b+ and a pi 4 2Gb . Using a discord bot to log e

10 Dec 21, 2022
Graveyard is an attempt at open-source reimplementation of DraciDoupe.cz

Graveyard: Place for Dead (and Undead) Graveyard is an attempt at open-source reimplementation of DraciDoupe.cz (referred to as DDCZ in this text). De

DraciDoupe.cz 5 Mar 17, 2022
Stock Monitoring

Stock Monitoring Description It is a stock monitoring script. This repository is still under developing. Getting Started Prerequisites & Installing pi

Sission 1 Feb 03, 2022
Python dictionaries with advanced dot notation access

from box import Box movie_box = Box({ "Robin Hood: Men in Tights": { "imdb stars": 6.7, "length": 104 } }) movie_box.Robin_Hood_Men_in_Tights.imdb_s

Chris Griffith 2.1k Dec 28, 2022
personal dotfiles for rolling release linux distros

dotfiles Screenshots: Directions: Deploy my dotfiles with yadm Packages from arch listed in .installed-packages Information on osu! see ~/Games/osu!/.

-pacer- 0 Sep 18, 2022
Navigate to your directory of choice the proceed as follows

Installation 🚀 Navigate to your directory of choice the proceed as follows; 1 .Clone the git repo and create a virtual environment Depending on your

Ondiek Elijah Ochieng 2 Jan 31, 2022
Amitkumar Mishra 2 Jan 14, 2022
ColabFold / AlphaFold2_advanced on your local PC (or macOS)

LocalColabFold ColabFold / AlphaFold2_advanced on your local PC (or macOS) Installation For Linux Make sure curl and wget commands are already install

Yoshitaka Moriwaki 207 Dec 22, 2022
Custom SLURM wrapper scripts to make finding job histories and system resource usage more easily accessible

SLURM Wrappers Executables job-history A simple wrapper for grabbing data for completed and running jobs. nodes-busy Developed for the HPC systems at

Sara 2 Dec 13, 2021
GUI for the Gammu library.

Wammu GUI for the Gammu library. Homepage https://wammu.eu/ License GNU GPL version 3 or later. First start On first start you will be asked for set

Gammu 60 Dec 14, 2022
A python script to run any executable and pass test cases to it's stdin and compare stdout with correct output.

quera_testcase_checker A python script to run any executable and pass test cases to it's stdin and compare stdout with correct output. proper way to u

k3y1 1 Nov 15, 2021
My qtile config with a fresh-looking bar and pywal support

QtileConfig My qtile config with a fresh-looking bar and pywal support. Note: This is my first rice and first github repo. Please excuse my poor codin

Eden 4 Nov 10, 2021
A site that went kinda viral that lets you put Bernie Sanders in places

Bernie In Places An app that accidentally went viral! Read the story in WIRED here Install First, create a python virtual environment, and install all

310 Aug 22, 2022
Load dependent libraries dynamically.

dypend dypend Load dependent libraries dynamically. A few days ago, I encountered many users feedback in an open source project. The Problem is they c

Louis 5 Mar 02, 2022
Programming in Bioinformatics, Block 3

Programming in Bioinformatics - Block 3 I. Setting up Environment and Running the Code Create the environment using the pibi_block3.yml file with the

2 Dec 10, 2021
RecurrentArchitectures - See the accompanying blog post

Why this? What is the goal? The goal of this repository is to write all the recurrent architectures from scratch in tensorflow for learning purposes.

Debajyoti Datta 9 Feb 06, 2022