Countless news headlines have reported that thousands of vaccine doses are being thrown away every week due to becoming unused. Some centers have an excess, whereas some have a shortage. There are many other websites that list vaccine centers, but none truly prioritize and recommend centers with the largest number of doses to prevent vaccine usage. Furthermore, through talking with our friends and family, we found that different people prefer different vaccine types, which is why we take that into consideration when recommending a vaccine center.
What it does
Our website has two major components: one used by those seeking a vaccine, and one used by vaccine distribution center representatives. The first major component is utilized by those seeking a vaccine and receives data from the user, such as which vaccine they prefer out of Johnson & Johnson, Pfizer, and Moderna. The second major component used by vaccine center representatives receives data such as the location of the vaccine center, how many doses the center currently holds, and how many of these doses are from a given supplier. After being launched to various centers in VA and potentially around the country in a few weeks, representatives from these numerous centers can fill out the form (second major component) frequently. Our python backend stores this inputted data and is constantly updated as a new update from each center comes in. The python program then uses this data when those seeking a vaccine try finding a center and enter their vaccine of preference. The program sifts through all the data most recently collected from vaccine center representatives to find which center is the most optimal for the vaccine the person said they preferred. Optimal in this scenario and current stage of our program is the center that contains the highest number of vaccines specific to the type the person requested. For example, if a person said they preferred the Moderna Vaccine, our program will find and return the center holding the most Moderna Vaccines. If a person doesn't choose between the three types of vaccines but instead has no preferences, the center with the most vaccines, in general, is recommended to them. We are choosing to recommend centers with the most number of doses because thousands of centers are forced to throw away unused vaccine doses due to them becoming expired.
Furthermore, we have an optional question given to the user seeking a vaccine, to enter their zip code. If they choose to do so, the website will work as intended, except the zip code will be used as a filter. The server will only return the most optimal vaccination centers in the user's zip code, making sure the user doesn't have to travel far.
How we built it
We used python to run in the background of our website, sift through vaccine centers' data, use data received from website users, and finally figure out which vaccine center best suits users' needs, as well as inputting data about the vaccine distribution centers that healthcare professionals enter on our website.
Challenges we ran into
Accomplishments that we're proud of
We were able to successfully connect the python backend to the website frontend and were particularly pleased with the website layout/CSS styling that we created without the usage of any sophisticated templates. In general, pretty much all of our high-level code was made from scratch, and that is an achievement we are very proud of.
What we learned
What's next for FindMyVaccine
Currently, we limited it to Virginia. However, we plan on making it more accessible country-wide by increasing the number of centers that we can process and adding new functionalities/filtration ability for vaccine center recommendation. Additionally, a concern of ours is that the section for vaccination centers to enter the data isn't protected as anyone can enter data on behalf of a vaccination center. Therefore, we plan on implanting a password-based system protecting the second component with the password only being available to healthcare employees at distribution centers. The data is also insecure -- it is in a TXT file. Therefore, a reasonable next step would be to use a backend database, such as MySQL, instead.