/CoWIN-Vaccine-Appointment-Booking

Script to automate COVID-19 vaccination slot booking on India's Co-WIN Platform

Primary LanguagePython

Contributors Forks Stargazers Issues


Logo

CoWIN Vaccine Appointment Booking

Script to automate COVID-19 vaccination slot booking on India's Co-WIN Platform
Explore the docs »

Report Bug · Request Feature


Table of Contents

About The Project

As it's a difficult task to schedule an appointment for CoVid-Vaccine with only limited slots available for each day, this script automates the whole process of checking availability of slots every 3 seconds and also books it as soon as it becomes available. Just do a one-time configuration by entering your preferences initially (pincode, district, centre preference, slot timing, etc.) and let this script do the rest.

Customizable Options in the Program

  1. State ID / Name
  2. District ID / Name
  3. Pincode(s) in the district
  4. Search Criteria (whether to search centres by Pincode or District)
  5. Centre Preferences (which centre to book among all the available centres)
  6. Slot Preference (whether to select a random slot from among the available slots for a particular centre or ask the user to manually select the slot once a valid centre is found)
  7. Appointment Date (date for which the centres have to be checked for availability and scheduling thereafter)
  8. Beneficiaries (which beneficiaries to schedule appointment for, among all the registered benficiaries(max. 4) in the account)
  9. Dose Number (which dose number (1 or 2) appointment to schedule. Must be same for all the selected beneficiaries)
  10. Min Age Limit (minimum age limit of the selected beneficiaries. All selected beneficiaries must belong to the same minimum age group, either 18+ or 45+)
  11. Vaccine Preference (vaccine preference for the selected beneficiaries. Once appointment gets scheduled, all selected beneficiaries will receive the selected vaccine. Available options: 'Any', 'Covaxin', 'Covishield')

Screenshots of GUI App

Screenshots of Console App

Prerequisites

  • When Installing via ZIP File: This project requires Python (3.6 or higher) to be installed on the user system if instaling via ZIP file

  • When Installing via EXE File: No initial setup is needed for installing and running this project via the EXE file

  • For Debian/Ubuntu/Mint Based Systems: You would need python3-tk package installed. To install this package, run the following:

     sudo apt install python3-tk -y

Installation

Instructions for running the CLI/Console application (Ubuntu/Debian/Mint):

  • Run the below to setup your Linux Machine. Below are specific to Ubuntu/Debian/Mint systems:

     sudo apt install git python3 python3-pip python3-venv -y
     sudo apt install python3-tk -y
     cd ~/
     git clone https://github.com/DivAgicha/CoWIN-Vaccine-Appointment-Booking.git
     cd ~/CoWIN-Vaccine-Appointment-Booking/
  • To avoid disturbing your host's python packages, create a virtual env and install the prerequisites:

     cd ~/CoWIN-Vaccine-Appointment-Booking/
     python3 -m venv ~/CoWIN-Vaccine-Appointment-Booking/
     source ~/CoWIN-Vaccine-Appointment-Booking/bin/activate
     pip install -r requirements.txt
  • To run the CLI/Console application, run the below command:

     python3 schedule_vaccination_appointment.py

Installation (via ZIP file)

  1. Install Python (3.6 or higher) and Git CLI (OPTIONAL) on the system by searching for respective setups for your operaing system on Google

  2. Clone the repo

    git clone https://github.com/DivAgicha/CoWIN-Vaccine-Appointment-Booking.git
  3. Alternatively, if you don't have Git CLI you can directly download the project's zip file by clicking here. Once downloaded, extract the contents of the zip file to desired location

  4. Open shell / command-prompt and change the working directory to "CoWIN-Vaccine-Appointment-Booking"

    cd "path_to_CoWIN-Vaccine-Appointment-Booking_directory"
  5. Install all the required python dependencies

    pip install -r requirements.txt

    Note: For Debian/Ubuntu/Mint Based systems, you may need to install python3-tk

    sudo apt install python3-tk -y
  6. Run the script (Console App) to enter your details and book a vaccination slot

    python3 schedule_vaccination_appointment.py

Installation (via EXE file)

This method is specific for users running Windows Based Systems.

  1. Navigate to the 'dist' directory for the setup file or click here to download the same for Windows.
  2. Double-click the installer file and follow the instructions to install the program.
  3. Upon successful installation you will find Covid Vaccination Appointment Scheduler folder in your C:\Program Files (x86)\ directory.
  4. Open the folder and run schedule_vaccination_appointment.exe (Console App) or scheduler_form.exe (GUI App) file.

Important Points to Keep In Mind

  • This is a proof of concept project. I do NOT endorse or condone, in any shape or form, automating any monitoring/booking tasks. Developed for Educational Purpose; USE IT AT YOUR OWN RISK. I SHOULD NOT BE DEEMED RESPONSIBLE FOR ANY LEGAL CONCERNS.
  • This goes without saying but, once you get your shot, please do help out any underprivileged people around you who may not have a laptop or the know-how. For instance any sort of domestic help, or the staff in your local grocery store, or literally the thousands of people who don't have the knowledge or luxury we do.
  • If you accidentally book a slot, don't worry. You can always login to the Official portal and cancel or re-schedule the booking. There is no option available for rescheduling or cancellation of Booking Slot in the Application. There will be an X symbol on the top-right corner for each beneficiary to cancel from CoWIN Portal.
  • There is no option to register new mobile or add beneficiaries. This application can be used only after beneficiary has been added through the Official WebApp of CoWIN.
  • Please refrain from abusing this tool by any means. Stay Safe.

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request