In recent days, the COVID-19 pandemic has affected the world negatively. Shelter-in-place and social distance have become a need for every country to fight against and stop spreading the COVID-19 in society.
Today, we introduce a mobile app - named E-Mask. Through Bluetooth, E-mask can help you scan and check whether there is an infected patient around you or not.
This app will also provide a set of questions to collect information as well as to detect whether you may have COVID-19 and will provide guidance to go to local hospitals for testing.
Users can also report to the system if they are infected so the system can help provide the most up-to-date and realtime data.
What it does
By enabling Bluetooth and press "scan". E-Mask will scan, spot, and notify if there is an infected patient near you. If you were near to an infected user, the app will mark you at risk.
Then it shows CDC's guidelines and recommendations such as wear your mask, wash your hand.
If users are infected or highly at risk or feel unwell, they can take a survey in the app to check if they are really infected
Testing assessment will suggest if you need to take the COVID test or not based on your given information.
The app will guide you to the nearest Covid-19 testing facility using Google's Map
How I built it
We started with the architecture of the app. First of all, based on the idea we raised, we came up with an agreement that the app basically just needs to function, I will call it ScanCovid, ReportMyInfection, and SelfAssessmentSurvey
Users have to signup to be able to use these functions via Gmail as it allows the system to recognize who users are and automatically assign a new device ID to your account that we could use in our scanning system.
When users report their infection status, the system will update the status of other users who previously contacted that infected user in the app's history and notify them to take the COVID-19 testing.
Our system will suggest the nearest Testing site via our location fragment.
For users that use the ScanCovid function, it will return the list of devices ID, representing nearby users that reported to the system previously.
Challenges I ran into
Graphics, UI as we don’t have any experienced designer.
Determine how the ScanCovid and ReportMyInfection are connected to the database and upload the information to the database via ReportMyInfection will sync to the ScanCovid of other users.
Struggle to determine whether ScanCovid functions should be realtime or not.
Struggle with NoSQL via FirebaseDB
Since Google does not allow us to use their device ID system, we have to create our unique device ID based on the user's generated ID for Bluetooth mapping.
Accomplishments that I'm proud of
We’ve created a fully functional product and make it works within 36 hours! : )
Develop our team-working skills.
Become more familiar with Android applications and Firebase service.
Learning new tools, and making an app that we think will very beneficial to the community.
What I learned
Android app, Firebase, Graphics/UI design, Kotlin.
What's next for E-Mask?
Improve the Bluetooth tracking system iOS app, a Web-based version. Improving the UI.