Tracker to check the covid shot slot availability in India and send mobile alerts via Twilio Messaging Service.

Overview

Cowin-Slot-Tracker

Tracker to check the covid vaccine slot availability in India and send mobile notifications through Twilio Messaging Service.

Requirements

Docker must be installed in the local system. Refer docker documentation to set it locally based on your machine specification. If you are a Windows user and wants to setup docker, follow this video

How to use?

There are two parts to this system

  1. Pinging the public COWIN API to get district wise data and checking for availability, every 15 minutes.
  2. Relaying this information to the user's mobile via Twilio Messaging Service. For that, one must configure Twilio
    1. Sign up on Twilio using your email id. After verifying your email log into the Twilio Dashboard. For this purpose, we will remain on free trial.
    2. Once you are in the dashboard, click Get a trial phone number.
    3. Under Project Info, you can find the ACCOUNT SID, AUTH TOKEN and PHONE NUMBER (Twilio Phone Number and not yours). Make a note of these numbers.
  3. After successfully completing above steps, you are good to go.

Once all the above requirements are met, do the following

  1. Git clone this repository(if you are techie enough), otherwise download the repository by clicking on Download ZIP under Code.
  2. Open Terminal and change your directory to the folder you have just cloned/ downloaded. (Remember to extract the .zip file if you have downloaded it)
  3. Make sure Docker Desktop is running.
  4. Modify settings.json with your settings.
  5. Run docker build -t covin --rm .
  6. Run docker run -it --name covin-schedule --rm covin
  7. If there is a slot available in the district code you have provided, you will receive an SMS on your phone.

If you want to change settings, rebuild the image and run(Step 5)

Example Response

sample settings.json

{
  "districtId": "391",
  "authToken": "09cbfca2asdad5ae4fe991ac8858adca1b",
  "accountSID": "AC6b24b0sdasuef906ed07sdfasd4e8d",
  "twilioPhone": "+1xxxxxxxxx",
  "selfPhone": "+919xxxxxxxx",
  "userAge": "45"
}

Response

Slots Available at 16 places.
SAKUR RH 2, Samsherpur RH, NIRAMAY HOSPITAL, Rahata RH, Chichondi Patil RH, Sakur RH, WAMBORI RH 2, 
Wambori RH, JAMKHED RH 2, Topkhana HP, Rajur RH, SHRIRAMPUR RH 2, CHICHONDI PATIL RH 2, TAKALI DHOKESHWAR RH 2, 
RAJUR RH 2, SAMSHERPUR RH 2

Here 391 is the district id for Ahmednagar, Maharashtra

Sample District Codes in Kerala

  • 301: Alappuzha
  • 307: Ernakulam
  • 306: Idukki
  • 297: Kannur
  • 295: Kasaragod
  • 298: Kollam
  • 304: Kottayam
  • 305: Kozhikode
  • 302: Malappuram
  • 308: Palakkad
  • 300: Pathanamthitta
  • 296: Thiruvananthapuram
  • 303: Thrissur
  • 299: Wayanad

Other States

To find District ID for other states:

Got to Cowin Portal in the browser

  • Open Network tab in browser
  • Search for vaccine availabilty in portal
  • Check Network tab for requests
  • Find district_id property value from the requests
Issues
  • removed problems with empty centers, added json file for ease of use

    removed problems with empty centers, added json file for ease of use

    Bug Description

    • Some districts like Kottayam(304) have no centers, so payload would be {"centers": []}
    • Thus checkAvailability to return False, False instead of string as expected,
    • So if (len(available) > 0) would throw TypeError

    Bug Fix

    • Change if len(available) > 0 to if available

    Feature

    • A settings.json can be provided as an alternative of passing 5 shell arguments.
    • If settings file is detected, settings would be loaded from that file, else shell arguments would be used.
    • A settings.example.json file is provided with required schema.
    opened by UKnowWhoIm 7
  • More features

    More features

    Filter by Age Limit Vaccine Type

    enhancement help wanted 
    opened by rohitanil 3
  • [Errno 2] No such file or directoryacker.py

    [Errno 2] No such file or directoryacker.py

    I am new to docker, this is what happening when I tried running it.

    opened by YuvrajRaghuvanshiS 3
  • Additional features

    Additional features

    1. Move from IFTTT to Twillio for notification
    enhancement 
    opened by rohit-anilkumar 2
  • Fixes arg name

    Fixes arg name

    opened by chandanpandit 1
  • error showing up

    error showing up

    raceback (most recent call last): File "covin_slot_tracker.py", line 97, in data1 = pingCOWIN(date,DISTRICT_ID) File "covin_slot_tracker.py", line 40, in pingCOWIN return json.loads(response.text) File "/usr/local/lib/python3.8/json/init.py", line 357, in loads return _default_decoder.decode(s) File "/usr/local/lib/python3.8/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/local/lib/python3.8/json/decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

    opened by jithindayal95 1
  • fix derp

    fix derp

    json.decoder.JSONDecodeError: Expecting ',' delimiter: line 4 column 30 (char 93)

    opened by Chityanj 0
  • Update settings.json

    Update settings.json

    Resolve an invalid argument error by changing chatID in settings.json to correspond with chatId in covin_slot_tracker.py .

    opened by Tanishq4331 0
  • Update requirements.txt

    Update requirements.txt

    opened by rohitanil 0
  • Modify response to show pincode, vaccine name and 1st/2nd dose information

    Modify response to show pincode, vaccine name and 1st/2nd dose information

    Modify response to show pincode, vaccine name and 1st/2nd dose information and pretty print it.

    Thanks for the great work.

    opened by HarshRajIN 0
  • Updated README.md

    Updated README.md

    Added screenshots and links to videos to enable users to seamlessly install and use the code

    opened by trishh088 0
  • Telegram bot created to send messages to individual users

    Telegram bot created to send messages to individual users

    A common bot has been created which a user doesn't have to set up, all they need to do is find their telegram id, input in their district and telegram if along with the age parameter that they need and they are set to get messages directly to their mobile. Also added on how to install Anaconda and how to run the program locally without using docker

    opened by trishh088 0
  • Improve README

    Improve README

    Make the README file more user friendly (for non technical users) Add screen shots or screen grabs to show step by step process

    documentation help wanted 
    opened by rohitanil 1
Owner
invalid username
Data Scientist at Tata Elxsi. Enthusiastic coder. Entrepreneur.Ex- Product and Engineering Lead at Continuum Labs.
invalid username
Light weight Scripts and Apps for checking availability of Covid Vaccines in India. Notifies when vaccine becomes avialable in your area.

vaccine-checker Light weight Scripts and Apps for checking availability of Covid Vaccines in India. Notifies when vaccine becomes avialable in your ar

Abishek V Ashok 8 Jun 16, 2021
This very basic script can be used to automate COVID-19 vaccination slot booking on India's Co-WIN Platform.

COVID-19 Vaccination Slot Booking Script This very basic CLI based script can be used to automate covid vaccination slot booking on Co-WIN Platform. I

null 614 Dec 13, 2021
Telegram bot to check availability of vaccination slots in India.

cowincheckbot Telegram bot to check availability of vaccination slots in India. Setup Install requirements using pip3 install -r requirements.txt Crea

Muhammed Shameem 11 Sep 9, 2021
CoWIN Vaccination slot booking telegram bot with auto captcha resolver & alerting feature.Now, never miss a slot.

COWIN VACCINATION SLOT AUTO BOOKING (Bot with captcha solving & alerting capabilities. Never miss the vaccine slot.) June-10-2021/ 0030 hrs: 23 succes

Shashank Bafna 15 Oct 11, 2021
And now, for the first time, you can send alerts via action from ArcSight ESM Console to the TheHive when Correlation Rules are triggered.

ArcSight Integration with TheHive And now, for the first time, you can send alerts via action from ArcSight ESM Console to the TheHive when Correlatio

Amir Hossein Zargaran 2 Oct 13, 2021
Faster Twitch Alerts is a highly customizable, lightning-fast alternative to Twitch's slow mobile notification system

Faster Twitch Alerts What is "Faster Twitch Alerts"? Faster Twitch Alerts is a highly customizable, lightning-fast alternative to Twitch's slow mobile

null 1 Jan 1, 2022
Texting service to receive current air quality conditions and maps, powered by AirNow, Twilio, and AWS

The Air Quality Bot is generally available by texting a zip code (and optionally the word "map") to (415) 212-4229. The bot will respond with the late

Alex Laird 7 Jan 5, 2022
This automation protect against subdomain takeover on AWS env which also send alerts on slack.

AWS_Subdomain_Takeover_Detector Purpose The purpose of this automation is to detect misconfigured Route53 entries which are vulnerable to subdomain ta

Puneet Kumar Maurya 8 Aug 8, 2021
Get Notified about vaccine availability in your location on email & sms ✉️! Vaccinator Octocat tracks & sends personalised vaccine info everday. Go get your shot ! 💉

Vaccinater Get Notified about vaccine availability in your location on email & sms ✉️ ! Vaccinator Octocat tracks & sends personalised vaccine info ev

Mayukh Pankaj 6 Nov 14, 2021
universal messaging & notifications api

Pronounced "boat-shahft" What is botschaft? Botschaft is unified messaging & notifications appliance. Want to text yourself when a long-running task c

Tyler M. Kontra 26 Dec 14, 2021
Secret messaging app which you can use to communicate with your friends by encrypting / decrypting secret messages or sending secret message through mail.

Secret-Whisper A Secret messaging app which you can use to communicate with your friends by encrypting / decrypting secret messages ?? or sending secr

null 3 Jan 1, 2022
Instant messaging client in tkinter

Concord_client_tk Instant messaging client in tkinter Contributors : Ilade-s [https://github.com/Ilade-s] Doku [https://github.com/D0kuhebi] Descripti

Raphaël Merlet 2 Oct 21, 2021
A decentralized messaging daemon built on top of the Kademlia routing protocol.

parakeet-message A decentralized messaging daemon built on top of the Kademlia routing protocol. Now that you are done laughing... pictures what is it

Jonathan Abbott 2 Jan 1, 2022
The records of 42 million users from a third-party version of the popular Telegram messaging app have just been Iranian accounts leaked

TelegramDatabase About The records of 42 million users from a third-party version of the popular Telegram messaging app have just been Iranian account

Hamed Mohammadvand 10 Dec 26, 2021
A Python module for communicating with the Twilio API and generating TwiML.

twilio-python The default branch name for this repository has been changed to main as of 07/27/2020. Documentation The documentation for the Twilio AP

Twilio 1.5k Jan 10, 2022
A Python module for communicating with the Twilio API and generating TwiML.

twilio-python The default branch name for this repository has been changed to main as of 07/27/2020. Documentation The documentation for the Twilio AP

Twilio 1.5k Jan 10, 2022
Whatsapp-bot - Whatsapp chatbot build with python and twilio

Whatsapp-bot This is a Whatsapp Chatbot that responds with quotes, reply owners

arinzejustinng 1 Jan 14, 2022
Automatically send commands to send Twitch followers to any Twitch account.

Automatically send commands to send Twitch followers to any Twitch account. You just need to be in a Twitch follow bot Discord server!

Thomas Keig 2 Nov 25, 2021
The Official Twilio SendGrid Led, Community Driven Python API Library

The default branch name for this repository has been changed to main as of 07/27/2020. This library allows you to quickly and easily use the SendGrid

Twilio SendGrid 1.3k Jan 16, 2022