With the current status of wanting to decrease the spread of Covid-19, many countries have declared social distancing. However, people would still need to buy groceries. We wanted to build a platform that will deter people from going to the grocery store during busy times, as mass gatherings pose a higher risk of contracting the virus. Moreover, we also wanted to help people with a higher risk of severe illness by allowing them to create a reservation of the grocery items they wish to get with the help of a volunteer that poses less risk of severe illness.

What it does

It allows anyone to register with the option of becoming a helper. After registering an account, the user can find supermarkets in their area and we inform them, through the means of a graph, what the busiest times for any given location would be. This helps users figure out what the best time to make their trip would be so that they have to interact with least possible number of people and do their part in helping to keep Covid-19 at bay. When a user registers, they tell us what their age is and if they have a certain set of medical conditions. If they seem to fall in the at-risk category of the population, they are able to make requests so that anyone in a given a radius who is a registered helper can volunteer to do the person's groceries for them. In times of need like this, an application like this enables those with the desire to help the community to do so. A helper can voluntarily choose requests, based on their location, that someone has reserved to buy groceries for them. The helper may choose these reservations which are based on where they are located and the radius that they have chosen. We implemented a ranking system where they earn points for each volunteering opportunity they take up as an incentive for people to help and volunteer to buy groceries for people in need.

How we built it

We utilised Firebase to deploy our website and used node.js for our backend and NoSQL for the database. For the frontend, we used HTML, CSS, and Javascript, with jQuery and Bootstrap as frameworks. We ended up writing our own API using Python Flask that would get the busy times of any given supermarket. We hosted this on

Challenges we ran into

The main challenge we faced was figuring out how we would work together remotely. Integrating login through Google and Facebook was a really easy given we were using firebase however working out how to allow users to sign up with all of their accounts (Facebook, Google, and an unlinked account) proved to be quite tricky due to firebases inbuilt overwriting functions. We, therefore, had to write custom functions to validate users. Other challenges included getting the Google Maps API to work cost-effectively. Initially, when we made a Google Cloud Platform account we received 300 dollars in credits, but our program burned through this in 3 days of development and testing. We started optimizing it, reducing the cost per query gradually, but ultimately we found a way to make the entire process work for free.

Accomplishments that we're proud of

Since this was an online hackathon, we were proud to have built and worked together despite all four of us being located at 4 different countries and timezones. We managed to figure out a convenient time to set up a meeting every now and then. Also, since this was a 3-week hackathon, by far the longest any of us have been a part of, we are quite proud of the final product we were able to produce. Everything from its backend to its UI/UX works as intended.

What we learned

For some of us, it was our first time working in the frontend. Learning jQuery and Bootstrap was quite intriguing. Having most of us never working with firebase or node.js before it was tricky to get to grips with everything, but we wanted to challenge ourselves as we had 3 weeks to work. Learning how to build a website with google and Facebook integration plus using 4 different API's with data visualization tools, and a functional back end database tracking user performance in real time has been really rewarding!

What's next for Samaritan

For now, the website only works in the United Kingdom. We would like to venture out and include other major countries.

Try It out



bootstrap, css, express.js, firebase, flask, html, javascript, jquery, node.js, python

Devpost Software Identifier