Our given prompt for our project was to create something that either helps to fight COVID-19, or to make the lives of people in quarantine easier. As lockdowns begin to be lifted, our goal is to help people to stay safe while also enjoying their community
What it does
CoronaGuard uses bluetooth and location to notify users if they are too close to a user that has stated themselves as infected or symptomatic. CoronaGuard also helps you visualize the location of nearby users on a map, which allows you to see if there are many people in a certain location (ie. grocery store) that may have declared themselves to be symptomatic or otherwise. The locations of our users are not their exact location, but merely a self-reported estimate of where they have been, as to not breach their privacy. When the user clicks the button, they can make their location at that moment seen. For example, if a person who has reported themselves as symptomatic goes to get groceries, they can notify their neighbourhood that they were there recently if they were to change their status to diagnosed.
How I built it
We built the app by using flutter as the frontend and firebase for the backend. The main screen uses the google maps API to display a map on the screen and show general locations of users who have updated their status as either infected or symptomatic. The app gets this information from each user profile when the user logs into the app and updates firebase with that information.
Challenges we ran into
- Not having Flutter setup on every computer. (installation errors)
- Minimal firebase experience from some of our team members
- Connecting Flutter with Firebase for the Android app data to connect to the real-time database
Accomplishments that I'm proud of
- Learning and utilizing the Google Cloud Suite of Services
- Creating a functional app with an aesthetic UI and Google login feature
What I learned
- Flutter and Dart: All 4 of our team members were completely new to flutter and Dart.
- Firebase: We were also new to firebase cloud firestore and Firebase authentication.
- Google Maps API: Showing google maps on a screen in our Flutter app and adding custom markers.
- Git/Github: 3 out of 4 of our team members were new to Git version control.
What's next for CoronaGuard
The main next step for our app would be to add bluetooth compatibility for push notifications. Our goal was to detect other devices in your vicinity, and send a push notification if a person with a “symptomatic” or “diagnosed” status is nearby. We found the process for connecting notifications with the backend to be quite difficult as there were several details to Firebase Cloud Messaging to send notifications to a particular device based on changes in the database. In our demo, we currently have sample locations of users on the front-end. Based on the detection of nearby bluetooth devices, areas where there are high concentrations of “symptomatic” or “diagnosed” people would have red circles on the map, and show the user areas not to go.