Virus tracking mobile app
infection prevention on a mass scale
COVID tracker helps its users in identifying which places to avoid (crowded squares, malls, public transport, etc.) Even more than that, it sends a notification to users about potentially being infected. By creating a database of routes infected people took in the two weeks prior to them being diagnosed (the official dormancy period for the virus), others can stay safe. Once someone is infected, they upload their anonymised routes and it shows up for every other user on a heatmap and a notification is sent to anyone with whom they crossed paths in the past 14 days. In the future, parts or the whole of the application can be reused e.g. tracking, manually pinning locations etc.
efficient tracking and proximity detection
Our solution consists of multiple components. We started developing a mobile application and a backend in parallel, both in an iterative manner, taking up around 3 weeks of total development.
The iOS version of the mobile application was selected to be implemented first to serve as a basis for prototyping, getting feedback and collecting test data.
The anonymous identification of the app’s users is based on Google’s Firebase Cloud Messaging. It generates a token on first launch, which is then sent to our servers in exchange for a JWT for authentication. The FCM token is destroyed upon deletion of the app’s data.
We integrated multiple features of Google Maps Platform, since it is platform agnostic and free to use for our use-cases. We use this to show an interactive world map to the user and an additional utility library that accompanies the base GMP library allows us to display a customizable heatmap. We found this combination to be of high-quality and easy to integrate.
Testing is in progress, and distribution is through Apple’s TestFlight service. The Android version is soon to be implemented heavily relying on the design decisions made during the creation of its iOS counterpart, given that it reaches a certain maturity level. We decided to target iOS 12 and above and Android 4.4 and above, since they cover 93% and 96,2% of their current market shares, respectively.
The backend is a Spring application with a REST API and the responsibility of handling authentication, infection report aggregation and querying. Messages to the server are in JSON format, and persisted in MongoDB for simplicity.
The backend is responsible for generating and storing the JWT of the user in exchange for a FCM token. It’s also responsible for storing the uploaded user location data, and making the anonymised data accessible to the other users.
Another one of its capabilities is sending push notifications remotely to iOS and Android users using the acquired FCM tokens. Lastly, a news feed which is to be displayed in the app in the near future will also be powered by the backend.
An admin interface and a website are also among our near-future plans.
backend and iOS mobile app
MVP version for iOS that is a good base for iteration