Our team sat down and mulled over out options, and after a bit of market research came to the following conclusions:
- There are a lot of people focusing on the COVID effort right now and so a lot of competition for time & attention, so passive products would have a higher yield.
- We didn't want to try and solve anything around the medical space — either utilities or support network tools (e.g. crowd-sourcing 3d printed equipment) — as this would undermine efforts by better-trained professionals working in this space and further impact the supply-chain.
- There are a lot of networks already in-place we could potentially leverage.
After going over some idea generation, we decided to try and build a tool to connect the grocery/supply needs of neighbors isolating at home with those already out-and-about (e.g. shopping, exercising), to make life easier for the vulnerable and to reduce the need for trips out to buy things like bread. Both of which would also have a positive impact on shops, reducing queues without impacting their sales.
What it does
Upon downloading the app and signing in, you're prompted whether you are looking to support others or whether you need something.
If you select that you need help, we ask for a few more details such as how you'd like to receive products, how much you can pay, and to pick out a few products (taken from an office-of-national-statistics list). These then go into a pool of "Requests" to be fulfilled by anyone in your area.
If you select that you'd like to support others, you're able to configure a "home zone" which is a configurable geofence around your home so that we can connect you with your neighbors. The app then idles in the background, and when we detect that you're in or near a shop, we show you the products requested by those in your area. As you find and deliver these items to someone on your normal route home, they're removed from the "Requests" pool.
How we built it
The app is built in React Native, for quick coverage of both Android and iOS platforms — which are the majority of market-share in the UK — web is also a target we can opt to build on longer term.
The back-end is a series of Lambda functions and DynamoDB tables in an AWS account for storing data atomically and quickly, and for access-and-identity we use Auth0 to ensure that personally-identifiable-information is stored safely & securely.
For analytics we use Heap analytics to refine and improve the product.
We formed a Notion page to act as the hub of our product including a Mission Statement & Vision, included a Task List with its Kanban Board view. Then we designed and evolved our architecture and wireframes on a user-journey map in Miro, which allowed us to iterate simply and quickly.
We split the effort into two streams — front-end and back-end, and each is its own codebase & deployment pipeline.
Challenges we ran into
- Finding 'standardised' products with pricing — For these we found the ONS data-set of products in the UK, and built a process for visualising these in the app more simply.
- Geofencing and push-notifications — Hard to test without going outdoors much! Also we weren't able to find a commodity solution for deciding when we send a push notification so had to do a lot of this work in the app which is inefficient for the devices.
- Time commitment & planning — All of our team work in the media industry and have found it hard to commit time & energy to the hack while we and our employers have adjusted to quarantine & working-from-home.
Accomplishments that we are proud of
- Building out the back-end on AWS very quickly.
- Prototyping UX and iterating on it within the react native app very quickly.
What we learned
- The ONS are a very valuable resource, and a good source of data for future projects!
- React Native is a fantastic library for building things quickly, and the development-experience with Expo is superb.
- Watching other groups — both within the hackathon and people working with public datasets — has been fascinating and we've learned a lot watching how people have drawn insights from disparate data-sets.
- Miro is a lovely tool for collab whiteboarding & planning!
- Better understanding of some of AWS's core services, and the Serverless framework.
What's next for Selfless
- Polishing the app to the point where we can try to get it into a few app-stores. From there partnering with a few community circles (potentially things like NextDoor?) to see if adoption is feasible.
- Allowing users to both request and supply things at the same time. For UX & developmental simplicity we segmented these journeys however this makes it harder for us to build a network effect.
- Exploring a "karma" system to recognise and reward people who are truly selfless. This needs to be considered very carefully however.
- We also can try to pivot this to target hospital networks for helping organise and retrieve supplies for PPE.
- Potentially securing more developmental resource if our team is comfortable continuing.
Try It out
amazon-web-services, auth0, google-maps, react-native