“Almost a dozen calls with five health care providers over five hours. Two hours of hold music. Two hours in a hospital. … to [get] my positive coronavirus test results on Monday night.”
- Tim Herrera, editor of The New York Times
Today, countless people in the U.S. and around the world, struggle to receive their COVID-19 tests in a timely manner, resulting in heightened anxiety and unnecessary spread. This is merely a symptom of a relatively disorganized system that lacks transparent tracking capabilities. As such, tests are being distributed incorrectly and sometimes even lost. As high school students, we wanted to take this opportunity to make a difference. We have friends, teachers, and family members whose livelihoods are all at stake due to this crisis. While we can’t go to a hospital and treat patients, we can create tools at home to combat the spread of COVID-19.
What It Does
TestFlow associates every test kit with a smart contract on the Ethereum blockchain and a unique QR code. Initially, the manufacturer will generate QR codes, and then attach a unique QR code to each test kit. As the test kit leaves the factory, the manufacturer scans the QR code with the TestFlow app to update the blockchain. Similarly, the QR code will then be scanned by the respective overseers of each establishment as it enters and leaves the hospital and enters the lab. The lab can update the test results, which patients can view on the website. Through TestFlow, the FDA can monitor detailed statistics of test kit production and usage. TestFlow also allows anyone to verify whether a test kit has been approved by the FDA, combating counterfeits and potentially saving lives.
How We Built It
TestFlow is made up of four distinct parts, which led to some rather challenging coding. First, we have our smart contracts on the blockchain. We used the blockchain in our application because it serves as a decentralized ledger that helps ensure the transparency of all testing kit transfers and updates. We used a side chain solution of Ethereum called Loom to eliminate gas fees and drastically speed up transactions. Our smart contracts store and interact with the most important parts of the data. Second, we had a Node.js server to act as an intermediary between the blockchain and the front-end. Through our experience, we found using a Node.js server improved speed and reliability. Third, we have a React Native app, so that workers at factories, hospitals, and labs can easily scan QR codes on their phones. However, an app is not ideal for all our functions, so we built a Next.js website simple enough for patients to quickly check test results and powerful enough for the FDA to oversee the entire process.
Challenges We Ran Into
Our challenges were mostly technical in nature. We found the blockchain, even after four years of development, still difficult to develop with. As it is a new technology, there is little documentation on its use. We also struggled to organize our app logically, since the test packet could pass through so many hands before reaching its final destination. Last but not least, our large team meant that we needed careful git management to minimize merge conflicts, as on average, every merge conflict lost us 30 minutes collectively.
Accomplishments That We’re Proud Of
We are proud to have a working product within two days of forming the idea. At first, I didn’t even think that we could pull together four different coding platforms, along with the design elements associated. I truly believe that our application may become something that can help with the issue of COVID-19. Furthermore, many of us had never worked with so many teammates before. Throughout the entire process, we collaborated, communicated as a team, and stuck to a plan. Although we experienced unexpected bugs and git errors, every time we hit a problem, we regrouped, fixed the issue, and continued working.
What We Learned
During the process of developing TestFlow, our team had to collaborate closely while assigning distinct roles to each individual. As many of us had no experience working in such a large team, communication and leadership played a vital role in our progression. This was the first time any of us collaborated with one another on such a large scale, allowing us to better comprehend each other’s personality, abilities, and dedication in regards to the COVID-19 Hackathon. The gaps in our expertise actually helped us distribute responsibilities respective to our abilities and increased efficiency. There is no way we could have completed a project this large without teamwork.
What’s Next For TestFlow
We would also like to implement additional tracking mechanisms to better keep track of the time and day in which factories ship. We would also like to diversify our platform to track the individual components of COVID-19 test kits, such as PCR reagents and swabs. Looking forward, we hope that TestFlow can become used by governments and companies across the world. The technology behind TestFlow is useful for tracking inventory in general, and not just COVID-19 test kits.
Try It out
blockchain, infura, loom, mongodb, next.js, node.js, react-native, react.js, solidity, truffle