Prototype: https://pr.to/W864FN/ (first download proto.io App from play store)
Functional development Version as Apk. You can share groceries with your friends TODAY. (Download, open on Android ONLY with File manager, accept that it is an unsigned app): https://github.com/RoyalSWiSH/corozone/blob/pushmessage/frontend/Corozone/app-debug.apk
Questions, Feedback and Help getting it to run: Sebastian Roy on slack.
Corozone is an all-in-one app for people in quarantine during this crisis and beyond. It provides a simple symptom checker which basically recommends calling a hotline or video doctor when you check loss of taste and smell and provides information about waiting time already before you even made the call. Not only medical conditions but also psychological issues are very important in times of crisis and we would like to at least simply link to one or a few of the many great projects on mental health in the hackathon (3. good health and well beeing).
When neighbours can do groceries for each other in a convenient way, that reduces the number of people in stores which in turn reduces the basic reproduction number (3.3 fight communicable diseases). While most apps just establish contact, we also take care of managing grocery lists, clarifying which brand of cheese is your favourite and not buying toilett paper twice, since "I already bought that yesterday". We also did not forget the elderly, since their grandson can just add a grocery request for them (9.C universal access to information and communications technology).
what does it do
The goal for this weekend was to finish an MVP which others can install on Android and iOS and use to a) think of tinder for helping others. Look for what kind of grocery request you want to accept in your local area and go shopping b) share grocery lists within your family in realtime at the same point where you can store your own groceries. When you are in the supermarket you will see that your mum added salt half an hour ago to her list for next time, but you can just get it for her and she will be immediately notified to not get it twice You can find an *.apk file attached here for Android.
Neighbourhood help: To reduce traffic in supermarkets and help people in quarantine you can request groceries for you or your grand parents in another city. Helper can accept a request and go shopping. Unlike other apps we don't just establish contact, we help sharing grocery list, check what wasn't available and after the casheer you just enter the amount you paid.
Contact-Tracking: Add your regular cluster of social contacts like your family and then add the events where you had contact to people outside of your family. We also plan to integrate one or multiple contact tracking libraries (TCM PEPP-PT or DP3T) which we believe offers the best level of privacy (reuse and improve, use open standards), so you don't need another app and in the end you can choose where you want to participate (16.6 develop effective, accountable and transparent institutions) .
Mini-Diagnosis: Track your symptoms and get a first idea if you should contact a doctor or not. For this we use official medical recommendations and before releasing this function we plan to apply for DiGa certification with BfArM (Bundesinstitut für Arzneimittel und Medizinprodukte) in Germany. Contact the hotline and get informed on waiting times before even calling with our signal light. https://www.bfarm.de/DE/Medizinprodukte/DVG/_node.html
Privacy: We believe that maintaining privacy does't not mean not using technology at all. We give control to the user. In the privacy tab he can see when his data was accessed, by whom and why. When you track symptoms on your device, you can share them with your doctor, but only if you approve to do so. When governments want your help tracking down contacts or understand locations of infection hotspots, they can send a request to your device why and for what they are using the data. You can decide if you release the data or not. You can decide if you want to keep you data on the device or store them encrypted in the cloud, so it doesn't get lost, but you still hold the keys.
Security: Security can be like a very tough safe. As long as no one knows the combination, the data is protected. Our approach is different. We will show how the data is stored right here and how we use best practices to convince you that the level of security is appropriate for groceries as well as for medical data. Right know, many locks even like SSL aren't in place yet, because, well it is a 48h hackathon. But we communicate the level of available security to the user so he can decide when he is comfortable. When we claim something to be secure, anyone is invited to hack it, if you find something, please get in touch, we will respond in 24 h and promise to do whatever we can to sort it out with your help.
Accessibility: Android and iOS provide support for accessibility and we try to stick to their guidelines so the phone can use as much functionality as possible https://developer.apple.com/accessibility/ios/
We build our app with scale in mind, this also means a sustainable business model. We do have costs for backend server, databases, notifications, chat SDKs, iPhone developer account and prototyping services. To scale and not remaining a pilot we need some form of revenue. Since we believe that if a product is free, the user in the end is the product, it will be some form of freemium subscription model. This keeps our interests and the interests of the user in line. To keep more functionality free ads are also an option or monetizing cooporation with local food suppliers. This has to be evaluated at different adoption stages of the product.
How did I build it?
The frontend is build in nativescript vue, so it runs on Android and iOS. User authentication, notifications and synchronisation of grocery list between friends is currently done with firebase. On the backend we use go (echo) and postgresql on a managed server, where we can easily add more workers (Design for Scale). To ensure quality we started to integrate end-to-end tests with appium.
When you have the user in mind early, you figure out easy things like that when you add a grocery item at the end of a list the keyboard may overlay it and the user feels that nothing happend. You observe that people want to do groceries themselves because others just "don't understand which cheese they are looking for" and that when you send the husbands you get everything, just "not what was needed for lunch today". These seemingly innocent issues can cause trouble in families especially in quarantine and lead to more people "just doing it themselves" instead of helping each other out.
- obtain access to google and apple app store, since they do not approve any corona apps (symptom tracking, contact tracking) without written endorsement from government -> apply for DiGa certificate from BfArM (https://www.bfarm.de/DE/Medizinprodukte/DVG/_node.html)
- avoid long waiting lines by obtaining access to utilization rate of hospitals (beds and ventilators) and hotlines -> coorperation with other teams and manufacturer of patient management systems in hospitals, CONTACT TO MANUFACTURER NEEDED
whats next for corozone
- share the current version with beta testers to do groceries
- implement symptom tracking diary, not just one moment snapshot
- implement secure sharing of data with authorities with permission of user
- integrate TCM, PEPP-PT and/or DP3T for contact tracking via bluetooth and enabling choice for the user
- integrate transport layer security (SSL), encryption before data gets stored to database (AES) and asymmetric encryption to share data with health care provider or researcher
- localization in german (done), englich (done) french and italian
- middleware in go to show when data was accessed by third party
- UI design
- GDPR statement
what am I most proud of
I am most proud that I got shit done.
what did I learn
In #wevsvirus hackathon I learned about GDPR, user authentication location databases and gained experience in nativescript vue. During #euvsvirus I learned from several mentors about CE certificates and regulation on medical products with DiGAs (Digitale Gesundheitsanwendung) (thanks Rosella Dibidino), realtime databases with google firestore (thanks Simon Johnstone), E015 in Italy and IDS architecture to store data (thanks Giulia Giussani)