This project was encouraged by the social distancing measures currently in place around the world during the pandemic. Inspired by how some apartment buildings operate, where they had assigned "grocery shoppers" for everyone else in the building, we recognized the effectiveness of this method to reduce the frequency of shopping trips within a community, thus, helping to control the pandemic. NeighbourGoods is an app that provides a voluntary method for people to shop for each other, reducing the frequency of trips to shopping centers within a community, thereby promoting social distancing and mitigating the risks of contracting Covid-19. The name NeighbourGoods is a play on the word "neighbourhood" and "goods" which emphasizes the core aspects of the app as you are buying goods for your neighbourhood.
What it does
NeighbourGoods provides a dashboard for people within the same community. On this dashboard, people can post when and where they are going shopping, allowing a specified amount of neighbours to respond if they also need items from that particular store. Each response would include their shopping list, delivery address, and a rough estimate of the cost. Once the specified amount is met or the departure time has passed, the post will then close and no more responses can be submitted. Payment should be on delivery and there would be no extra delivery cost as it is completely voluntary within the community, thus separating NeighbourGoods from other apps such as InstaCart. This app can support multiple communities where each individual community will have its own specific code. This code is used by other potential members in order to join the community.
How we built it
Our team of four was split into groups of two. One group worked on the front-end UI aspects using Android-Studio, and the other worked on the back-end server using Python and Java. We decided not to use API or other services such as Firebase and built the server entirely with the Python and Java socket libraries. We did this in order to have more control over the client and server interactions and also allowing us to use one of our own devices as a host. On the front-end, we focused on making an easy-to-use interface, making use of various design features on Android-Studio such as the RecycleView container. With custom-made functions, we were able to successfully integrate the back-end server with the front-end interface.
Challenges we ran into
The most difficult part of this process was the debugging process for the integration of the back-end and front-end. Specifically, connecting to a server through an android application while being cognisant of the built-in security measures put in place by Google proved to be very challenging and time-consuming.
Accomplishments that we're proud of
Our successful integration of the front-end with the back-end to create a working app that can have real applications within a community, along with the simultaneous multi-user and multi-device support that can be provided by our server are the accomplishments we are most proud of.
What we learned
We learned how to successfully integrate a back-end server with a front-end UI design for mobile android apps, and how to more proficiently use Android-Studio, Python, and Java.
What's next for NeighbourGoods
In the future, we hope to further refine our app UI and server, along with iOS support, ultimately leading to a release on the Apple/Google play store. We are also hoping to partner with local stores, allowing us to provide more features and incentives to encourage people to participate and use NeighbourGoods.