May 13, 2020
BC's Open Source Traveller Screening System in 5 Days
Author: Samarth Mod & Rachit Khare
Across Canada, and even around the world the Government of British Columbia has been recognized as a champion for their COVID-19 response. On April 5th, 2020 they engaged FreshWorks Studio to create a system that could help travellers abroad returning to British Columbia keep our communities safe and protected upon their return to the province. The Enhanced Traveller Screening System was launched just 5 days later with collaboration from the Ministry of Health, OCIO, Service BC, Ministry of Transportation and GCPE. This expansive platform dismantles the complexity surrounding self-isolation, and it gives citizens clear and simple guidance for creating their isolation plan and taking action toward reducing transmission.
“This expansive platform dismantles the complexity surrounding self-isolation and gives citizens clear and simple guidance”
The speed at which BC has implemented various COVID-19 response plans has been a huge factor in their success. Amazon recently published an article looking at open source government and how it has increased speed and agility in COVID-19 response efforts.
After it was launched, this screening system was used to ensure over 2,000 travellers have a proper self-isolation plan in place in the first week alone. To date, the system has received 7,500+ digital submissions from returning travellers.
Today I’d like to share the story of how these people came together and achieved this monumental feat by building and launching the screening system in less than a week.
Day 1: Determining Requirements
On Sunday April 5th, news came through to us that an announcement from the Premier’s office was imminent. On April 8th, they would announce that all travellers coming into BC would be required to self-isolate and demonstrate that they have the means available to fulfil their needs during this period.
For those citizens who lacked such means, the BC government was committed to ensuring those citizens had what they needed to properly self-isolate. But how would they identify and maintain records of all incoming travellers? Remarkable times called for extraordinary efforts. Addressing this challenge would take multiple individuals and teams across government as well as our own team at FreshWorks in order to help all returning citizens navigate a sea of self-isolation regulations and put together a personal self-isolation plan.
I’ve had the pleasure and good fortune to work with some extremely talented people at FreshWorks. But talent isn’t everything, there’s also attitude. When news broke on Sunday evening, I made a post letting people know that we have some urgent priorities to look into on Monday. I followed up with a message asking if anyone is interested to join our standup video conferencing link. Within the first few minutes, I had a couple of people join in. 15 minutes later we had almost the entire team online.
I thought to myself that the attitude and the tenacity of this team are amazing, how would they fare in what I sensed was a high-pressure scenario over the next few days? We were about to find out.
Day 2: Creating the User Journey
After informing some of our other clients that we were going to be working on a provincial emergency, we had put together a team to get started. With only 5 working days available, the first thing we needed to ensure was that the team was agile. We had defined just enough of the requirements to get designers and developers moving on the solution.
The initial requirements for this proposed digital service were that it needs to:
- allow travellers coming to BC to file their self-isolation plan
- facilitate an official from the province in assessing whether the traveller is able to meet their needs
- allow Service BC to follow up with the traveller to arrange for their unmet needs
- give the utmost care and caution to privacy and security concerns for all users
How would it work?
Before crossing the border into BC from overseas (land, air or sea), a traveller needs to fill out a form with a number of details. When the form is completed and submitted, a confirmation number and self-isolation plan status is shown. Also upon submission, this data is sent to Service BC who then follows up with the traveller within days of their arrival.
Our team would need to put validation rules in place that make it easier for travellers to fill out their form. However, the rules should be fairly relaxed because of the diverse nature of travellers crossing the border. Travellers include repatriated Canadians, essential workers, and supply chains from the US among others. The validation logic strived to strike a fine balance between meeting the needs of different individuals and gathering the right data that Service BC needs in order to follow up when required. The requirements of the form fields and flow was also constantly changing up until the last moment, and the team had to design the architecture keeping this in mind.
Day 3: Tackling a Design Challenge
The most challenging piece of the Traveller Screening System was building out the form design. Making self-isolation plan processing easy and intuitive was the main priority for the Government of British Columbia, as was making it simple for returning travellers to find important and relevant information.
It was vital that the self-isolation form was something that travellers of varying levels of technical ability and knowledge could understand and complete so that provincial officials could process returning travellers smoothly and efficiently. We also knew that designing the platform’s information and navigation structure while accounting for every type of traveller wasn’t going to be easy.
Our team quickly set out to create one system for equal access, to define an electronic form process that feels familiar to returning travellers, balancing both emotional and functional needs, and to build a system with reusable components that’s adaptable over time. The result looked like this.
It was also imperative that our team build a system that would be useful and accessible to travellers who speak languages other than English. With a push of a few simple buttons, travellers who prefer to fill out the self-isolation form in a different language — French, Mandarin, Punjabi, or any one of the 110+ languages supported by the province — can choose their preference on the same platform.
Just as we’re able to use our smartphones to simplify our lives for everything from ordering a taxi to shopping online, the new Traveller Screening System is mobile responsive and allows travellers to fill out their self-isolation plan with the same ease and accessibility.
Day 4: Simplified Plan Processing for Provincial Officials
The team had been working from about 7am until 11pm or later each day, and this kind of dedication would prove to be integral in meeting the deadline. To set up a system that touches so many citizens, there was also an amazing pan of ministerial effort across governments that had come together. Here are some of the players involved (and I know I’m missing some)
- The Ministry of Health
- Service BC
- Government Digital Experience (GDX/GCPE)
- The Ministry of Transportation
With the form design completed, attention now returned to what would happen after these diverse travellers had completed the form. Depending on how a traveller answers questions on their ability to self isolate, the system is designed to compute a status that provides provincial officials and Service BC all of the information they need to understand travellers’ needs.
The rich insights we received from provincial officials on the self-isolation procedure informed our process as we went. Once a traveller arrives at the border and clears customs, the platform is designed so that provincial officials are able to look up the traveller’s confirmation number and review their self-isolation plan status. The next step was to add a feature that enables officials to add notes to the submission and determine whether the traveller requires self-isolation support. It’s this convenience factor that officials correctly believed would make the self-isolation process efficient and streamlined.
You can view the Enhanced Travel Screening website here.
Day 5: Getting Ready for Launch
As we neared the end of the 5 action-filled days, our team had created a living platform that walks citizens through the steps to complete their self-isolation plan in clear and simple terms. It then enables the Government of British Columbia to take action and protect them, their family and the community from COVID-19.
With the system scheduled to launch province-wide tomorrow, being absolutely certain that it was working as expected without errors was the most significant remaining objective. In a properly agile team, all the members can fulfill any role as required. Everyone works as a unit, and so UX designers, front-end developers, back-end developers, and business analysts all perform quality assurance testing when required — and today it was required.
Some of the team was up until 3 or 4am making changes and improvements to ensure the system could be used live starting tomorrow morning with all incoming travellers to BC.
Launch Day: April 10th, 2020
The Enhanced Traveller Screening System was launched on schedule – Friday, April 10th
In the first week, the service saw 8,600+ web visits from British Columbians returning home from every continent except Antarctica. By week’s end, the application had already helped over 7,500 travellers and their families complete self-isolation plans for their arrival in Canada. The service’s integration with Service BC means that each of these travellers and their family receive a support call from Service BC within days of their arrival.
We have also open-sourced the code in the public domain. You can find it on Github.
What We Learned
Agility is key. I cannot stress that enough. There were so many times during the development process where we were dealing with changing requirements. That is completely expected and understandable given the importance of this initiative. And agility, the way I have come to understand it at least, is a function of attitude, trust and ability. This team surprised me in many ways throughout this process and the results were clear to see.
The system has been in place since Friday, April 10 and we are continuing to deliver on features while also tackling another high priority system. We have built a new farm operating screening service to ensure the safety of hundreds of temporary farm workers coming to the Province. We began work on this initiative on April 17th and completed the first module on April 19th. This pace of development was made possible by reusing code from the enhanced travel screening service and by working on cloud infrastructure.
Less than a week after launch, the Enhanced Traveller Screening System was already the key resource for managing self-isolation in British Columbia. The platform helps citizens coming into British Columbia who don’t have the means to self-isolate by connecting them to Service BC. This system is the main conduit to equip travellers with the resources they need while isolating; especially for those that cannot depend on others for their groceries or essential medicines.
It also gives provincial officials the ability to make decisions on traveller self-isolation plans, which provides an added layer of review to assess citizen needs. The notes feature provides additional context to the application and personalizes each report.
A robust application and DevOps structure enable us to quickly iterate and deploy working software. The application stack (a React Front-end, Node Back-end and NoSQL database) allows us to be flexible when requirements change via. reusable components and a schemaless database structure. Our deployment process follows an image promotion strategy which ensures that whatever has been tested in a certain environment is seamlessly promoted and virtually identical — minimizing downtime and the risks of new bugs cropping up in cross-environment settings.
Finally, the hope is that this keeps more people at home and allows us to not just flatten the curve but give us the time it will take to defeat this disease. At the end of the day, that’s all that this is about and we’re happy for the small part we get to play in this fight.
Path Forward: Future Integration with PHAC
Though the bulk of the work was completed in April 2020, FreshWorks continues to work with the Government of British Columbia and its implementation partners on future integrations with the Public Health Agency of Canada (PHAC). The Public Health Agency of Canada (PHAC) is aggregating data from across other federal agencies and can help fill in the gaps so that we capture more British Columbians coming back to the province.
Integrations between the Traveller Screening System and data from PHAC has the potential to expand the system’s ability to cover travellers returning to BC through ports of entry where provincial officials are not present — such as international airports outside the province and land crossings. An integration with PHAC is planned with the intention to capture more travellers coming back to BC and sending information over to Service BC to meet the needs of a greater number of British Columbians.
A Monumental Effort
None of this would have been possible without the help and tireless efforts of the team (sorry if we are missing someone).
The incredible teams at the BC Government including public servants from the Ministry of Health, Ministry of Transportation, the Government Communications and Public Engagement office Service BC, and OCIO, Terry Gunning (CGI) and from FreshWork: Ashton, Hitankar, Jared, Brian, Michel, Roop, Neil, Neha, Kendall, JP, and Rachit.
Times like this make us realize the importance of community, and how together we will be an even greater and more resilient British Columbia than ever before.
Written by Neha Dhanotiya | Dec 22
Implementing Quality Assurance in the Software Development Lifecycle
Written by FreshWorks Studio | Oct 5
Kotlin Multiplatform Pros and Cons for App Development
Written by Desmond Brisbin | Oct 2