The outbreak of the 2019 novel coronavirus and its resulting pandemic has impacted millions of institutions worldwide with hospitals being hit the hardest. Faced with the sudden floods of hundreds and even thousands of COVID-19 infected patients across the nation, the already weak healthcare system of the United States has been stricken with strain of unprecedented magnitude. Compound this with panic-buying of vital PPE and sanitizing agents by people across America, a desperate need for donations and pipelines for these vital supplies has opened up.
What Does it Do?
Give-and-ForgetManufacturers of necessary products such as masks, gowns, and sanitizers can easily upload the quantities and type of supplies they are able to donate and get immediately routed to a hospital in need. This completely eliminates the need for donors to research and contact hospitals that may need supplies. Both drop-off and traditional shipping options are also available.
Ask and ReceiveHospitals in need of supplies can specify type and quantities of items they need and get them routed automatically, whether it be from a local source or one across the country. Case information by county is used to assess the severity of outbreaks within the hospital's region and used to increase their flow of supplies, eliminating the reliance on local donors.
How's it Made?
WireframeWe began by outlining the logic flow of each portion of the program on a wireframe (linked to the Devpost) to outline the structure of our project. Different routes were specified based on your role as either a provider or hospital and framework for medical supply standards were discussed.
BackendUsing a combination of flaskRESTful for the framework, flask JWT for user authentication, mongodb with mongoAtlas for database, and Docker to create its image, we programmed the API from the ground up. A set of resources was coded to construct and represent the database of hospitals, providers, and supplies.
FrontendUsing Flutter we created the Frontend and connected to endpoints from the backend.
Rookie TeamDespite the ambitious nature of our project, half of our four man team was made of novice coders who had never used Python or possibly even used OOP. As a result, a "trial-by-fire" approach was adopted, with training being promptly committed to the project right after administration, providing the new coders with a very rapid learning experience. This gave them the rare opportunity to learn a coding language instantaneously while also giving the more experienced members an opportunity to test their abilities as not just coders but also mentors.
Accomplishments that we're proud of
Front-to-BackDespite the limitations to time and communication due to the virtual nature of this hackathon, communication between those working on the front and backend was done effectively. Even under immense time pressure they were able to bridge the gap between the user interface of the app and the code in the background and get it working flawlessly.
What We Learned
On the FlyGiven the ever evolving nature and scale of the coronavirus pandemic, its provided scenarios and problems that are themselves completely novel. As a result, our team has learned to create an app that's as efficient and functional as possible as to facilitate easy usage by those who need it. Additionally, we've designed our API to be dynamic and receptive to the ever changing situation.
What's next for CoronaCare
For the future, our app could benefit from the following few updates and tweaks to reflect changes in need and legislation resulting from the spread of COVID-19: *Feature allowing independent donors to donate smaller amounts of supplies from in-house production or personal stockpiles or as opposed to simply accepting donations from large companies and registered donors. *Integrating a map API into our application to allow users to view hotspots of need paired with the ability to pick specific delivery points, allowing users to target their own donations. *Changes to the urgency algorithm to reflect local ratios of cases or need to population to allow the app to more accurately assess the needs of local communities.
Try It out
dart, docker, flask, flutter, google-cloud, mongoatlas, mongodb, python