MVP design document
The Fever Map
Track the global pandemic in real-time. Help authorities make the correct decisions on COVID-19 measures.
Our team is building an app for citizens to report if they have fever or not. This would be a good proxy indicator for Corona virus spreading, since we society does not have resources to do real testing for everybody, and as long as authorities don't really know how wide spread the COVID-19 is, authorities are unable to make good and rational decisions about it.
Motivations
Problem: Lack of situational awareness for efficiently fighting the COVID-19 outbreak
Current Corona virus tracking in based on statistics collected from the health care services. Sites such as https://www.worldometers.info/coronavirus/ and https://corona.matsu.fi/ list the number of confirmed cases and deaths attributed to the disease. These numbers are wildly inaccurate, since we know that only a small percentage of affected people seek treatment and currently in most countries people with mild symptoms are requested to simply stay home and not use the health care system at all. Also, even of those who become clients of the health care services, only a small fraction are tested for the Corona virus since the test itself is in limited supply. Statistics based on patient data is simply incomplete and does not yield the whole picture in a situation when the disease is pandemic.
Solution: Track occurrences of fever on a population level in real-time
A solution is needed that:
- Can scale to millions, allowing population wide statistics
- Is cheap and available to any individual regardless of personal economical status or government funding
- Is fast to apply and not restrained by logistical limitations
- Has a short collection and analysis cycle, offering near realtime data
- Does not need to be accurate on a personal level but needs to be statistically valid on a population level
We propose to:
- Ask the general population to measure their own fever with a fever meter already found in most households
- Submit that information via an app
- Analyze and aggregate the data into actionable time ja location based data
MVP software design
End-user experience
The application needs to be dead simple, so anybody can use it. I also needs to be trustworthy so people don't get any negative feelings using it and instead experience a sense of purpose while using it, both personally and as a favor to other people in general.
The simplicity can be gained by implementing it as a progressive web application (PWA). To start using the app, users simply need to open the website https://fevermap.net/ on their mobile device (or any device in fact). There is no need to install anything from any app store, there are no disk space requirements nor is the app limited it any particular operating system.
The front page of the app should explain what the app is about, a section on how the data is collected and how to participate, and the summaries of the data itself. Following best PWA practices, the site should suggest the user to add a shortcut (application icon) to the site for easy access.
The application should not require any other permissions than app icon, location and push messages. Keeping the permission requirements to minimal would help win over the confidence of technical users considering to use the app.
Fever data entry
Data entry should be super simple and not require any personal identification. This is a not a health care system or a government tool (at least not yet), and all data should be collected anonymously and for statistical purposes, not to identify individuals. All we need to track is the device fingerprints and application installations/sessions to be also to track what submissions came from the same source.
The data entry should in its simplicity have the following fields:
- Do you have fever now?
- Answer options: Yes/No
- If Yes is selected: How much and slider from 37 degrees C to 42 degrees and also option "Don't know exactly, not measured"
- Tooltip (or equivalent, can be hidden initially): This information is used to track the prevalence of fever at the moment. Enter you status as it is right now at this very moment. If you have measured it, enter the exact temperature reading.
- Year of birth?
- Answer options: 1900-2020
- Tooltip: To perform the statistical analysis, the age of reporters is correlated to population averages.
- What is your gender?
- Answer options: male/female
- Tooltip: Enter your gender as stated in your passport or other government records. To perform the statistical analysis, the gender of reporters is correlated to population averages.
- Location
- Pre-filled with GeoIP data or mobile device location API
- Allow users to edit it if pre-filled value was incorrect
The values of 2.-3. should be saved in locale storage along with a unique and random reporter identifier, so next time the user opens the view to report their current fever status, the user basically only needs to enter the value to question 1.
There could also be a view to the user about their own previous submissions as well, so the app would double as a personal fever records diary in addition to the population level map function for general use.
Statistics view
The statistics view should be based on visualizing a static JSON file fetched from the application server. The statistics is real-time enough when the JSON files update once or twice an hour.
The statistics should show a map with aggregated fever to no fever ratios. There could be a time slider to view the situation at previous times, while the current status would be the default view. The time slider could also go into the future showing a prediction on how the situation evolves at current rate.
There could also be other statistics. All kinds of conclusions from the data could be drawn.
After the visual statistics themselves there should be summaries of the data so readers can evaluate the accuracy of the data set and explanations of all the calculations made so researchers and decision makers can fully understand how the figures were produced. Techies should be encouraged to visit the app's Gitlab page and contribute.
Not last and not least, there should also be an annotated formula of the key calculations and predictions, so people could understand what factors are at play, and how the change in certains factors could affect the longer term outcome.
Notifications
Outside of the app itself, the users could be reminded with a daily notification to report their current fever status.
There could also be an alert if the region where the user resides has the ratio of fever cases increased over some specific absolute or relative number.
Architecture
The software would consist of a browser based PWA front-end largely described above, and a back-end.
The back-end would include:
- the database that stores all data
- an API that receives the data submissions from clients
- an API that serves the statistical data
- the toolchain that produces the PWA app files
- server for static assets
- potentially a separate CDN to offload static responses to the network edge
Data model
Assuming a fast and highly scalable relational database with GIS support (e.g. MariaDB), the relational table schemas could be the following.
Submissions table
- submissions ID
- timestamp
- submitter ID
- fever true/false
- fever_temp (default NULL)
Submitters table
- submitter ID
- timestamp of enrollment
- year of birth
- gender
Fingerprints table
- fingerprint ID
- submitter ID (of who's device the fingerprint was collected)
- timestamp
- device ID, IP address and other fields needed to track the device and distinguish one device from another
The actual back-end code and algorithms to tie this data together will be outlined in a separately
Development model
Develop on Gitlab using the open source development model. Publish everything under for example GPLv3.
Have a protected master branch that is automatically deployed to production.
Have a CI system that tests all commits and merge requests before new code being applied on master branch.
Have all code, documentation and communications under the Gitlab project following best open source practices. Keep only the contact@fevermap.net email private so there is a channel for private inquiries.
Marketing and communications plan
The success of the whole endeavor depends on getting enough users, so that the ratio of users with the app within a certain region is high enough. Investing in marketing and communications in therefore vital.
First step is to make a great and an appealing UI, so that the app itself will speak for itself. Once the app MVP is ready, it will need a great marketing push to get the first critical mass of users, which is 1 % of the population in a given country.
Core message should be:
Help your local authorities track the extent of the pandemic. Start submitting your fever status daily at https://fevermap.net/
Once we reach critical mass, the message can be changed to:
Follow the spread of the pandemic in real-time at https://fevermap.net/ and contribute by submitting your own fever status daily
The domain fevermap.net is already aquired, as is fevermap.me.
For a logo we can ask the public for submissions, or source one quickly at 99designs.com or via similar service.
Primary channel for marketing is obviously social media. The topic is hot, so getting visibility for it should be quite easy, and we have a lot of contacts who can help with sharing our content. Account twitter.com/fevermap has already been secured for this project. The cornerstone for marketing very active social media presence. As a base goal, the social media team should not rest until there are 100 000 active users.
Steps after the MVP
The goal of the MVP is to get the basic architecture in place, users submitting data and general validation that this works and data is useful.
Steps after that could potentially include securing funding for running the operations on an international level, or collaboration with local governments to fund the development and operation of separate local versions, that have features that make the data more reliable and more useful for authorities (for example, incorporating strong authentication and making special confidential views available only for authorities and researchers). If getting enough coverage would end up being the main challenge, governments could even mandate all citizens to participate in the real-time fever mapping using this app.
TODO
Planning too much of what happens after the MVP is a waste of time. Focus currently should be in these steps:
- Finish this MVP design document
- Start working on the MVP
- Build up a small team that can complete the MVP
- Build up a small marketing team ready to promote this
- Launch
- Build up a small research team of medical and biological experts to mine the data for more insight
- Iterate on everything
- Slow down the spread of the pandemic and help resources being allocated wisely