Our inspiration

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.

Our website was built using HTML and styled using CSS. We used Flask to help integrate our python program with the website framework, creating a backend server that takes care of all the behind-the-scenes action. Additionally, we used Javascript as middleware to connect the python backend to the website frontend and exchange data back and forth between what users input on the website and what the python code produces. Additionally, the Javascript updates the website's interface once it receives data from the Flask server.

Challenges we ran into

Neither of us was familiar with how to use Flask so we had to spend some time self-learning/working with a mentor to figure out how to implement it. Also, as beginners in our first year of coding, we had trouble integrating the several components of our code: Javascript, HTML, CSS, the Flask server, and vaccine center data.

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

We learned how to integrate Flask with a website, use Javascript to exchange data between the python backend and website frontend, effectively create and style websites, and, perhaps most importantly, better collaborate to develop a project from start to finish.

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.

Share this project: