Inspiration
I had the idea on Saturday, March 21st. I've been working on it since 9AM that day, every day. The father of somebody I know was the first to die from COVID-19 in Ohio, who was also friends with our governor. Nobody was informed he was infected. The fire department and EMS that took him to the hospital did not know he was until after he passed away and it was in the news.
The idea was we need an App and system to notify people if they have come into contact or close proximity with infected or potentially infected people.
What it does
When installed the App registers with the web server and is given a unique ID. It is only required to report the postal code of the App user. Other information and demographics is optional.
The App will log the location coordinates of the user locally every N minutes/second (TBD) when they move a certain distance beyond their last reported location.
There will be heath check in's where they can report if they have any symptoms or a known case of COVID-19.
If they report they are anything but health, they will be prompted to submit their location history to the server. This includes exclusion zones so they can maintain their privacy, such as excluding location reporting near their home.
Some planned features take into consideration population density and distribution.
When the user self-reports, the web platform will ping all apps registered in the same postal code as the self-reporting user, as well as any locations their history indicates they were in. This triggers those Apps to download that location history to compare against the internally stored information. If there are any locations within 4 to 5 decimal places of Lon/Lat at the same time, or after on the local device that match the downloaded data, the user will receive a notice they may have been exposed to COVID-19 and to take additional precautions.
When the cross-check is positive, it will notify our server about the possible exposure which can be used for clustering purposes. The objective with the notification is to prevent people from spreading the virus who are unaware they may have it and are infectious.
The data beyond this becomes granular. If the downstream individual who was notified becomes sick within the 14 day incubation period, we have data that may indicate the infection point and all locations between infection and self-reporting. This becomes very useful in the fight against COVID-19. This repeats the same cycle as above.
Information will also be able to be viewed on a public facing website, which will also allow people to report that do not have the App, where they can indicate where they were prior to becoming sick. This information is rated low quality. We have high, medium, and low risk/quality ratings used in the notifications.
For version 2.0 we will have a dashboard and access area to hospitals and doctors. This will be a location they can confidentially work with a patient and obtain their unique App ID to track them outside of the hospital, regardless if they met with the doctor in person.
The doctor will be able to monitor their status as well as communicate with them through the platform to the App since the App with be phoning home to check for alerts/push notifications, and other instructions.
Ultimately, the goal of the App is to inform the end user about their exposure risk so they can take action to reduce the spread. It has other applicable uses as well.
How I built it
This is a work in progress. We developed proof of concept components to ensure the aspects of it that were most complex could be completed in a timely manner and would not unhinge the entire project.
I decided Reach Native would be the quickest way to get this to market on iOS and Android. The server is running PHP Laminas, a framework I like because it follows computer engineering standards and design patterns. I'm familiar with it and I know what it is capable of doing. Some of the other stacks I have worked with were too limited to web only use. There are also modules available at the server level to reflect any solutions out there, such as NodeJS, if features like that are needed, but we can run it in parallel with NodeJS is we need to, we've done that before.
Challenges I ran into
We need developers! I own a tech company so I was able to find some developers. That was the first challenge, but we need more help. The second challenge was building a team of people who can help in non-development areas.
Luckily I have friends in business and government that stepped up to the plate, including an attorney as well as a well respected law firm that has been helping us. The next challenge was credibility, but as it turns out, we have been in contact through my friend with all the connection with the local government. We have also talked with Mercy Health and have been communicating with ProMedicia here in Toledo.
Next we needed credibility. The Mayor's office and County have been in communication with us. The law firm assisting is where the son of the first death of COVID-19 works as an attorney and he has a direct line to Governor Mike DeWine here in Ohio.
Additionally, I have a line of communication with the Ohio House of Representatives Health Legislation arm. They like what we are working on and will help us clear any paths within their ability.
Another contact has a radio program on in the mornings, which has talked about what we are working on today, so the awareness is spreading.
Last is funding. I can fund this project to an extent but this is a passion project right now being run by volunteers. I've covered the costs to get things going and we have also incorporated as a LLC so we have some legal protection. We also have some potential investors, but we're going to need to step it up a couple notches for that to move forward.
React Native is not going to do everything we need, such as running actively in the background when the app is closed or screen is off. We will need to go with native languages on that one.
Accomplishments that I'm proud of
Solving the issues I've laid out above, but really it is the team I've built and I'm really proud of them and what they've done to help out. I wouldn't be this far without them, it would just be an App idea backed by hope. But this one is backed by volunteers and real progress.
What I learned
I've started 7 or 8 businesses over the last 20+ years. What I've learned is that while you can do something on your own, it's a lot harder and takes much longer than if you can build a team. I also know that almost nobody steps up to the plate, very few people will volunteer, people will congratulate you and want to talk to you or tell you what they think, but most won't pick up a shovel to help. It is good to let that roll off your back and recognize if you let criticism get to you. All new ideas get criticized somewhere. If you look at every great thing done, somebody has criticized it. No matter how much you know, you still have to keep emotions in check using logic when the world seems against you and you want to give up. You never know when you are only 3 feet from hitting gold even if you've been digging for months and are ready to quit.
What's next for COVID-19 Notify
We continue to develop our government relationships and have calls scheduled with health care systems, government officials, attorneys, philanthropists and investors. We need more help, we need a couple seasoned App developers. Besides developers, we need people to help with social media and marketing, community outreach, and helping spread the word. We are looking pretty solid on technical planning, I have those bases covered. I develop too but my time is best spent on other areas within this venture. I can step in and pinch hit where needed. I honestly never used React or React Native before and I took crash courses on Saturday and was developing by nighttime. This comes down to programming since I was a kid. (I'm 42 now). It followed pretty understandable patterns and was easy to pick up.
Built With
- css3
- html5
- java
- javascript
- kotlin
- laminas
- oauth2
- php
- react-native
- rest
- swift


Log in or sign up for Devpost to join the conversation.