As we struggle through times of global pandemic crisis, we are exposed to the undeniable lack of experience and flaws in our infrastructure of public health systems. Many countries, especially the United States, are struggling to get a grasp of available medical resources and sort out a way to proficiently escalate these resources to epicenters or places in needs. This in a very large part is due to shortage which is difficult for us to tackle ourselves, but something we felt we could do was track the availability and distribution of health resources.
During our late-night discord call, we talked with a friend who gave a life overview of the difficulties of getting supplies in South Korea because of lack of resources, crowded stores, and dangers of being exposed to others. At this point, SK has managed to contain COVID-19 with cases dropping dramatically, so we should see what we can learn from their experience.
In South Korea, the government had implemented a policy that allowed people to buy two masks per week on certain days of the week based on their birth years. Though masks are not as popular in the West, other health supplies such as sanitizer, soap, and cleaning supplies are still in high demand with stores being bought out extremely quickly. People are visiting stores in hopes to buy supplies, putting themselves and others at risk. If people knew which stores had available supplies, their experience going outside would become much more streamlined, reducing the time spent exposing themselves to others. This would need to be combined with policy to prevent mass buying, but could become useful for future crises not limited to pandemics. Consolidation of information is a major issue in the health industry, not limited to supplies, but we wanted to create an app that can tackle at least a part of the problem.
What it does
SupplyMe is an exciting web application that allows consumers to interact with pharmacies in a proficient manner and receive live-updates on health-related resources. Consumers (Users) will be able to login to the consumer-side application by verifying their phone number with Twilio Verify. Once users successfully verify, they will be redirected to a page where they can input their address. The address is then used to identify pharmacies around the address with Google Places API. We then utilized Google Geocoding API to convert pharmacies addresses into geographic coordinates. These coordinates were placed on a Google Maps display with markers that once-clicked shows the number of health-related resources the pharmacy has [done with Google Maps API]. On the lower right side of this page, users will be able to select pharmacies in which they want to be subscribed to. This would allow pharmacies to receive users’ contact information and contact them once supply has been filled up.
For pharmacy-side application, users will be able to login without verifying their phone number. They will simply be required to enter in their pharmacy name and phone number. Once users successfully enter in, they will be redirected to a page where they will be able to update information about their pharmacy [e.g. number of masks]. On the lower right side of the card input box, users will have a notify button that will send SMS messages to subscribed consumers, providing them with a life-update of how much resources are currently in stock.
TOOLS USED: node.js, express.js, MongoDB Atlas, Google Maps API, Google Geocode API, Google Places API, Twilio Verify API, Twilio SMS API, react
Challenges we ran into
- Deploying our app on heroku
- Connecting all the API to work properly
- Time zone difference of one of our members
Accomplishments that we're proud of
We were able to combine many different types of technologies to build a fairly complex system in a short amount of time. We are extremely satisfied with the way our application turned out.
What we learned
- We were able to communicate effectively in a small team through voice chatting applications such as discord.
- Git was extremely important in order to work simultaneously and section off components of the project.
- We learned to integrate MongoDB, Twilio API, and Google APIs to store locations and users.
What's next for SupplyMe
- Allow users to select specific resource numbers to watch. For example, be notified when CVS Pharmacy at 1041 El Monte Ave, Mountain View, CA 94040, United States has 50 masks available.
- Add a system to compute optimal ways to direct customers to different pharmacies so that they can avoid large cluster of people when picking up resources.
- Better login flow: Use passwords instead of phone numbers
Try It out
express.js, google-cloud/google-maps, mongodb, mongoose, node.js, react, twilio