COVID SafePlaces is an open-source, privacy preserving mobile app for digital contact tracing based on research originally conducted by the MIT Media Lab Camera Culture group.


Time Frame

  • March 2020 - July 2020
  • (4 months)

Roles (Volunteer)

  • UI Engineer
  • Interaction Designer

Contributions


In the news


Overview

Like millions of others, when COVID-19 brought life to a standstill in March, I felt helpless. Unlike the defining wars and crises of previous generations, this pandemic has no enemy to mobilize against or military effort to enlist in.

I knew that my skills as a UI Engineer could somehow be put to use, but I struggled to find where. After learning of SafePlaces through the Hyperledger Foundation newsletter, I immediately knew that this was an impactful project where I could make a difference.

Once joining the team, I collaborated with a small group of core contributors on the React Native mobile app, building key features for the GPS-based contact tracing application.

The app can be downloaded on both the App Store and the Google Play Store.

Problem

“[Some of my patients] were more afraid of being blamed than dying of the virus”

-Lee Su-young, Psychiatrist at Myongji Hospital, South Korea 1

With a median smartphone usership rate of over 75% in advanced economies2, digital contact tracing represents a promising solution which can be utilized to quickly and accurately identify an infected individual’s contacts. However, the same capabilities that enable digital contact tracing pose significant privacy concerns to individuals.

Mass surveillance, limited individual freedoms, and exposure of private details are all potential results of allowing government and public health officials to trace individuals’ movements.

Solution

SafePlaces addresses these concerns with a privacy-first implementation of both GPS and Bluetooth based digital contact tracing.

PathCheck, the foundation behind the SafePlaces project, offers a white-label app with a multitude of plug-and-play capabilities that local governments and public health authorities can tailor to their needs. Location/Bluetooth data is stored on your own device, and only ever leaves your device with your permission.

Joining The Project

Although I filled out a volunteer form to be onboarded, due to the emerging pandemic and hectic nature of an early stage startup, I never was put in contact with anyone from the project.

After exploring the codebase, I found a “##TODO” comment, opened an issue on GitHub, and began working on my first feature.

Contributions

The primary contributors to the app up to the point had been engineers and researchers from MIT, and as a result, the UX was lacking. Alongside a dedicated team of volunteers, I worked on improving three key aspects of the project.

Onboarding

The onboarding process suffered not only from a confusing code path that was difficult to extend, but also failed to properly comfort the user and explain the key concepts of the app.

Vague / Technical Descriptions

  • Users expressed a sense of confusion and uncertainty during onboarding

English Only

  • Although our initial deployment was for a non-English speaking region, the onboarding language strings were hard coded in English

Improving Onboarding Flows To Put Users At Ease

testimonial
App Store Review

Based on user interviews and initial feedback from the app store, our team determined that the biggest opportunities were to clarify technical jargon and calm users during onboarding:

  • Created Figma prototypes to indicate the state of requested device permissions
  • Clarified and condensed descriptions to better fit on smaller, cheaper devices
  • Implemented translation logic for user locales

Health Authority Subscription

testimonial
Google Play Store Review

One of the most critical features of the app is the subscription to a local health authority.

The healthcare authority is where infected individuals’ location/bluetooth logs are uploaded. If a user does not subscribe to a healthcare authority, they will not know if they have crossed paths with a COVID-19 positive individual.

Implementing HA Auto Subscribe

Early on, we decided as a team that users should have the ability to automatically subscribe to healthcare authorities in regions they have travelled to. To enable this, I implemented an auto subscription feature and added a step in the onboarding flow to let users opt-in to auto subscription.

Updating The Healthcare Authority Subscription Screen

The original Healthcare Authority Subscription screen provided little context as to what “subscribing” entailed, and required a user to manually input a URL that they had to track down on their own.

Based on user interviews and initial feedback from the app store, I helped design, prototype and implement a more explanatory and easy to use interface.

old
Previous Health Authority Subscription Screen
new
Updated Health Authority Subscription Screen

Community Management

After a few months on the project, and the departure of some of the early contributors, I held a fair amount of tribal knowledge around the history and direction of the codebase. As such, I began assisting with community management in a number of ways.

100+

  • Contributors on GitHub

35

  • Average commits per week

Managing Pull Requests

I worked alongside the project management team to update our CONTRIBUTING.md guidelines, keep our work visible to the broader open source community, and improve pull request quality with a simplified PULL_REQUEST_TEMPLATE.md.

Rewriting A Confusing README

One of the most frequent problems with new volunteers was difficulties following the instructions in our README to set up and run the project on their devices.

The information hierarchy was hard to parse, the instructions were out of date, and the original authors made implicit assumptions about how experienced readers were with mobile development.

before
Previous README
after
Updated README

The README has more content than shown above, but some of the key updates I made included:

  • Simpler, clearer information hierarchy written in an imperative tone
  • Proper hyperlinks to relevant content, with a clear step to read our contribution guidelines
  • Instructions for both Windows/macOS users
  • Callouts to previously required steps/knowledge

Reflection

Helping Combat COVID-19

Although my contributions pale in comparison to the sacrifices made by millions of front line workers, helping to develop SafePlaces was the most impactful contribution I felt that I could make to address the COVID-19 pandemic.

Working on a software project that has such a significant and tangible impact on end users has helped me to better understand the importance of user-centered design, and made me realize how much I enjoy tackling complex and ambiguous problems such as digital contact tracing.

Working On Open Source Software

contributor graph
Contributor graph during April 2020

Although my work on ConsenSource is also open-source (OS), this was my first OS project that I had volunteered on. It was also my first time working alongside contributors whom I had never met in person.

Collaborating with a talented group of developers, designers, project managers, and other individuals from across the globe to tackle a shared mission was an incredible experience, and has motivated me to continue to contribute to OS projects in my career.

First Mobile Development Project

Prior to working on SafePlaces, I had no experience developing mobile applications. Thankfully, the project was written in React Native, so I was able to get up to speed and begin making contributions relatively quickly thanks to my existing JavaScript/React background.

Mobile development is a platform I hope to continue to explore in future projects. I thoroughly enjoyed having to solve problems within the constraints of the platform, particularly when taking into account the range of devices that our users possess, from iPhone users in Jackson Hole, WY, to Android feature-phone users in nations such as Haiti.