The world is rapidly falling into a pandemic crisis. Experts say we should all practice social distancing, however, some parts of the population struggle with the execution of these practices. We tried to find solutions that encourage social distancing in a fun and easy way and at the same time enable anonymized contact tracing, and fully implemented an app consisting of a limitlessly scalable backend and user-friendly frontend.
What it does
KeepDistance scans its surroundings for low energy Bluetooth signals within proximity of two meters. If it detects a device it registers it as a contact to the backend-server. The server identifies if the contact is made by a mobile device and stores this contact together with a timestamp.
This information then generates a score, which gets lower the more contacts a user has. You can compare yourself with a global ranking, see how many contacts you had today and see your rank (e.g. "Distance Master"). This way we try to encourage social distancing in a fun way.
The information collected basically registers contacts with other users. This information can potentially be used for contact tracing. Although we do not know who the person is, we can notify them via in-app notifications if the came into contact with an infected person. For that, the infect person has to report his infection via the app.
We strongly believe in the social responsibility of each individual and therefore collect no information that makes it possible to link the contacts to a real person. So means, if you get a notification that you have been infected, you can decide what to do with it. However, we strongly recommend that you seek medical advice and put yourself in self-quarantine.
The app consists of a fully-fledged backend and frontend, which are both functional and ready to use.
- The frontend is a React Native app that can be installed on any mobile device
- The backend is a completely serverless AWS based node.js app that can scale to any amount of users
Documentation, developing, testing and building on it
Please see all technical documentation on GitHub: https://github.com/manuelschlegel/code-vs-covid-19
How we built it
With a lot of love, coffee and sleepless nights (see the tags for technical details)
Challenges we ran into
Many. Simple things that should not work did not work. What should not work worked miraculously.
Accomplishments that we're proud of
That this thing is actually working AND that the idea behind is neat. We are confident if our governments had a fully working version of this application ready before the pandemic, there would be no pandemic.
What we learned
- A lot of new technical stuff (serverless, managing Bluetooth with an android device)
- That you need to make compromises in order to get a working prototype within 72hrs
What's next for KeepDistance
- Improve app stability and security
- Implement the anonymous contact tracing functionality and reporting functionality
- Field test of the application
- Add features to further "socialize" social distancing (Achievements, Friendlists, Chat)
- Find partners to advertise the application (e.g. local governments)
Try It out