After realising that we suddenly had a lot of time on our hands as the lockdown was announced in the UK, my partner Josh (a software developer/architect) and I (a communications manager) decided to put that time to social good. The project grew from an initial idea to make an app that crowd-sourced information on where to buy the essentials that have been panic-purchased in recent weeks… primarily pasta and toilet roll! As we sat down and properly discussed the idea, it evolved into something with a bit more substance – we realised that we could create an online service to connect people who need help but are unable to leave their house with people who live nearby and could offer help. With this increased motivation we reached out to Jake (an infrastructure engineer), a friend based in Gran Canaria, to bring his expertise into the project. C19 Assist grew from there.
What it does
C19 Assist connects people in the United Kingdom who are vulnerable to COVID-19 and unable to leave their homes with nearby volunteers who are happy to help out with tasks such as buying groceries.
We use postcodes to match people who need help with nearby volunteers. The volunteers cannot see any sensitive information about the requester until their offer is accepted, at which point they are connected and can communicate via e-mail.
If there are no open requests for help in an area then the volunteer can proactively post an offer of help that will be visible to local people who need help when they enter their postcode. Once an offer is accepted the volunteer and person in need are connected by e-mail.
Once a volunteer has been connected to someone who needs help the communication is handed over to the volunteer and requester directly, and C19 Assist is no longer involved in the process.
How we built it
The technology stack is a combination of Vue.js and the Google Maps API on the frontend, with Node.js, Mongo DB and the SendGrid API on the backend. The Postcodes.io API was used to determine latitude and longitude from UK postcodes. The application is hosted on Digital Ocean, using Docker for a deployment strategy and Kubernetes as a scaling strategy
We started building C19 Assist by defining the user experience of what we wanted to create. Then we built out the user interface on a mock API. Once we were happy with the underlying experience we built out the backend to support it. Finally, we deployed and launched C19 Assist.
Challenges we ran into
The first challenge we faced was how to figure out if one postcode fits within the radius of another postcode. We needed to determine this to decide whether or not someone’s request for help should be shown to someone who is searching for help requests in their area. After taking over our fridge whiteboard with mathematics we figured out how to calculate a box around the given postcode using maximum and minimum latitudes and longitudes with the radius data input by the volunteer. We can then loop through all latitude-longitude combinations of existing help requests to find each request that falls within the min and max parameters.
Quickly adapting the service
When we first built C19 Assist we built it to connect volunteers to existing help requests. It quickly became apparent that users also wanted to be able to proactively offer help in the area so we needed to adapt. We quickly modified the application to allow volunteers to offer help in their area and for users in need of help to be able to see these offers before proceeding to the request submission page.
Accomplishments that we're proud of
C19 Assist has already been used by 100 people which is great. We’re proud of having solved the problem of how to build the radius data.
What we learned
We learned a lot mathematically around the logistics of figuring out quadrants and radiuses.
It was interesting to play around with both the SendGrid and Google Maps APIs as we hadn’t used either of those before.
What's next for C19 Assist
Besides a continued marketing push to raise awareness of the tool, the next technical steps are likely to be extending C19 Assist to Ireland and Spain. This will involve sourcing the correct data to convert these postcodes to latitude and longitude coordinates.