Inspiration

Rapid antigen tests are easy-to-use tests that detect certain proteins in the virus to confirm the presence of COVID‑19. Results from these tests can be available in as little as 15 minutes.

To further support Ontario’s cautious easing of public health measures, we wish to provide location information and instructions regarding access to free rapid testing kits to the general public for at-home use.

What it does

A React-based web app that shows locations of available COVID-19 test kits in Ontario.

This app makes use of the Government of Ontario's Ministry of Health's public API to identify locations of possible testing kit pickup locations. Using the GCP Geolocation API, we transform the Ministry of Health's vague addresses (e.g. "290 Bremner Blvd") into exact latitudinal and longitudinal coordinates (e.g. 43.6426° N, 79.3871° W) to be presented in our map, powered by React and the Google Maps SDK.

How we built it

We manually retrieve data from the Government of Ontario's Ministry of Health's public API. Then, a Node.js script transforms this raw data into exact geographic locations using the GCP Geolocation API. This data is stored as a static JSON file to be served by our React app, appearing on our Google Maps SDK integration alongside our sleek React frontend.

Challenges we ran into

One of the major challenges we ran into while trying to implement request minimization was learning and using GCP for the first time. We struggled to use GCP Cloud SQL for PostgreSQL as a means to store our transformed data to reduce the number of queries associated with retrieving all Locations from the client. We also struggled with moving geocoding workload away from the client and over to GCP Cloud Functions.

Accomplishments that we're proud of

  • Learning GCP services such as Google Maps SDK, Cloud Engine, Cloud Functions, Geocoding API
  • Designing and implementing a professional React frontend
  • Hosting the web app on EC2 with a DNS domain
  • Learning new technologies in record time
  • Creating a web app that will help others

What we learned

We learned about many of the products offered by GCP, and the variety of geographical services it provides. As we plowed through our project, we were able to discover for ourselves many design paradigms associated with creating production-grade fullstack applications. We were able to learn the best practices for overall service architecture (e.g. GCP Cloud Functions to free up resources, serverless style) as well as frontend architecture (e.g. React component hierarchy and argumentation).

What's next for covid-test-kit

In the future, we would like to implement request minimization to the Geocoding API. As things stand, we make 2700+ requests to this API every time we wish to update our JSON file of latitudes and longitudes. Ideally, we would implement a way to track if the original data coming from the Ministry of Health's API had not changed since the last query, in which case an outgoing request to the Geocoding API for that address would not be necessary. In addition, updating our JSON file is a manual labour that we seek to automate in the future.

Share this project:

Updates